commit:     a4b056f54b0f1416a1aabcb9b4c3dabba5590d46
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Tue Aug 12 07:12:18 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Oct  3 04:56:38 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a4b056f5

dev-java/jnr-ffi: enables tests, uses asm:0, drops asm:9

Closes: https://bugs.gentoo.org/825490
Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Part-of: https://github.com/gentoo/gentoo/pull/43430
Closes: https://github.com/gentoo/gentoo/pull/43430
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../jnr-ffi-2.2.17-r1-GetLoadedLibrariesTest.patch | 98 ++++++++++++++++++++++
 ...-ffi-2.2.17.ebuild => jnr-ffi-2.2.17-r1.ebuild} | 25 ++++--
 2 files changed, 118 insertions(+), 5 deletions(-)

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: <true> but was: 
<false>
+               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: <true> but was: 
<false>
+               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
+}

Reply via email to