diff --git a/junit-6-migration/README.md b/junit-6-migration/README.md index a3304fc..5d3849f 100644 --- a/junit-6-migration/README.md +++ b/junit-6-migration/README.md @@ -28,5 +28,6 @@ releases are compared jar against jar. Nothing here is copied from release notes | `04-vintage-junit4-.txt` | a JUnit 4 test run through the Vintage engine on each version | | `05-old-apis-.txt` | what the compiler says about three deprecated 5.x APIs on each version | | `06-fixed-apis-.txt` | the replacements compile on both versions | +| `07-jar-contents.txt` | which CSV parser each `junit-jupiter-params` jar bundles, and the Vintage engine's declared status | `pom.xml` has two profiles, `junit5` and `junit6`, that change nothing but `junit.version`. diff --git a/junit-6-migration/output/05-old-apis-5.14.4.txt b/junit-6-migration/output/05-old-apis-5.14.4.txt index cceb3a1..63943af 100644 --- a/junit-6-migration/output/05-old-apis-5.14.4.txt +++ b/junit-6-migration/output/05-old-apis-5.14.4.txt @@ -1,40 +1,12 @@ JUnit 5.14.4, compiling OldApis.java -src/compat/OldApis.java:1: error: package org.junit.jupiter.api does not exist -import org.junit.jupiter.api.MethodOrderer; - ^ -src/compat/OldApis.java:2: error: package org.junit.jupiter.api does not exist -import org.junit.jupiter.api.Test; - ^ -src/compat/OldApis.java:3: error: package org.junit.jupiter.api does not exist -import org.junit.jupiter.api.TestMethodOrder; - ^ -src/compat/OldApis.java:4: error: package org.junit.jupiter.api.io does not exist -import org.junit.jupiter.api.io.TempDir; - ^ -src/compat/OldApis.java:5: error: package org.junit.platform.commons.support does not exist -import org.junit.platform.commons.support.ReflectionSupport; - ^ -src/compat/OldApis.java:8: error: cannot find symbol -@TestMethodOrder(MethodOrderer.Alphanumeric.class) - ^ - symbol: class TestMethodOrder -src/compat/OldApis.java:8: error: package MethodOrderer does not exist +src/compat/OldApis.java:8: warning: [deprecation] Alphanumeric in MethodOrderer has been deprecated @TestMethodOrder(MethodOrderer.Alphanumeric.class) ^ -src/compat/OldApis.java:11: error: cannot find symbol - @Test - ^ - symbol: class Test - location: class OldApis -src/compat/OldApis.java:13: error: cannot find symbol +src/compat/OldApis.java:13: warning: [deprecation] loadClass(String) in ReflectionSupport has been deprecated Object loaded = ReflectionSupport.loadClass("java.lang.String"); - ^ - symbol: variable ReflectionSupport - location: class OldApis -src/compat/OldApis.java:14: error: cannot find symbol + ^ +src/compat/OldApis.java:14: warning: [deprecation] SCOPE_PROPERTY_NAME in TempDir has been deprecated String property = TempDir.SCOPE_PROPERTY_NAME; - ^ - symbol: variable TempDir - location: class OldApis -10 errors -javac exit status: 1 + ^ +3 warnings +javac exit status: 0 diff --git a/junit-6-migration/output/05-old-apis-6.1.3.txt b/junit-6-migration/output/05-old-apis-6.1.3.txt index a34078b..864a097 100644 --- a/junit-6-migration/output/05-old-apis-6.1.3.txt +++ b/junit-6-migration/output/05-old-apis-6.1.3.txt @@ -1,40 +1,18 @@ JUnit 6.1.3, compiling OldApis.java -src/compat/OldApis.java:1: error: package org.junit.jupiter.api does not exist -import org.junit.jupiter.api.MethodOrderer; - ^ -src/compat/OldApis.java:2: error: package org.junit.jupiter.api does not exist -import org.junit.jupiter.api.Test; - ^ -src/compat/OldApis.java:3: error: package org.junit.jupiter.api does not exist -import org.junit.jupiter.api.TestMethodOrder; - ^ -src/compat/OldApis.java:4: error: package org.junit.jupiter.api.io does not exist -import org.junit.jupiter.api.io.TempDir; - ^ -src/compat/OldApis.java:5: error: package org.junit.platform.commons.support does not exist -import org.junit.platform.commons.support.ReflectionSupport; - ^ src/compat/OldApis.java:8: error: cannot find symbol -@TestMethodOrder(MethodOrderer.Alphanumeric.class) - ^ - symbol: class TestMethodOrder -src/compat/OldApis.java:8: error: package MethodOrderer does not exist @TestMethodOrder(MethodOrderer.Alphanumeric.class) ^ -src/compat/OldApis.java:11: error: cannot find symbol - @Test - ^ - symbol: class Test - location: class OldApis + symbol: class Alphanumeric + location: interface MethodOrderer src/compat/OldApis.java:13: error: cannot find symbol Object loaded = ReflectionSupport.loadClass("java.lang.String"); - ^ - symbol: variable ReflectionSupport - location: class OldApis + ^ + symbol: method loadClass(String) + location: class ReflectionSupport src/compat/OldApis.java:14: error: cannot find symbol String property = TempDir.SCOPE_PROPERTY_NAME; - ^ - symbol: variable TempDir - location: class OldApis -10 errors + ^ + symbol: variable SCOPE_PROPERTY_NAME + location: @interface TempDir +3 errors javac exit status: 1 diff --git a/junit-6-migration/output/06-fixed-apis-5.14.4.txt b/junit-6-migration/output/06-fixed-apis-5.14.4.txt index 0d03325..049123f 100644 --- a/junit-6-migration/output/06-fixed-apis-5.14.4.txt +++ b/junit-6-migration/output/06-fixed-apis-5.14.4.txt @@ -1,32 +1,2 @@ JUnit 5.14.4, compiling FixedApis.java -src/compat/FixedApis.java:1: error: package org.junit.jupiter.api does not exist -import org.junit.jupiter.api.MethodOrderer; - ^ -src/compat/FixedApis.java:2: error: package org.junit.jupiter.api does not exist -import org.junit.jupiter.api.Test; - ^ -src/compat/FixedApis.java:3: error: package org.junit.jupiter.api does not exist -import org.junit.jupiter.api.TestMethodOrder; - ^ -src/compat/FixedApis.java:4: error: package org.junit.platform.commons.support does not exist -import org.junit.platform.commons.support.ReflectionSupport; - ^ -src/compat/FixedApis.java:7: error: cannot find symbol -@TestMethodOrder(MethodOrderer.MethodName.class) - ^ - symbol: class TestMethodOrder -src/compat/FixedApis.java:7: error: package MethodOrderer does not exist -@TestMethodOrder(MethodOrderer.MethodName.class) - ^ -src/compat/FixedApis.java:10: error: cannot find symbol - @Test - ^ - symbol: class Test - location: class FixedApis -src/compat/FixedApis.java:12: error: cannot find symbol - Object loaded = ReflectionSupport.tryToLoadClass("java.lang.String").toOptional().orElseThrow(); - ^ - symbol: variable ReflectionSupport - location: class FixedApis -8 errors -javac exit status: 1 +javac exit status: 0 diff --git a/junit-6-migration/output/06-fixed-apis-6.1.3.txt b/junit-6-migration/output/06-fixed-apis-6.1.3.txt index d07777e..7d7ac0d 100644 --- a/junit-6-migration/output/06-fixed-apis-6.1.3.txt +++ b/junit-6-migration/output/06-fixed-apis-6.1.3.txt @@ -1,32 +1,2 @@ JUnit 6.1.3, compiling FixedApis.java -src/compat/FixedApis.java:1: error: package org.junit.jupiter.api does not exist -import org.junit.jupiter.api.MethodOrderer; - ^ -src/compat/FixedApis.java:2: error: package org.junit.jupiter.api does not exist -import org.junit.jupiter.api.Test; - ^ -src/compat/FixedApis.java:3: error: package org.junit.jupiter.api does not exist -import org.junit.jupiter.api.TestMethodOrder; - ^ -src/compat/FixedApis.java:4: error: package org.junit.platform.commons.support does not exist -import org.junit.platform.commons.support.ReflectionSupport; - ^ -src/compat/FixedApis.java:7: error: cannot find symbol -@TestMethodOrder(MethodOrderer.MethodName.class) - ^ - symbol: class TestMethodOrder -src/compat/FixedApis.java:7: error: package MethodOrderer does not exist -@TestMethodOrder(MethodOrderer.MethodName.class) - ^ -src/compat/FixedApis.java:10: error: cannot find symbol - @Test - ^ - symbol: class Test - location: class FixedApis -src/compat/FixedApis.java:12: error: cannot find symbol - Object loaded = ReflectionSupport.tryToLoadClass("java.lang.String").toOptional().orElseThrow(); - ^ - symbol: variable ReflectionSupport - location: class FixedApis -8 errors -javac exit status: 1 +javac exit status: 0 diff --git a/junit-6-migration/output/07-jar-contents.txt b/junit-6-migration/output/07-jar-contents.txt new file mode 100644 index 0000000..06b21c7 --- /dev/null +++ b/junit-6-migration/output/07-jar-contents.txt @@ -0,0 +1,11 @@ +junit-jupiter-params-5.14.4: bundled CSV parser packages (org/junit/jupiter/params/shadow/...) + 1 org/junit/jupiter/params/shadow/com/ + 291 org/junit/jupiter/params/shadow/com/univocity +junit-jupiter-params-6.1.3: bundled CSV parser packages (org/junit/jupiter/params/shadow/...) + 1 org/junit/jupiter/params/shadow/de/ + 71 org/junit/jupiter/params/shadow/de/siegmar + +junit-vintage-engine-6.1.3 manifest, package export status: +org.junit.vintage.engine;status=DEPRECATED;version="6.1.3" +junit-vintage-engine-5.14.4 manifest, package export status: +org.junit.vintage.engine;version="5.14.4";status=STABLE diff --git a/junit-6-migration/scripts/inspect-jars.sh b/junit-6-migration/scripts/inspect-jars.sh new file mode 100755 index 0000000..456541f --- /dev/null +++ b/junit-6-migration/scripts/inspect-jars.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +# Looks inside the downloaded jars (run scripts/api_diff.py first). Writes output/07-jar-contents.txt. +set -euo pipefail +cd "$(dirname "$0")/.." +J=target/jars +{ + for v in 5.14.4 6.1.3; do + echo "junit-jupiter-params-$v: bundled CSV parser packages (org/junit/jupiter/params/shadow/...)" + unzip -l "$J/junit-jupiter-params-$v.jar" | awk '{print $4}' | grep -o 'org/junit/jupiter/params/shadow/[a-z]*/[a-z]*' | sort | uniq -c | sed 's/^ */ /' + done + echo + echo "junit-vintage-engine-6.1.3 manifest, package export status:" + unzip -p "$J/junit-vintage-engine-6.1.3.jar" META-INF/MANIFEST.MF | tr -d '\r' | sed ':a;N;$!ba;s/\n //g' | grep -o 'Export-Package: org.junit.vintage.engine;[^,]*' | sed 's/;uses:=.*//; s/^Export-Package: //' + echo "junit-vintage-engine-5.14.4 manifest, package export status:" + unzip -p "$J/junit-vintage-engine-5.14.4.jar" META-INF/MANIFEST.MF | tr -d '\r' | sed ':a;N;$!ba;s/\n //g' | grep -o 'Export-Package: org.junit.vintage.engine;[^,]*' | sed 's/;uses:=.*//; s/^Export-Package: //' +} > output/07-jar-contents.txt +cat output/07-jar-contents.txt diff --git a/junit-6-migration/scripts/run-all.sh b/junit-6-migration/scripts/run-all.sh index 7c3f228..f67a7d1 100755 --- a/junit-6-migration/scripts/run-all.sh +++ b/junit-6-migration/scripts/run-all.sh @@ -4,8 +4,9 @@ set -euo pipefail cd "$(dirname "$0")/.." unset JAVA_TOOL_OPTIONS -python3 scripts/api_diff.py >/dev/null # 01, 02: jar-to-jar API diff (also downloads the jars) mvn -B -q clean test -Pjunit5 # 03, 04 on JUnit 5.14.4 mvn -B -q clean test -Pjunit6 # 03, 04 on JUnit 6.1.3 +python3 scripts/api_diff.py >/dev/null # 01, 02: jar-to-jar API diff (downloads the jars into target/jars) ./scripts/compile-old-apis.sh # 05, 06 +./scripts/inspect-jars.sh >/dev/null # 07 ls -1 output