org.jvnet.hudson.test.JenkinsRule contains static initialization block with:
if (!Functions.isWindows()) {
try {
GNUCLibrary.LIBC.unsetenv("MAVEN_OPTS");
GNUCLibrary.LIBC.unsetenv("MAVEN_DEBUG_OPTS");
} catch (Exception e) {
LOGGER.log(Level.WARNING,"Failed to cancel out MAVEN_OPTS",e);
}
}
This part of code doesn't work as expected in the situation when loading "c" library fails. The exception can't be caught in the static block.
Above means a testsuite can't be executed on by JNA un-supported platform when JenkinsRule is used (obviously by many plug-ins).
Stacktrace looks similar like:
java.lang.UnsatisfiedLinkError: Native library (com/sun/jna/hp-ux-ia64n/libjnidispatch.so) not found in resource path ([file:/hudson_workspace/workspace/HTS-ProcCleanerCI/target/surefire/surefirebooter7685486171447239626.jar])
at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:776)
at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:736)
at com.sun.jna.Native.<clinit>(Native.java:131)
at org.jvnet.hudson.test.JenkinsRule.<clinit>(JenkinsRule.java:2129)
at org.jenkinsci.plugins.proccleaner.PsCleanerTest.<init>(PsCleanerTest.java:68)
PsCleanerTest.java:68 : @Rule public JenkinsRule j = new JenkinsRule(); JenkinsRule.java:2129 : GNUCLibrary.LIBC.unsetenv("MAVEN_OPTS");
|