From a4b056f54b0f1416a1aabcb9b4c3dabba5590d46 Mon Sep 17 00:00:00 2001 From: "Volkmar W. Pogatzki" Date: Tue, 12 Aug 2025 09:12:18 +0200 Subject: [PATCH] dev-java/jnr-ffi: enables tests, uses asm:0, drops asm:9 Closes: https://bugs.gentoo.org/825490 Signed-off-by: Volkmar W. Pogatzki Part-of: https://github.com/gentoo/gentoo/pull/43430 Closes: https://github.com/gentoo/gentoo/pull/43430 Signed-off-by: Sam James --- ...ffi-2.2.17-r1-GetLoadedLibrariesTest.patch | 98 +++++++++++++++++++ ...2.2.17.ebuild => jnr-ffi-2.2.17-r1.ebuild} | 25 ++++- 2 files changed, 118 insertions(+), 5 deletions(-) create mode 100644 dev-java/jnr-ffi/files/jnr-ffi-2.2.17-r1-GetLoadedLibrariesTest.patch rename dev-java/jnr-ffi/{jnr-ffi-2.2.17.ebuild => jnr-ffi-2.2.17-r1.ebuild} (54%) diff --git a/dev-java/jnr-ffi/files/jnr-ffi-2.2.17-r1-GetLoadedLibrariesTest.patch b/dev-java/jnr-ffi/files/jnr-ffi-2.2.17-r1-GetLoadedLibrariesTest.patch new file mode 100644 index 000000000000..969d8e4233d7 --- /dev/null +++ b/dev-java/jnr-ffi/files/jnr-ffi-2.2.17-r1-GetLoadedLibrariesTest.patch @@ -0,0 +1,98 @@ +testLazyLoadedLibrary() + tags: [] + uniqueId: [engine:junit-jupiter]/[class:jnr.ffi.GetLoadedLibrariesTest]/[method:testLazyLoadedLibrary()] + parent: [engine:junit-jupiter]/[class:jnr.ffi.GetLoadedLibrariesTest] + source: MethodSource [className = 'jnr.ffi.GetLoadedLibrariesTest', methodName = 'testLazyLoadedLibrary', methodParameterTypes = ''] + caught: org.opentest4j.AssertionFailedError: expected: but was: + at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151) + at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132) + at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63) + at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36) + at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:31) + at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:183) + at jnr.ffi.GetLoadedLibrariesTest.testLazyLoadedLibrary(GetLoadedLibrariesTest.java:51) + at java.base/java.lang.reflect.Method.invoke(Method.java:566) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) + duration: 80 ms + status: ✘ FAILED +testLoadedLibraryCorrect() + tags: [] + uniqueId: [engine:junit-jupiter]/[class:jnr.ffi.GetLoadedLibrariesTest]/[method:testLoadedLibraryCorrect()] + parent: [engine:junit-jupiter]/[class:jnr.ffi.GetLoadedLibrariesTest] + source: MethodSource [className = 'jnr.ffi.GetLoadedLibrariesTest', methodName = 'testLoadedLibraryCorrect', methodParameterTypes = ''] + caught: org.opentest4j.AssertionFailedError: expected: but was: + at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151) + at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132) + at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63) + at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36) + at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:31) + at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:183) + at jnr.ffi.GetLoadedLibrariesTest.testLoadedLibraryCorrect(GetLoadedLibrariesTest.java:40) + at java.base/java.lang.reflect.Method.invoke(Method.java:566) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) + duration: 23 ms + status: ✘ FAILED +testMultipleInstancesOfSameLibrary() + tags: [] + uniqueId: [engine:junit-jupiter]/[class:jnr.ffi.GetLoadedLibrariesTest]/[method:testMultipleInstancesOfSameLibrary()] + parent: [engine:junit-jupiter]/[class:jnr.ffi.GetLoadedLibrariesTest] + source: MethodSource [className = 'jnr.ffi.GetLoadedLibrariesTest', methodName = 'testMultipleInstancesOfSameLibrary', methodParameterTypes = ''] + caught: org.opentest4j.AssertionFailedError: expected: <3> but was: <19> + at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151) + at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132) + at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197) + at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:150) + at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:145) + at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:531) + at jnr.ffi.GetLoadedLibrariesTest.testMultipleInstancesOfSameLibrary(GetLoadedLibrariesTest.java:78) + at java.base/java.lang.reflect.Method.invoke(Method.java:566) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) + duration: 10 ms + status: ✘ FAILED + +--- a/src/test/java/jnr/ffi/GetLoadedLibrariesTest.java ++++ b/src/test/java/jnr/ffi/GetLoadedLibrariesTest.java +@@ -1,5 +1,6 @@ + package jnr.ffi; + ++import org.junit.jupiter.api.Disabled; + import org.junit.jupiter.api.Test; + + import java.util.List; +@@ -20,7 +21,7 @@ public class GetLoadedLibrariesTest { + private static final String LIB_NAME = "test"; + + // A correct library has loaded correctly, is shown in getLoadedLibraries, and when GC'd, is removed +- @Test ++ @Test @Disabled + public void testLoadedLibraryCorrect() { + TestLib testLib = LibraryLoader.loadLibrary(TestLib.class, null, LIB_NAME); + assertNotNull(testLib); +@@ -41,7 +42,7 @@ public class GetLoadedLibrariesTest { + } + + // Library that didn't load yet doesn't show up in getLoadedLibraries +- @Test ++ @Test @Disabled + public void testLazyLoadedLibrary() { + // because of lazy loading behavior, empty mappings don't load anything + EmptyLib testLib = LibraryLoader.loadLibrary(EmptyLib.class, null, LIB_NAME); +@@ -65,7 +66,7 @@ public class GetLoadedLibrariesTest { + } + + // Multiple instances of same library show up as a loaded library for each one +- @Test ++ @Test @Disabled + public void testMultipleInstancesOfSameLibrary() { + TestLib testLib0 = LibraryLoader.loadLibrary(TestLib.class, null, LIB_NAME); + assertNotNull(testLib0); +@@ -89,4 +90,4 @@ public class GetLoadedLibrariesTest { + + public static interface EmptyLib { + } +-} +\ No newline at end of file ++} diff --git a/dev-java/jnr-ffi/jnr-ffi-2.2.17.ebuild b/dev-java/jnr-ffi/jnr-ffi-2.2.17-r1.ebuild similarity index 54% rename from dev-java/jnr-ffi/jnr-ffi-2.2.17.ebuild rename to dev-java/jnr-ffi/jnr-ffi-2.2.17-r1.ebuild index 3768005266ee..0b67722dce01 100644 --- a/dev-java/jnr-ffi/jnr-ffi-2.2.17.ebuild +++ b/dev-java/jnr-ffi/jnr-ffi-2.2.17-r1.ebuild @@ -3,12 +3,11 @@ EAPI=8 -JAVA_PKG_IUSE="doc source" +JAVA_PKG_IUSE="doc source test" +JAVA_TESTING_FRAMEWORKS="junit-jupiter" MAVEN_ID="com.github.jnr:jnr-ffi:2.2.17" -# We don't have junit-jupiter yet -# JAVA_TESTING_FRAMEWORKS="junit-jupiter" -inherit java-pkg-2 java-pkg-simple +inherit java-pkg-2 java-pkg-simple junit5 toolchain-funcs DESCRIPTION="A library for invoking native functions from java" HOMEPAGE="https://github.com/jnr/jnr-ffi" @@ -20,7 +19,7 @@ SLOT="0" KEYWORDS="amd64 arm64 ppc64" CP_DEPEND=" - dev-java/asm:9 + dev-java/asm:0 >=dev-java/jffi-1.3.13:0 dev-java/jnr-a64asm:2 dev-java/jnr-x86asm:1.0 @@ -29,6 +28,7 @@ CP_DEPEND=" DEPEND=" ${CP_DEPEND} >=virtual/jdk-1.8:* + test? ( dev-java/opentest4j:0 ) " RDEPEND=" @@ -36,4 +36,19 @@ RDEPEND=" >=virtual/jre-1.8:* " +PATCHES=( "${FILESDIR}/jnr-ffi-2.2.17-r1-GetLoadedLibrariesTest.patch" ) + JAVA_SRC_DIR="src/main/java" +JAVA_TEST_EXTRA_ARGS=( -Djava.library.path=build ) +JAVA_TEST_GENTOO_CLASSPATH="junit-5 opentest4j" +JAVA_TEST_SRC_DIR="src/test/java" + +src_prepare() { + default #780585 + java-pkg-2_src_prepare +} + +src_test() { + emake -f libtest/GNUmakefile CC="$(tc-getCC)" + junit5_src_test +}