Ticket #16567: 16567.6.patch

File 16567.6.patch, 10.7 KB (added by taylor.smock, 5 months ago)

Update to ensure patch applies cleanly (see r15703)

  • .classpath

     
    3333                        <attribute name="test" value="true"/>
    3434                </attributes>
    3535        </classpathentry>
     36        <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5">
     37                <attributes>
     38                        <attribute name="test" value="true"/>
     39                </attributes>
     40        </classpathentry>
    3641        <classpathentry kind="lib" path="test/lib/jfcunit.jar">
    3742                <attributes>
    3843                        <attribute name="test" value="true"/>
  • build.xml

     
    503503        <attribute name="excludes" default="${default-junit@{testITsuffix}-excludes}"/>
    504504        <sequential>
    505505            <echo message="Running @{testfamily}@{testITsuffix} tests with JUnit"/>
    506             <jacoco:coverage destfile="${test.dir}/jacoco@{testITsuffix}.exec" enabled="@{coverage}" includes="${jacoco.includes}"
    507                 inclbootstrapclasses="${jacoco.inclbootstrapclasses}" inclnolocationclasses="${jacoco.inclnolocationclasses}">
    508                 <junit printsummary="${junit.printsummary}" fork="true" forkmode="once" failureproperty="test.@{testfamily}@{testITsuffix}.failed">
    509                     <jvmarg value="-Dfile.encoding=UTF-8"/>
    510                     <jvmarg value="-javaagent:${test.dir}/lib/jmockit.jar"/>
    511                     <jvmarg value="--add-modules" if:set="isJava9" unless:set="isJava11" />
    512                     <jvmarg value="java.activation,java.se.ee" if:set="isJava9" unless:set="isJava11" />
    513                     <jvmarg value="--add-exports" if:set="isJava9" unless:set="noJavaFX" />
    514                     <jvmarg value="javafx.graphics/com.sun.javafx.application=ALL-UNNAMED" if:set="isJava9" unless:set="noJavaFX" />
    515                     <jvmarg value="--add-exports" if:set="isJava9" unless:set="isJava11" />
    516                     <jvmarg value="jdk.deploy/com.sun.deploy.config=ALL-UNNAMED" if:set="isJava9" unless:set="isJava11" />
    517                     <jvmarg value="--add-opens" if:set="isJava9" />
    518                     <jvmarg value="java.base/java.io=ALL-UNNAMED" if:set="isJava9" />
    519                     <jvmarg value="--add-opens" if:set="isJava9" />
    520                     <jvmarg value="java.base/java.lang=ALL-UNNAMED" if:set="isJava9" />
    521                     <jvmarg value="--add-opens" if:set="isJava9" />
    522                     <jvmarg value="java.base/java.nio=ALL-UNNAMED" if:set="isJava9" />
    523                     <jvmarg value="--add-opens" if:set="isJava9" />
    524                     <jvmarg value="java.base/java.text=ALL-UNNAMED" if:set="isJava9" />
    525                     <jvmarg value="--add-opens" if:set="isJava9" />
    526                     <jvmarg value="java.base/java.util=ALL-UNNAMED" if:set="isJava9" />
    527                     <jvmarg value="--add-opens" if:set="isJava9" />
    528                     <jvmarg value="java.base/jdk.internal.loader=ALL-UNNAMED" if:set="isJava9" />
    529                     <jvmarg value="--add-opens" if:set="isJava9" />
    530                     <jvmarg value="java.desktop/java.awt=ALL-UNNAMED" if:set="isJava9" />
    531                     <sysproperty key="josm.home" value="${test.dir}/config/@{testfamily}-josm.home"/>
    532                     <sysproperty key="josm.test.data" value="${test.dir}/data"/>
    533                     <sysproperty key="java.awt.headless" value="${test.headless}"/>
    534                     <sysproperty key="glass.platform" value="Monocle"/>
    535                     <sysproperty key="monocle.platform" value="Headless"/>
    536                     <sysproperty key="prism.order" value="sw"/>
    537                     <sysproperty key="suppressPermanentFailure" value="${suppressPermanentFailure}"/>
    538                     <classpath>
    539                         <path refid="test.classpath"/>
    540                         <pathelement path="${test.dir}/build/unit"/>
    541                         <pathelement path="${test.dir}/build/@{testfamily}"/>
    542                         <pathelement path="${test.dir}/config"/>
    543                     </classpath>
    544                     <formatter type="plain"/>
    545                     <formatter type="xml"/>
    546                     <batchtest fork="yes" todir="${test.dir}/report">
    547                         <fileset dir="${test.dir}/build/@{testfamily}" includes="@{includes}" excludes="@{excludes}"/>
    548                     </batchtest>
    549                 </junit>
    550             </jacoco:coverage>
     506            <jacoco:agent destfile="${test.dir}/jacoco@{testITsuffix}.exec" enabled="@{coverage}" includes="${jacoco.includes}" dumponexit="true"
     507                    inclbootstrapclasses="${jacoco.inclbootstrapclasses}" inclnolocationclasses="${jacoco.inclnolocationclasses}" property="jacocoagent@{testfamily}@{testITsuffix}" />
     508            <junitlauncher printsummary="${junit.printsummary}" failureproperty="test.@{testfamily}@{testITsuffix}.failed">
     509                <classpath>
     510                    <path refid="test.classpath"/>
     511                    <pathelement path="${test.dir}/build/unit"/> <!-- required for functional/etc to have JOSMTestRules -->
     512                    <pathelement path="${test.dir}/build/@{testfamily}"/>
     513                </classpath>
     514                <testclasses outputDir="${test.dir}/report">
     515                    <fileset dir="${test.dir}/build/@{testfamily}" includes="@{includes}" excludes="@{excludes}"/>
     516                        <fork>
     517                            <jvmarg value="${jacocoagent@{testfamily}@{testITsuffix}}" if:set="jacocoagent@{testfamily}@{testITsuffix}" />
     518                            <jvmarg value="-Dfile.encoding=UTF-8"/>
     519                            <jvmarg value="-javaagent:${test.dir}/lib/jmockit.jar"/>
     520                            <jvmarg value="--add-modules" if:set="isJava9" unless:set="isJava11" />
     521                            <jvmarg value="java.activation,java.se.ee" if:set="isJava9" unless:set="isJava11" />
     522                            <jvmarg value="--add-exports" if:set="isJava9" unless:set="noJavaFX" />
     523                            <jvmarg value="javafx.graphics/com.sun.javafx.application=ALL-UNNAMED" if:set="isJava9" unless:set="noJavaFX" />
     524                            <jvmarg value="--add-exports" if:set="isJava9" unless:set="isJava11" />
     525                            <jvmarg value="jdk.deploy/com.sun.deploy.config=ALL-UNNAMED" if:set="isJava9" unless:set="isJava11" />
     526                            <jvmarg value="--add-opens" if:set="isJava9" />
     527                            <jvmarg value="java.base/java.io=ALL-UNNAMED" if:set="isJava9" />
     528                            <jvmarg value="--add-opens" if:set="isJava9" />
     529                            <jvmarg value="java.base/java.lang=ALL-UNNAMED" if:set="isJava9" />
     530                            <jvmarg value="--add-opens" if:set="isJava9" />
     531                            <jvmarg value="java.base/java.nio=ALL-UNNAMED" if:set="isJava9" />
     532                            <jvmarg value="--add-opens" if:set="isJava9" />
     533                            <jvmarg value="java.base/java.text=ALL-UNNAMED" if:set="isJava9" />
     534                            <jvmarg value="--add-opens" if:set="isJava9" />
     535                            <jvmarg value="java.base/java.util=ALL-UNNAMED" if:set="isJava9" />
     536                            <jvmarg value="--add-opens" if:set="isJava9" />
     537                            <jvmarg value="java.base/jdk.internal.loader=ALL-UNNAMED" if:set="isJava9" />
     538                            <jvmarg value="--add-opens" if:set="isJava9" />
     539                            <jvmarg value="java.desktop/java.awt=ALL-UNNAMED" if:set="isJava9" />
     540                            <sysproperty key="josm.home" value="${test.dir}/config/@{testfamily}-josm.home"/>
     541                            <sysproperty key="josm.test.data" value="${test.dir}/data"/>
     542                            <sysproperty key="java.awt.headless" value="${test.headless}"/>
     543                            <sysproperty key="glass.platform" value="Monocle"/>
     544                            <sysproperty key="monocle.platform" value="Headless"/>
     545                            <sysproperty key="prism.order" value="sw"/>
     546                            <sysproperty key="suppressPermanentFailure" value="${suppressPermanentFailure}"/>
     547                        </fork>
     548                    <listener type="legacy-plain" />
     549                    <listener type="legacy-xml" />
     550                </testclasses>
     551            </junitlauncher>
    551552        </sequential>
    552553    </macrodef>
    553554    <target name="test" depends="test-compile" unless="test.notRequired"
     
    658659
    659660        # Keep serialization code
    660661        -keepclassmembers class * implements java.io.Serializable {
    661             static final long serialVersionUID; 
     662            static final long serialVersionUID;
    662663            private static final java.io.ObjectStreamField[] serialPersistentFields;
    663664            private void writeObject(java.io.ObjectOutputStream);
    664665            private void readObject(java.io.ObjectInputStream);
    665             java.lang.Object writeReplace(); 
     666            java.lang.Object writeReplace();
    666667            java.lang.Object readResolve();
    667668        }
    668669
  • test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java

     
    2323import java.util.logging.Handler;
    2424
    2525import org.awaitility.Awaitility;
     26import org.junit.jupiter.api.extension.AfterEachCallback;
     27import org.junit.jupiter.api.extension.BeforeEachCallback;
     28import org.junit.jupiter.api.extension.ExtensionContext;
    2629import org.junit.rules.TemporaryFolder;
    2730import org.junit.rules.TestRule;
    2831import org.junit.runner.Description;
     
    7982 *
    8083 * @author Michael Zangl
    8184 */
    82 public class JOSMTestRules implements TestRule {
     85public class JOSMTestRules implements TestRule, AfterEachCallback, BeforeEachCallback {
    8386    private int timeout = isDebugMode() ? -1 : 10 * 1000;
    8487    private TemporaryFolder josmHome;
    8588    private boolean usePreferences = false;
     
    433436        return statement;
    434437    }
    435438
     439    @Override
     440    public void beforeEach(ExtensionContext context) throws Exception {
     441        Statement temporaryStatement = new Statement() {
     442            @Override
     443            public void evaluate() throws Throwable {
     444                // do nothing
     445            }
     446        };
     447        try {
     448            this.apply(temporaryStatement,
     449                    Description.createTestDescription(this.getClass(), "JOSMTestRules JUnit5 Compatibility"))
     450                    .evaluate();
     451        } catch (Throwable e) {
     452            throw new Exception(e);
     453        }
     454    }
     455
     456    @Override
     457    public void afterEach(ExtensionContext context) throws Exception {
     458        // do nothing for now
     459    }
     460
    436461    /**
    437462     * Set up before running a test
    438463     * @throws InitializationError If an error occurred while creating the required environment.