From 39e19ec9b71f94f7368583dd1e8a7fa27628b470 Mon Sep 17 00:00:00 2001 From: "Volkmar W. Pogatzki" Date: Thu, 21 May 2026 08:34:07 +0200 Subject: [PATCH] dev-java/asm: enable tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes: https://bugs.gentoo.org/212860 Signed-off-by: Volkmar W. Pogatzki Part-of: https://codeberg.org/gentoo/gentoo/pulls/871 Signed-off-by: Miroslav Ć ulc --- dev-java/asm/asm-9.10.1.ebuild | 39 ++++++++++++++++++--- dev-java/asm/files/asm-9.10-gentoo.patch | 44 ++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 dev-java/asm/files/asm-9.10-gentoo.patch diff --git a/dev-java/asm/asm-9.10.1.ebuild b/dev-java/asm/asm-9.10.1.ebuild index eb802f24a8057..55eaa0866858a 100644 --- a/dev-java/asm/asm-9.10.1.ebuild +++ b/dev-java/asm/asm-9.10.1.ebuild @@ -3,13 +3,13 @@ EAPI=9 -# tests not enabled because of missing eclass support of junit-jupiter -JAVA_PKG_IUSE="doc source" +JAVA_PKG_IUSE="doc source test" +JAVA_TESTING_FRAMEWORKS="junit-jupiter" # Avoid circular dependency JAVA_DISABLE_DEPEND_ON_JAVA_DEP_CHECK="true" -inherit java-pkg-2 java-pkg-simple +inherit java-pkg-2 java-pkg-simple junit5 MY_P="ASM_${PV//./_}" @@ -22,11 +22,31 @@ LICENSE="BSD" SLOT="0" KEYWORDS="~amd64 ~arm64 ~ppc64 ~x64-macos" -DEPEND=">=virtual/jdk-11:*" +DEPEND=" + >=virtual/jdk-11:* + test? ( + >=dev-java/janino-3.1.9:0 + dev-java/junit:5[-vintage] + >=dev-java/opentest4j-1.3.0-r1:0 + ) +" RDEPEND=">=virtual/jre-1.8:*" +PATCHES=( "${FILESDIR}"/asm-9.10-gentoo.patch ) + ASM_MODULES=( "asm" "asm-tree" "asm-analysis" "asm-commons" "asm-util" ) JAVADOC_SRC_DIRS=( asm{-analysis,-commons,,-tree,-util}/src/main/java ) +JAVA_TEST_GENTOO_CLASSPATH="janino junit-5 opentest4j" +JAVA_TEST_RESOURCE_DIRS=( asm{-analysis,-commons,,-tree,-util}/src/test/resources ) + +# The junit:5 version is too old, compilation of LambdaRemapTest.java fails with: +# asm-commons/src/test/java/org/objectweb/asm/commons/LambdaRemapTest.java:9: error: cannot find symbol +# import org.junit.jupiter.params.Parameter; +# ^ +# symbol: class Parameter + +JAVA_TEST_SRC_DIR=( asm{-analysis,-commons,,-test,-tree,-util}/src/test/java \ + ! -name LambdaRemapTest.java ) src_compile() { local module @@ -59,6 +79,17 @@ src_compile() { use doc && ejavadoc } +src_test() { + JAVAC_ARGS="-g" + JAVA_CLASSPATH_EXTRA="junit-5" + JAVA_GENTOO_CLASSPATH_EXTRA+=":asm-test.jar" + JAVA_JAR_FILENAME="asm-test.jar" + JAVA_RESOURCE_DIRS=( asm-test/src/main/resources ) + JAVA_SRC_DIR=( asm-test/src/main/java ) + java-pkg-simple_src_compile + junit5_src_test +} + src_install() { JAVA_JAR_FILENAME="asm.jar" java-pkg-simple_src_install diff --git a/dev-java/asm/files/asm-9.10-gentoo.patch b/dev-java/asm/files/asm-9.10-gentoo.patch new file mode 100644 index 0000000000000..065c594f31b58 --- /dev/null +++ b/dev-java/asm/files/asm-9.10-gentoo.patch @@ -0,0 +1,44 @@ +--- a/asm-analysis/src/test/java/org/objectweb/asm/tree/analysis/AnalyzerWithBasicInterpreterTest.java ++++ b/asm-analysis/src/test/java/org/objectweb/asm/tree/analysis/AnalyzerWithBasicInterpreterTest.java +@@ -206,7 +206,7 @@ class AnalyzerWithBasicInterpreterTest extends AsmTest { + void testAnalyze_mergeWithJsrReachableFromTwoDifferentPaths() + throws IOException, AnalyzerException { + ClassReader classReader = +- new ClassReader(Files.newInputStream(Paths.get("src/test/resources/Issue316204.class"))); ++ new ClassReader(Files.newInputStream(Paths.get("asm-analysis/src/test/resources/Issue316204.class"))); + ClassNode classNode = new ClassNode(); + classReader.accept(classNode, 0); + Analyzer analyzer = new Analyzer<>(new BasicInterpreter()); +--- a/asm-commons/src/test/java/org/objectweb/asm/commons/LocalVariablesSorterTest.java ++++ b/asm-commons/src/test/java/org/objectweb/asm/commons/LocalVariablesSorterTest.java +@@ -216,7 +216,7 @@ class LocalVariablesSorterTest extends AsmTest { + @Test + void testAllMethods_issue317586() throws IOException { + ClassReader classReader = +- new ClassReader(Files.newInputStream(Paths.get("src/test/resources/Issue317586.class"))); ++ new ClassReader(Files.newInputStream(Paths.get("asm-commons/src/test/resources/Issue317586.class"))); + ClassWriter classWriter = new ClassWriter(0); + ClassVisitor localVariablesSorter = + new LocalVariablesSorterClassAdapter(/* latest */ Opcodes.ASM10_EXPERIMENTAL, classWriter); +--- a/asm-util/src/test/java/org/objectweb/asm/util/TextifierTest.java ++++ b/asm-util/src/test/java/org/objectweb/asm/util/TextifierTest.java +@@ -84,7 +84,7 @@ class TextifierTest extends AsmTest { + 0); + + String expectedText = +- Files.readString(Paths.get("src/test/resources/" + classParameter.getName() + ".txt")) ++ Files.readString(Paths.get("asm-util/src/test/resources/" + classParameter.getName() + ".txt")) + .replace("\r", ""); + + assertEquals(expectedText, output.toString()); +--- a/asm/src/test/java/org/objectweb/asm/ClassWriterTest.java ++++ b/asm/src/test/java/org/objectweb/asm/ClassWriterTest.java +@@ -387,7 +387,7 @@ class ClassWriterTest extends AsmTest { + @ValueSource(strings = {"Issue307600.class", "Issue311642.class"}) + void testToByteArray_computeMaxs_largeSubroutines(final String classFileName) throws IOException { + ClassReader classReader = +- new ClassReader(Files.newInputStream(Paths.get("src/test/resources/" + classFileName))); ++ new ClassReader(Files.newInputStream(Paths.get("asm/src/test/resources/" + classFileName))); + ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_MAXS); + classReader.accept(classWriter, attributes(), 0); +