jnr / jnr-posix Goto Github PK
View Code? Open in Web Editor NEWJava Posix layer
License: Other
Java Posix layer
License: Other
JavaSecuredFile.java was added by @olabini in (commit redacted to reduce tainting potential) with an appropriately tri-licensed header but a Google copyright. We can't trace the lineage of this file, because it appeared all at once and does not appear to exist anywhere else in the world.
@olabini Was the Google copyright a mistake here, or did you actually get this from some Google code?
This is a blocker for some folks planning to embed jnr-posix.
NOTE: Anyone attempting to use my clean-room description below to reimpl this file MUST NOT have ever seen the original. So don't go looking for it.
Linux is not only glibc, there are also other C libraries like musl libc or uClibc.
I’m trying to run JRuby on Alpine Linux that uses musl libc and for example irb doesn’t work (see log at the end). I found two native libraries in JRuby, jffi and jansi (bundled in jline.jar), recompiled them against musl and loaded them using appropriate properties, but JRuby is still trying to load libcrypt.so
and complains about fstat
. I spent many hours trying to figure out what’s going on and what is trying to load libcrypt.so
.
Then I finally found jnr-posix. I’ve tried to run tests and it failed in the same way (see log at the end).
Could you please make jnr-posix compatible with musl libc? I can prepare you setup for testing against musl on Travis, if you like.
EDIT: Heureka! I’ve just tried very desperate thing – symlink libc.so
-> libcrypt.so
… and it works! jirb now loads without any error and all jnr-posix tests pass! 🎆
$ JRUBY_OPTS="-Xnative.verbose=true" jirb
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:117)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:43)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:90)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:36)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
at jnr.posix.LazyPOSIX.isNative(LazyPOSIX.java:370)
at org.jruby.RubyGlobal.prepareStdioChannel(RubyGlobal.java:279)
at org.jruby.RubyGlobal.createGlobals(RubyGlobal.java:193)
at org.jruby.Ruby.init(Ruby.java:1241)
at org.jruby.Ruby.newInstance(Ruby.java:330)
at org.jruby.Main.internalRun(Main.java:278)
at org.jruby.Main.run(Main.java:239)
at org.jruby.Main.main(Main.java:201)
NotImplementedError: fstat unimplemented unsupported or native support failed to load
initialize at org/jruby/RubyIO.java:981
open at org/jruby/RubyIO.java:1122
initialize at /usr/share/java/jruby/lib/ruby/stdlib/irb/input-method.rb:140
initialize at /usr/share/java/jruby/lib/ruby/stdlib/irb/context.rb:69
initialize at /usr/share/java/jruby/lib/ruby/stdlib/irb.rb:426
start at /usr/share/java/jruby/lib/ruby/stdlib/irb.rb:383
<top> at /usr/bin/jirb:13
jnr-posix $ mvn verify
-------------------------------------------------------
T E S T S
-------------------------------------------------------
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Running jnr.posix.LinuxPOSIXTest
Running jnr.posix.util.DefaultPOSIXHandlerTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.195 sec <<< FAILURE! - in jnr.posix.LinuxPOSIXTest
jnr.posix.LinuxPOSIXTest Time elapsed: 0.194 sec <<< ERROR!
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:121)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:44)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.getNativePOSIX(POSIXFactory.java:72)
at jnr.posix.POSIXFactory.getNativePOSIX(POSIXFactory.java:82)
at jnr.posix.LinuxPOSIXTest.setUpClass(LinuxPOSIXTest.java:29)
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.206 sec <<< FAILURE! - in jnr.posix.util.DefaultPOSIXHandlerTest
testGetPid(jnr.posix.util.DefaultPOSIXHandlerTest) Time elapsed: 0.202 sec <<< FAILURE!
java.lang.AssertionError:
Expected: <14344>
but: was <0>
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:865)
at org.junit.Assert.assertThat(Assert.java:832)
at jnr.posix.util.DefaultPOSIXHandlerTest.testGetPid(DefaultPOSIXHandlerTest.java:23)
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Running jnr.posix.util.PlatformTest
Running jnr.posix.FileStatTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.007 sec - in jnr.posix.util.PlatformTest
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:121)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:44)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:90)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
at jnr.posix.LazyPOSIX.stat(LazyPOSIX.java:334)
at jnr.posix.FileStatTest.filestatFailed(FileStatTest.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Running jnr.posix.SpawnTest
Tests run: 7, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 0.243 sec <<< FAILURE! - in jnr.posix.FileStatTest
filestatInt(jnr.posix.FileStatTest) Time elapsed: 0.008 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: fstat unimplemented
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.fstat(JavaPOSIX.java:116)
at jnr.posix.LazyPOSIX.fstat(LazyPOSIX.java:126)
at jnr.posix.FileStatTest.filestatInt(FileStatTest.java:109)
filestatDescriptor(jnr.posix.FileStatTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: fstat unimplemented
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.fstat(JavaPOSIX.java:121)
at jnr.posix.LazyPOSIX.fstat(LazyPOSIX.java:134)
at jnr.posix.FileStatTest.filestatDescriptor(FileStatTest.java:83)
fileStatNanoTime(jnr.posix.FileStatTest) Time elapsed: 0.002 sec <<< ERROR!
java.lang.ClassCastException: jnr.posix.JavaFileStat cannot be cast to jnr.posix.LinuxFileStat64
at jnr.posix.FileStatTest.fileStatNanoTime(FileStatTest.java:159)
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Running jnr.posix.JavaFileStatTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 sec - in jnr.posix.JavaFileStatTest
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:121)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:44)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:90)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
at jnr.posix.LazyPOSIX.posix_spawnp(LazyPOSIX.java:398)
at jnr.posix.SpawnTest.closeInput(SpawnTest.java:182)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Tests run: 4, Failures: 0, Errors: 4, Skipped: 0, Time elapsed: 0.255 sec <<< FAILURE! - in jnr.posix.SpawnTest
closeInput(jnr.posix.SpawnTest) Time elapsed: 0.045 sec <<< ERROR!
java.lang.NullPointerException: null
at jnr.posix.SpawnTest.closePipe(SpawnTest.java:52)
at jnr.posix.SpawnTest.closeInput(SpawnTest.java:195)
validPid(jnr.posix.SpawnTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: posix_spawnp
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.unimplementedInt(JavaPOSIX.java:504)
at jnr.posix.JavaPOSIX.posix_spawnp(JavaPOSIX.java:474)
at jnr.posix.LazyPOSIX.posix_spawnp(LazyPOSIX.java:398)
at jnr.posix.SpawnTest.validPid(SpawnTest.java:43)
outputPipe(jnr.posix.SpawnTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.NullPointerException: null
at jnr.posix.SpawnTest.closePipe(SpawnTest.java:52)
at jnr.posix.SpawnTest.outputPipe(SpawnTest.java:86)
inputPipe(jnr.posix.SpawnTest) Time elapsed: 0 sec <<< ERROR!
java.lang.NullPointerException: null
at jnr.posix.SpawnTest.closePipe(SpawnTest.java:52)
at jnr.posix.SpawnTest.inputPipe(SpawnTest.java:123)
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Running jnr.posix.CryptTest
Running jnr.posix.ProcessTest
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.215 sec <<< FAILURE! - in jnr.posix.CryptTest
testCrypt(jnr.posix.CryptTest) Time elapsed: 0.212 sec <<< FAILURE!
org.junit.ComparisonFailure: expected:<saTxS7PqPdgj[o]> but was:<saTxS7PqPdgj[]>
at org.junit.Assert.assertEquals(Assert.java:115)
at org.junit.Assert.assertEquals(Assert.java:144)
at jnr.posix.CryptTest.testCrypt(CryptTest.java:35)
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:121)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:44)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:90)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
at jnr.posix.LazyPOSIX.getrlimit(LazyPOSIX.java:210)
at jnr.posix.ProcessTest.testGetRLimitPreallocatedRlimit(ProcessTest.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Tests run: 8, Failures: 0, Errors: 6, Skipped: 0, Time elapsed: 0.234 sec <<< FAILURE! - in jnr.posix.ProcessTest
testGetRLimitPreallocatedRlimit(jnr.posix.ProcessTest) Time elapsed: 0.201 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: getrlimit
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.unimplementedInt(JavaPOSIX.java:504)
at jnr.posix.JavaPOSIX.getrlimit(JavaPOSIX.java:221)
at jnr.posix.LazyPOSIX.getrlimit(LazyPOSIX.java:210)
at jnr.posix.ProcessTest.testGetRLimitPreallocatedRlimit(ProcessTest.java:59)
testSetRlimitPreallocatedLinux(jnr.posix.ProcessTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: getrlimit
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.getrlimit(JavaPOSIX.java:229)
at jnr.posix.LazyPOSIX.getrlimit(LazyPOSIX.java:218)
at jnr.posix.ProcessTest.testSetRlimitPreallocatedLinux(ProcessTest.java:105)
testSetRlimitLinux(jnr.posix.ProcessTest) Time elapsed: 0 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: getrlimit
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.getrlimit(JavaPOSIX.java:229)
at jnr.posix.LazyPOSIX.getrlimit(LazyPOSIX.java:218)
at jnr.posix.ProcessTest.testSetRlimitLinux(ProcessTest.java:91)
testGetRLimitPointer(jnr.posix.ProcessTest) Time elapsed: 0.02 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: getrlimit
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.unimplementedInt(JavaPOSIX.java:504)
at jnr.posix.JavaPOSIX.getrlimit(JavaPOSIX.java:225)
at jnr.posix.LazyPOSIX.getrlimit(LazyPOSIX.java:214)
at jnr.posix.ProcessTest.testGetRLimitPointer(ProcessTest.java:76)
testGetRLimit(jnr.posix.ProcessTest) Time elapsed: 0 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: getrlimit
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.getrlimit(JavaPOSIX.java:229)
at jnr.posix.LazyPOSIX.getrlimit(LazyPOSIX.java:218)
at jnr.posix.ProcessTest.testGetRLimit(ProcessTest.java:43)
testSetRlimitPointerLinux(jnr.posix.ProcessTest) Time elapsed: 0 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: getrlimit
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.getrlimit(JavaPOSIX.java:229)
at jnr.posix.LazyPOSIX.getrlimit(LazyPOSIX.java:218)
at jnr.posix.ProcessTest.testSetRlimitPointerLinux(ProcessTest.java:122)
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Running jnr.posix.IOTest
Running jnr.posix.IDTest
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:121)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:44)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:90)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
at jnr.posix.LazyPOSIX.socketpair(LazyPOSIX.java:496)
at jnr.posix.IOTest.testSendRecvMsg_NoControl(IOTest.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Tests run: 5, Failures: 0, Errors: 5, Skipped: 0, Time elapsed: 0.228 sec <<< FAILURE! - in jnr.posix.IOTest
testSendRecvMsg_NoControl(jnr.posix.IOTest) Time elapsed: 0.213 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: socketpair
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.socketpair(JavaPOSIX.java:631)
at jnr.posix.LazyPOSIX.socketpair(LazyPOSIX.java:496)
at jnr.posix.IOTest.testSendRecvMsg_NoControl(IOTest.java:109)
testPipe(jnr.posix.IOTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: pipe
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.pipe(JavaPOSIX.java:625)
at jnr.posix.LazyPOSIX.pipe(LazyPOSIX.java:492)
at jnr.posix.IOTest.testPipe(IOTest.java:58)
testSocketPair(jnr.posix.IOTest) Time elapsed: 0 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: socketpair
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.socketpair(JavaPOSIX.java:631)
at jnr.posix.LazyPOSIX.socketpair(LazyPOSIX.java:496)
at jnr.posix.IOTest.testSocketPair(IOTest.java:78)
testSendRecvMsg_WithControl(jnr.posix.IOTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: socketpair
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.socketpair(JavaPOSIX.java:631)
at jnr.posix.LazyPOSIX.socketpair(LazyPOSIX.java:496)
at jnr.posix.IOTest.testSendRecvMsg_WithControl(IOTest.java:153)
testOpenReadWrite(jnr.posix.IOTest) Time elapsed: 0.002 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: open
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.open(JavaPOSIX.java:565)
at jnr.posix.LazyPOSIX.open(LazyPOSIX.java:452)
at jnr.posix.IOTest.testOpenReadWrite(IOTest.java:29)
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:121)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:44)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:90)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
at jnr.posix.LazyPOSIX.getgid(LazyPOSIX.java:146)
at jnr.posix.IDTest.getgid(IDTest.java:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.305 sec - in jnr.posix.IDTest
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Running jnr.posix.HANDLETest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.084 sec - in jnr.posix.HANDLETest
Running jnr.posix.JavaPOSIXTest
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.112 sec - in jnr.posix.JavaPOSIXTest
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Running jnr.posix.EnvTest
Running jnr.posix.POSIXFactoryTest
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:121)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:44)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:90)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
at jnr.posix.LazyPOSIX.getenv(LazyPOSIX.java:386)
at jnr.posix.EnvTest.testSetenvNonOverwrite(EnvTest.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Tests run: 6, Failures: 2, Errors: 1, Skipped: 0, Time elapsed: 0.205 sec <<< FAILURE! - in jnr.posix.EnvTest
testSetenvNonOverwrite(jnr.posix.EnvTest) Time elapsed: 0.193 sec <<< FAILURE!
java.lang.AssertionError: expected:<null> but was:<new value>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:743)
at org.junit.Assert.assertEquals(Assert.java:118)
at org.junit.Assert.assertEquals(Assert.java:144)
at jnr.posix.EnvTest.testSetenvNonOverwrite(EnvTest.java:31)
testEnv(jnr.posix.EnvTest) Time elapsed: 0.003 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: environ
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.environ(JavaPOSIX.java:206)
at jnr.posix.LazyPOSIX.environ(LazyPOSIX.java:382)
at jnr.posix.EnvTest.testEnv(EnvTest.java:70)
testSetenvOverwrite(jnr.posix.EnvTest) Time elapsed: 0 sec <<< FAILURE!
java.lang.AssertionError: Values should be different. Actual: new value
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failEquals(Assert.java:185)
at org.junit.Assert.assertNotEquals(Assert.java:161)
at org.junit.Assert.assertNotEquals(Assert.java:175)
at jnr.posix.EnvTest.testSetenvOverwrite(EnvTest.java:41)
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Tests run: 2, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.196 sec <<< FAILURE! - in jnr.posix.POSIXFactoryTest
testGetNativePOSIX(jnr.posix.POSIXFactoryTest) Time elapsed: 0.188 sec <<< ERROR!
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:121)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:44)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.getNativePOSIX(POSIXFactory.java:72)
at jnr.posix.POSIXFactory.getNativePOSIX(POSIXFactory.java:82)
at jnr.posix.POSIXFactoryTest.testGetNativePOSIX(POSIXFactoryTest.java:11)
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Running jnr.posix.PasswdTest
Running jnr.posix.SignalTest
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:121)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:44)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:90)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
at jnr.posix.LazyPOSIX.getpwnam(LazyPOSIX.java:198)
at jnr.posix.PasswdTest.nonExistantUserReturnsNull(PasswdTest.java:66)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.228 sec <<< FAILURE! - in jnr.posix.PasswdTest
nonExistantUserReturnsNull(jnr.posix.PasswdTest) Time elapsed: 0.216 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: getpwnam unimplemented
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.getpwnam(JavaPOSIX.java:176)
at jnr.posix.LazyPOSIX.getpwnam(LazyPOSIX.java:198)
at jnr.posix.PasswdTest.nonExistantUserReturnsNull(PasswdTest.java:66)
getpwnam(jnr.posix.PasswdTest) Time elapsed: 0 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: getpwnam unimplemented
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.getpwnam(JavaPOSIX.java:176)
at jnr.posix.LazyPOSIX.getpwnam(LazyPOSIX.java:198)
at jnr.posix.PasswdTest.getpwnam(PasswdTest.java:56)
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:121)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:44)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:90)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
at jnr.posix.LazyPOSIX.signal(LazyPOSIX.java:246)
at jnr.posix.SignalTest.testBasicSignal(SignalTest.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.209 sec <<< FAILURE! - in jnr.posix.SignalTest
testBasicSignal(jnr.posix.SignalTest) Time elapsed: 0.191 sec <<< ERROR!
java.lang.UnsupportedOperationException: Not supported yet.
at jnr.posix.DummyPOSIXHandler.getPID(DummyPOSIXHandler.java:57)
at jnr.posix.JavaLibCHelper.getpid(JavaLibCHelper.java:241)
at jnr.posix.JavaPOSIX.getpid(JavaPOSIX.java:155)
at jnr.posix.LazyPOSIX.getpid(LazyPOSIX.java:182)
at jnr.posix.SignalTest.testBasicSignal(SignalTest.java:43)
testJavaSignal(jnr.posix.SignalTest) Time elapsed: 0 sec <<< ERROR!
java.lang.UnsupportedOperationException: Not supported yet.
at jnr.posix.DummyPOSIXHandler.getPID(DummyPOSIXHandler.java:57)
at jnr.posix.JavaLibCHelper.getpid(JavaLibCHelper.java:241)
at jnr.posix.JavaPOSIX.getpid(JavaPOSIX.java:155)
at jnr.posix.LazyPOSIX.getpid(LazyPOSIX.java:182)
at jnr.posix.SignalTest.testJavaSignal(SignalTest.java:62)
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Running jnr.posix.DTableSizeTest
Running jnr.posix.FileTest
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:121)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:44)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:90)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
at jnr.posix.LazyPOSIX.isNative(LazyPOSIX.java:374)
at jnr.posix.DTableSizeTest.testGetDtableSize(DTableSizeTest.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.201 sec - in jnr.posix.DTableSizeTest
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:121)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:44)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:90)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
at jnr.posix.LazyPOSIX.dup2(LazyPOSIX.java:424)
at jnr.posix.FileTest.dup2Test(FileTest.java:209)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Running jnr.posix.GroupTest
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: Error loading shared library libcrypt.so: No such file or directory
at jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:121)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:44)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:290)
at jnr.ffi.Library.loadLibrary(Library.java:127)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:279)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:283)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:143)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:90)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
at jnr.posix.LazyPOSIX.getgrnam(LazyPOSIX.java:162)
at jnr.posix.GroupTest.nonExistantGroupReturnsNull(GroupTest.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Tests run: 3, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 0.213 sec <<< FAILURE! - in jnr.posix.GroupTest
nonExistantGroupReturnsNull(jnr.posix.GroupTest) Time elapsed: 0.203 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: getgrnam unimplemented
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.getgrnam(JavaPOSIX.java:180)
at jnr.posix.LazyPOSIX.getgrnam(LazyPOSIX.java:162)
at jnr.posix.GroupTest.nonExistantGroupReturnsNull(GroupTest.java:58)
getgrent(jnr.posix.GroupTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: getgrent unimplemented
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.getgrent(JavaPOSIX.java:185)
at jnr.posix.LazyPOSIX.getgrent(LazyPOSIX.java:154)
at jnr.posix.GroupTest.getgrent(GroupTest.java:67)
getgrnam(jnr.posix.GroupTest) Time elapsed: 0 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: getgrnam unimplemented
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.getgrnam(JavaPOSIX.java:180)
at jnr.posix.LazyPOSIX.getgrnam(LazyPOSIX.java:162)
at jnr.posix.GroupTest.getgrnam(GroupTest.java:48)
Tests run: 27, Failures: 2, Errors: 21, Skipped: 0, Time elapsed: 4.271 sec <<< FAILURE! - in jnr.posix.FileTest
dup2Test(jnr.posix.FileTest) Time elapsed: 0.194 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: dup2
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.unimplementedInt(JavaPOSIX.java:504)
at jnr.posix.JavaPOSIX.dup2(JavaPOSIX.java:533)
at jnr.posix.LazyPOSIX.dup2(LazyPOSIX.java:424)
at jnr.posix.FileTest.dup2Test(FileTest.java:209)
flockTest(jnr.posix.FileTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: flock
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.unimplementedInt(JavaPOSIX.java:504)
at jnr.posix.JavaPOSIX.flock(JavaPOSIX.java:525)
at jnr.posix.LazyPOSIX.flock(LazyPOSIX.java:416)
at jnr.posix.FileTest.flockTest(FileTest.java:169)
pwriteTest(jnr.posix.FileTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: open
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.open(JavaPOSIX.java:565)
at jnr.posix.LazyPOSIX.open(LazyPOSIX.java:452)
at jnr.posix.FileTest.pwriteTest(FileTest.java:347)
readlinkByteBufferTest(jnr.posix.FileTest) Time elapsed: 0.015 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: readlink
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.readlink(JavaPOSIX.java:338)
at jnr.posix.LazyPOSIX.readlink(LazyPOSIX.java:282)
at jnr.posix.FileTest.readlinkByteBufferTest(FileTest.java:482)
futimeTest(jnr.posix.FileTest) Time elapsed: 2.005 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: open
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.open(JavaPOSIX.java:565)
at jnr.posix.LazyPOSIX.open(LazyPOSIX.java:452)
at jnr.posix.FileTest.futimeTest(FileTest.java:118)
readlinkPointerTest(jnr.posix.FileTest) Time elapsed: 0.01 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: readlink
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.readlink(JavaPOSIX.java:344)
at jnr.posix.LazyPOSIX.readlink(LazyPOSIX.java:286)
at jnr.posix.FileTest.readlinkPointerTest(FileTest.java:503)
utimesTest(jnr.posix.FileTest) Time elapsed: 0 sec <<< FAILURE!
java.lang.AssertionError: atime seconds failed expected:<800> but was:<900>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:743)
at org.junit.Assert.assertEquals(Assert.java:118)
at org.junit.Assert.assertEquals(Assert.java:555)
at jnr.posix.FileTest.utimesTest(FileTest.java:42)
writeTest(jnr.posix.FileTest) Time elapsed: 0 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: open
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.open(JavaPOSIX.java:565)
at jnr.posix.LazyPOSIX.open(LazyPOSIX.java:452)
at jnr.posix.FileTest.writeTest(FileTest.java:326)
accessTest(jnr.posix.FileTest) Time elapsed: 0.003 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: access
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.access(JavaPOSIX.java:549)
at jnr.posix.LazyPOSIX.access(LazyPOSIX.java:440)
at jnr.posix.FileTest.accessTest(FileTest.java:443)
fcntlDupfdTest(jnr.posix.FileTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: fcntl
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.unimplementedInt(JavaPOSIX.java:504)
at jnr.posix.JavaPOSIX.fcntl(JavaPOSIX.java:541)
at jnr.posix.LazyPOSIX.fcntl(LazyPOSIX.java:432)
at jnr.posix.FileTest.fcntlDupfdTest(FileTest.java:230)
mkfifoTest(jnr.posix.FileTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: mkfifo
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.mkfifo(JavaPOSIX.java:688)
at jnr.posix.LazyPOSIX.mkfifo(LazyPOSIX.java:532)
at jnr.posix.FileTest.mkfifoTest(FileTest.java:518)
openTest(jnr.posix.FileTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: open
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.open(JavaPOSIX.java:565)
at jnr.posix.LazyPOSIX.open(LazyPOSIX.java:452)
at jnr.posix.FileTest.openTest(FileTest.java:309)
closeTest(jnr.posix.FileTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: close
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.unimplementedInt(JavaPOSIX.java:504)
at jnr.posix.JavaPOSIX.close(JavaPOSIX.java:555)
at jnr.posix.LazyPOSIX.close(LazyPOSIX.java:444)
at jnr.posix.FileTest.closeTest(FileTest.java:272)
unlinkTestNonWindows(jnr.posix.FileTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: unlink
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.unlink(JavaPOSIX.java:559)
at jnr.posix.LazyPOSIX.unlink(LazyPOSIX.java:448)
at jnr.posix.FileTest.unlinkTestNonWindows(FileTest.java:292)
readlinkTest(jnr.posix.FileTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: readlink
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.readlink(JavaPOSIX.java:332)
at jnr.posix.LazyPOSIX.readlink(LazyPOSIX.java:278)
at jnr.posix.FileTest.readlinkTest(FileTest.java:464)
truncateTest(jnr.posix.FileTest) Time elapsed: 0 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: truncate
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.truncate(JavaPOSIX.java:649)
at jnr.posix.LazyPOSIX.truncate(LazyPOSIX.java:508)
at jnr.posix.FileTest.truncateTest(FileTest.java:369)
fchmodTest(jnr.posix.FileTest) Time elapsed: 0 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: open
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.open(JavaPOSIX.java:565)
at jnr.posix.LazyPOSIX.open(LazyPOSIX.java:452)
at jnr.posix.FileTest.fchmodTest(FileTest.java:410)
ftruncateTest(jnr.posix.FileTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: open
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.open(JavaPOSIX.java:565)
at jnr.posix.LazyPOSIX.open(LazyPOSIX.java:452)
at jnr.posix.FileTest.ftruncateTest(FileTest.java:385)
utimesPointerTest(jnr.posix.FileTest) Time elapsed: 0.011 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: utimes
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.unimplementedInt(JavaPOSIX.java:504)
at jnr.posix.JavaPOSIX.utimes(JavaPOSIX.java:445)
at jnr.posix.LazyPOSIX.utimes(LazyPOSIX.java:354)
at jnr.posix.FileTest.utimesPointerTest(FileTest.java:90)
linkTest(jnr.posix.FileTest) Time elapsed: 0 sec <<< FAILURE!
java.lang.AssertionError: link did not return 0 expected:<0> but was:<-1>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:743)
at org.junit.Assert.assertEquals(Assert.java:118)
at org.junit.Assert.assertEquals(Assert.java:555)
at jnr.posix.FileTest.linkTest(FileTest.java:132)
fcntlDupfdWithArgTest(jnr.posix.FileTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: fcntl
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.unimplementedInt(JavaPOSIX.java:504)
at jnr.posix.JavaPOSIX.fcntl(JavaPOSIX.java:541)
at jnr.posix.LazyPOSIX.fcntl(LazyPOSIX.java:436)
at jnr.posix.FileTest.fcntlDupfdWithArgTest(FileTest.java:253)
fcntlIntTest(jnr.posix.FileTest) Time elapsed: 0 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: pipe
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.pipe(JavaPOSIX.java:625)
at jnr.posix.LazyPOSIX.pipe(LazyPOSIX.java:492)
at jnr.posix.FileTest.fcntlIntTest(FileTest.java:398)
dupTest(jnr.posix.FileTest) Time elapsed: 0.002 sec <<< ERROR!
java.lang.UnsupportedOperationException: unimplemented method: dup
at jnr.posix.DummyPOSIXHandler.unimplementedError(DummyPOSIXHandler.java:29)
at jnr.posix.JavaPOSIX.unimplementedInt(JavaPOSIX.java:504)
at jnr.posix.JavaPOSIX.dup(JavaPOSIX.java:529)
at jnr.posix.LazyPOSIX.dup(LazyPOSIX.java:420)
at jnr.posix.FileTest.dupTest(FileTest.java:186)
Results :
Failed tests:
CryptTest.testCrypt:35 expected:<saTxS7PqPdgj[o]> but was:<saTxS7PqPdgj[]>
EnvTest.testSetenvNonOverwrite:31 expected:<null> but was:<new value>
EnvTest.testSetenvOverwrite:41 Values should be different. Actual: new value
FileTest.linkTest:132 link did not return 0 expected:<0> but was:<-1>
FileTest.utimesTest:42 atime seconds failed expected:<800> but was:<900>
DefaultPOSIXHandlerTest.testGetPid:23
Expected: <14344>
but: was <0>
Tests in error:
EnvTest.testEnv:70 » UnsupportedOperation unimplemented method: environ
FileStatTest.fileStatNanoTime:159 ClassCast jnr.posix.JavaFileStat cannot be c...
FileStatTest.filestatDescriptor:83 » UnsupportedOperation unimplemented method...
FileStatTest.filestatInt:109 » UnsupportedOperation unimplemented method: fsta...
FileTest.accessTest:443 » UnsupportedOperation unimplemented method: access
FileTest.closeTest:272 » UnsupportedOperation unimplemented method: close
FileTest.dup2Test:209 » UnsupportedOperation unimplemented method: dup2
FileTest.dupTest:186 » UnsupportedOperation unimplemented method: dup
FileTest.fchmodTest:410 » UnsupportedOperation unimplemented method: open
FileTest.fcntlDupfdTest:230 » UnsupportedOperation unimplemented method: fcntl
FileTest.fcntlDupfdWithArgTest:253 » UnsupportedOperation unimplemented method...
FileTest.fcntlIntTest:398 » UnsupportedOperation unimplemented method: pipe
FileTest.flockTest:169 » UnsupportedOperation unimplemented method: flock
FileTest.ftruncateTest:385 » UnsupportedOperation unimplemented method: open
FileTest.futimeTest:118 » UnsupportedOperation unimplemented method: open
FileTest.mkfifoTest:518 » UnsupportedOperation unimplemented method: mkfifo
FileTest.openTest:309 » UnsupportedOperation unimplemented method: open
FileTest.pwriteTest:347 » UnsupportedOperation unimplemented method: open
FileTest.readlinkByteBufferTest:482 » UnsupportedOperation unimplemented metho...
FileTest.readlinkPointerTest:503 » UnsupportedOperation unimplemented method: ...
FileTest.readlinkTest:464 » UnsupportedOperation unimplemented method: readlin...
FileTest.truncateTest:369 » UnsupportedOperation unimplemented method: truncat...
FileTest.unlinkTestNonWindows:292 » UnsupportedOperation unimplemented method:...
FileTest.utimesPointerTest:90 » UnsupportedOperation unimplemented method: uti...
FileTest.writeTest:326 » UnsupportedOperation unimplemented method: open
GroupTest.getgrent:67 » UnsupportedOperation unimplemented method: getgrent un...
GroupTest.getgrnam:48 » UnsupportedOperation unimplemented method: getgrnam un...
GroupTest.nonExistantGroupReturnsNull:58 » UnsupportedOperation unimplemented ...
IOTest.testOpenReadWrite:29 » UnsupportedOperation unimplemented method: open
IOTest.testPipe:58 » UnsupportedOperation unimplemented method: pipe
IOTest.testSendRecvMsg_NoControl:109 » UnsupportedOperation unimplemented meth...
IOTest.testSendRecvMsg_WithControl:153 » UnsupportedOperation unimplemented me...
IOTest.testSocketPair:78 » UnsupportedOperation unimplemented method: socketpa...
LinuxPOSIXTest.setUpClass:29 » UnsatisfiedLink Error loading shared library li...
POSIXFactoryTest.testGetNativePOSIX:11 » UnsatisfiedLink Error loading shared ...
PasswdTest.getpwnam:56 » UnsupportedOperation unimplemented method: getpwnam u...
PasswdTest.nonExistantUserReturnsNull:66 » UnsupportedOperation unimplemented ...
ProcessTest.testGetRLimit:43 » UnsupportedOperation unimplemented method: getr...
ProcessTest.testGetRLimitPointer:76 » UnsupportedOperation unimplemented metho...
ProcessTest.testGetRLimitPreallocatedRlimit:59 » UnsupportedOperation unimplem...
ProcessTest.testSetRlimitLinux:91 » UnsupportedOperation unimplemented method:...
ProcessTest.testSetRlimitPointerLinux:122 » UnsupportedOperation unimplemented...
ProcessTest.testSetRlimitPreallocatedLinux:105 » UnsupportedOperation unimplem...
SignalTest.testBasicSignal:43 » UnsupportedOperation Not supported yet.
SignalTest.testJavaSignal:62 » UnsupportedOperation Not supported yet.
SpawnTest.closeInput:195->closePipe:52 NullPointer
SpawnTest.inputPipe:123->closePipe:52 NullPointer
SpawnTest.outputPipe:86->closePipe:52 NullPointer
SpawnTest.validPid:43 » UnsupportedOperation unimplemented method: posix_spawn...
Tests run: 84, Failures: 6, Errors: 49, Skipped: 1
Hi,
I seem to be running into an issue when I run my app (using jnr-posix) from a jetty instance inside eclipse. It fails to load the native implementation, and falls back to the java implementation (see traceback below). It does seem to work if you run it from a shell (I'm on ubuntu 12.04 64-bit). Do you have a workaround for this?
Thanks!
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.IncompatibleClassChangeError: Found interface org.objectweb.asm.ClassVisitor, but class was expected
at jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:74)
at jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:43)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:265)
at jnr.ffi.Library.loadLibrary(Library.java:123)
at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:219)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:223)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:95)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:69)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:38)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:35)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:31)
at jnr.posix.LazyPOSIX.getcwd(LazyPOSIX.java:451)
Please refer to rails/rails#27406
Is it possible to implement gid() on JavaFileStat.java?
posix_spawnp() should return an int and not a long.
https://github.com/jnr/jnr-posix/blob/master/src/main/java/jnr/posix/POSIX.java#L128-L133
This is as specified by the man page:
int posix_spawn(pid_t *pid, const char *path,
const posix_spawn_file_actions_t *file_actions,
const posix_spawnattr_t *attrp,
char *const argv[], char *const envp[]);
Of course, one problem is that a native int might be 4 bytes, 8 bytes or something different than the Java 4-bytes int. But many other functions have this problem, so I suppose primitive types take the native meaning and not necessarily Java's.
This means on Solaris, the returned value is actually wrong, and the real value is (returnValue >> 32)
.
cc @nirvdrum @sanzinger
The code in LinuxPOSIX.java passed version "0" for 64 bit x86 Linux. But I believe this is an error, and needs to be 1 (see _STAT_VER in glibc's sysdeps/unix/sysv/linux/x86/bits/stat.h, or just compile a test program and print out _STAT_VER).
This doesn't cause any problems because glibc's __fxstat64 actually never checks the version argument, but it nevertheless seems strange to give it the wrong version.
Another related question - it seems you always call __fxstat64, even on 32-bit platforms. So why do you need that 32-bit structure definition?
Please add a rename command similar to http://pubs.opengroup.org/onlinepubs/009695399/functions/rename.html
The gethostname() function is in the POSIX manual, however it is not specified in the project's POSIX interface (and also is annoyingly not present in the JDK itself).
This might be a useful addition; also it should be fairly trivial to add.
For jruby/jruby#4393 we added gettimeofday to jnr-posix. Unfortunately, it is not supported on Windows (jruby/jruby#4565).
I'm doing a workaround that uses System.currentTimeMillis on Windows. This won't preserve microsecond accuracy, but it will work.
We need to do the additional logic to make an appropriate gettimeofday on Windows. I found at least one SO post describing how: http://stackoverflow.com/questions/1676036/what-should-i-use-to-replace-gettimeofday-on-windows
MRI does so we should be able to as well. test/mri/ruby/test_file.rb fails large number of tests because we (JRuby) are calling into wait() and getting NotImplemented.
It appears that the dev_major, dev_minor, rdev_major and rdev_minor methods from the File::Stat class try to return numeric values on MS Windows. It seems they're using the results of the dev and rdev methods, which return a drive number (0, 1, or 2 for A:, B: or C: drives, for example). The dev and rdev methods themselves are fine - that matches MRI.
However, in MRI these methods all return nil as these have no meaningful value on Windows.
I'm looking for a way to open, read from & write to a pipe. Looking the source it is unclear to me on how to do that. Is it possible and if so, could you provide some documentation or give some hints where to start?
we have a FIXME: shortcutting WindowsPOSIX.stat to call win32's posix stat fallback. This is undesirable since it does not support UNC nor long paths. If I remove this work around in cases where GetFileAttributesExW fails we crash in fallback call to FindFirstFileW.
The crash itself appears to be us populating something incorrectly but windows itself seems very good at not changing word sizes between 32/64 so I am baffled by 32 fails and 64 works.
We need this to have Kernel#exec
working properly in JRuby. (See http://jira.codehaus.org/browse/JRUBY-6994.)
This change in jnr-enxio shows how we'd like to start getting the C library, as a utility of jnr-ffi: jnr/jnr-enxio#12
We need to do the same in jnr-posix.
off_t is a long on 64 bit platforms, but the POSIX interface lists it as an int. It should be updated to match the platform size on x86_64 systems. Discovered via jruby/jruby#3664
We use jnr-posix to relinquish root privileges after opening server sockets (that is, listening sockets < 1024). With java 8, we get
java.lang.IllegalStateException: getpwnam unimplemented is not implemented in jnr-posix at jnr.posix.util.DefaultPOSIXHandler.unimplementedError(DefaultPOSIXHandler.java:28) at jnr.posix.JavaPOSIX.getpwnam(JavaPOSIX.java:176) at jnr.posix.LazyPOSIX.getpwnam(LazyPOSIX.java:198)
This worked fine in previous JREs.
I would like a way to get POSIXFactory
to handle failure to load the native POSIX by propagating the Throwable
, not returning a JavaPOSIX
.
The caller cannot function with the limited functionality of JavaPOSIX
. It would be better to fail fast with a useful exception than to delay failure with an uninformative "not implemented" error.
Please add posix_fadvise along with constant values for the permissible values:
http://linux.die.net/man/2/posix_fadvise
It should be nice to have the WaitMacros
in jnr.
https://github.com/jruby/jruby/blob/master/core/src/main/java/org/jruby/util/io/PosixShim.java#L288
The following test unfortunately fails on Windows:
@Test
public void filestatDescriptor2() throws Throwable {
File f = File.createTempFile("stat", null);
try {
int fd = posix.open(f.getAbsolutePath(), 0, 438);
FileStat stat = posix.allocateStat();
int result = posix.fstat(fd, stat);
assertEquals(0, result);
assertEquals(0, stat.st_size());
} finally {
f.delete();
}
}
With the following exception:
java.lang.IllegalArgumentException: instance of class jnr.posix.WindowsRawFileStat is not a struct
at jnr.posix.BaseNativePOSIX$2.toNative(BaseNativePOSIX.java:746)
at jnr.posix.BaseNativePOSIX$2.toNative(BaseNativePOSIX.java:1)
at jnr.posix.WindowsLibC$jnr$ffi$0.fstat(Unknown Source)
at jnr.posix.BaseNativePOSIX.fstat(BaseNativePOSIX.java:136)
at jnr.posix.CheckedPOSIX.fstat(CheckedPOSIX.java:129)
at jnr.posix.LazyPOSIX.fstat(LazyPOSIX.java:126)
[..]
The call to jnr.posix.POSIX.fstat(int, FileStat)
currently isn't covered in jnr.posix.FileStatTest
, which is why this (likely) bug may have gone unnoticed yet.
Please add a readlink(3) method: http://linux.die.net/man/3/readlink
It is implemented, of course, but there is a problem that raises an exception, along these lines, when using the native implementation. I can reproduce it; I know how it arises; but I don't understand jnr-posix well enough to offer a patch. This problem is relevant for us on the Jython project (see http://bugs.jython.org/issue2145)
The root of the problem (and it may be a jnr-ffi issue after all) is that during the construction of the interface for LibC, round about here:
https://github.com/jnr/jnr-ffi/blob/master/src/main/java/jnr/ffi/LibraryLoader.java#L262
the functionMapper supplied by jnr-posix gets dropped, and so methods in the constructed interface only have their own native names, not the mapped names carefully supplied by jnr-posix.
When it fails, the test runs like this:
>java -cp bin;lib\* StatTest
Exception in thread "main" java.lang.IllegalStateException: stat is not implemented in jnr-posix
at jnr.posix.util.DefaultPOSIXHandler.unimplementedError(DefaultPOSIXHandler.java:28)
at jnr.posix.CheckedPOSIX.unimplementedNull(CheckedPOSIX.java:22)
at jnr.posix.CheckedPOSIX.stat(CheckedPOSIX.java:265)
at jnr.posix.LazyPOSIX.stat(LazyPOSIX.java:267)
at StatTest.main(StatTest.java:25)
The libraries on my classpath are:
>dir/b lib
asm-4.0.jar
jffi-1.2.7-native.jar
jffi-1.2.7.jar
jnr-constants-0.8.5.jar
jnr-ffi-1.0.10.jar
jnr-ffi-1.0.10.zip
jnr-posix-3.0.1-sources.jar
jnr-posix-3.0.1.jar
I've a couple of source zip/jars in there to support debugging. The Java version is:
>java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
If I delete the native jar (contains the DLLs) jnr-posix reverts to a Java implementation and it works:
>del lib\jffi-1.2.7-native.jar
>java -cp bin;lib\* StatTest
jnr.posix.JavaFileStat@75f9140f
File creation time: Sun May 18 09:17:48 BST 2014
These snippets are output from this program:
import java.io.File;
import java.io.IOException;
import jnr.posix.FileStat;
import jnr.posix.POSIX;
import jnr.posix.POSIXFactory;
/**
* Investigate possible issue with availability of POSIX method stat on Windows in jnr.posix 3.0.1.
*/
public class StatTest {
public static void main(String[] args) {
try {
// Ensure test file exists
File file = new File("test.tmp");
if (!file.exists()) {
file.createNewFile();
}
// Initialise POSIX provision
POSIX posix = POSIXFactory.getPOSIX();
// Test the method
FileStat fs = posix.stat(file.getName());
System.out.println(fs);
System.out.println("File creation time: " + new java.util.Date(fs.ctime()*1000L));
} catch (IOException e) {
System.err.println(e.getStackTrace());
}
}
}
sizeof(posix_spawnattr_t)
to be <= 128.
But on my system (Linux localhost.localdomain 4.9.4-100.fc24.x86_64 #1 SMP Tue Jan 17 19:08:56 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
):
#include <stdio.h>
#include <spawn.h>
int main() {
printf("posix_spawn_file_actions_t: %ld\n", sizeof(posix_spawn_file_actions_t));
printf("posix_spawnattr_t: %ld\n", sizeof(posix_spawnattr_t));
return 0;
}
prints:
posix_spawn_file_actions_t: 80
posix_spawnattr_t: 336
How should this be dealt with?
Is there a way to get the value of sizeof(posix_spawnattr_t)
per platform?
Please add the truncate method: http://linux.die.net/man/2/truncate
The BaseNativePOSIX utimes
/futimes
function uses long[]
types for the atimeval
and mtimeval
arguments (see
struct timeval
contains a time_t
member for the seconds and a long
member for the microseconds. Unfortunately, on OpenBSD/i386, the time_t
type uses long long
(64-bit), not long
(32-bit). So you can't store the values in a long[]
type.
Because it uses an incorrect size for the type, in general usage, the utimes
/futimes
function results in the modification time of the file being set to 0.
I think the API of utimes
/futimes
needs to be changed so that it takes a OS-dependent struct for the atimeval
and mtimeval
arguments, instead of using long[]
.
What is going on here?
/c/opt/jruby jruby-1_7 524% jruby -Xnative.enabled=true -d -e "File.stat(%q{core/foo/bar})"
io/console not supported; tty will not be manipulated
Errno::ESRCH: No such process - core/foo/bar
stat at org/jruby/RubyFile.java:885
<top> at -e:1
/c/opt/jruby jruby-1_7 525% jruby -Xnative.enabled=true -d -e "File.stat(%q{core/foo})"
io/console not supported; tty will not be manipulated
Errno::ENOENT: No such file or directory - core/foo
stat at org/jruby/RubyFile.java:885
<top> at -e:1
It turns out we had pom.xml configured to ignore failures, and some have crept into Linux builds: https://travis-ci.org/jnr/jnr-posix/builds/32876224
Reference: http://pubs.opengroup.org/onlinepubs/009695399/functions/dup.html
This is used in io.rb
Please add getrlimit
and setrlimit
http://pubs.opengroup.org/onlinepubs/009695399/functions/getrlimit.html
The JVM crashes on threaded use of Etc::getgrnam This happens on all versions of java 1.7 I tested with, e.g. the latest Oracle java 1.7 update 75. Tested with both jruby 1.7.8 and 1.7.19 on CentOS 6.6 A sample test program that will demonstrate the problem is:
require 'etc'
i = 1
while true do
puts "Iteration #{i}"
i = i + 1
threads = []
10.times do
threads << Thread.new do
Etc::getgrnam('users')
end
end
threads.each do |thr|
thr.join
end
end
This always crashes for me, usually it takes less than 200 iterations or so:
[gavin@localhost tmp]# env JAVA_HOME=/opt/java PATH=$JAVA_HOME/bin:$PATH jruby crash.rb
Iteration 1
Iteration 2
Iteration 3
Iteration 4
Iteration 5
Iteration 6
Iteration 7
Iteration 8
Iteration 9
Iteration 10
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f585dc4157f, pid=23613, tid=140017224009472
#
# JRE version: Java(TM) SE Runtime Environment (7.0_76-b13) (build 1.7.0_76-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.76-b04 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C [libc.so.6+0x13357f] __strlen_sse42+0xf
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /tmp/hs_err_pid23613.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Aborted
chdir is not implemented in windows.
but jruby is using.
https://github.com/jruby/jruby/blob/1.7.12/core/src/main/java/org/jruby/RubyKernel.java#L1820
package com.github.yousuketto.sample;
import jnr.posix.POSIX;
import jnr.posix.POSIXFactory;
public class ChdirExample {
public static void main(String[] args) {
POSIX posix = POSIXFactory.getPOSIX();
posix.chdir("hoge");
}
}
Exception in thread "main" java.lang.IllegalStateException: chdir is not implemented in jnr-posix
at jnr.posix.util.DefaultPOSIXHandler.unimplementedError(DefaultPOSIXHandler.java:28)
at jnr.posix.CheckedPOSIX.unimplementedInt(CheckedPOSIX.java:27)
at jnr.posix.CheckedPOSIX.chdir(CheckedPOSIX.java:49)
at jnr.posix.LazyPOSIX.chdir(LazyPOSIX.java:51)
at com.github.yousuketto.sample.ChdirExample.main(ChdirExample.java:10)
Both used by process.rb
(from @mkristian) before releasing jruby 1.7.5 we need a release of com.github.jnr:jnr-posix:jar:3.0.1
This is a duplicate of jruby/jruby#1012.
Trying to create a Process but am getting this error:
Exception in thread "thread" java.lang.IllegalStateException: pipe is not implemented in jnr-posix
at jnr.posix.util.DefaultPOSIXHandler.unimplementedError(DefaultPOSIXHandler.java:28)
at jnr.posix.JavaPOSIX.pipe(JavaPOSIX.java:636) at jnr.posix.LazyPOSIX.pipe(LazyPOSIX.java:500) at jnr.process.ProcessBuilder.start(ProcessBuilder.java:65)
ProcessBuilder pB = new ProcessBuilder().command("command here");
Process p = pB.start();
Mac OSX 10.11.6, Java 1.8.0_101
What causes this?
AFAICT the underlying read(), write(), pread(), and pwrite() are supposed to be able to accept size_t as number of bytes argument and return ssize_t for number of bytes written. But the POSIX class is restricting the values to 32 bit Java int. Also the offset arguments for pread() and pread() are of type off_t which is often 64 bit.
@chrisseaton @nirvdrum
Specifically, on platforms where gid_t
is 4 bytes, declaring getgroups as
int getgroups(int size, long[] groups);
https://github.com/jnr/jnr-posix/pull/82/files#diff-692c666e6bb39b5fe2f2f13854994febR168
is incorrect (it will return 2 groups per long and read out of bounds).
Probably some kind of gid_t
type should be used instead.
I couldn't find any documentation on usage, am I missing something?
I have a problem with jnr-posix-3.0.29 running on CentOS 7 using JDK 1.8. I'm trying to spawn processes using posix_spawnp, with stdout redirected to a file. Unfortunately, it looks like the filename I provide to SpawnFileAction.open is not honored, and the output is written to a randomly named file (usually with unprintable characters) in the current directory.
I have created a minimum working example that shows the problem. One directory has working C code that does what I want, the other directory has Java JNR code that exhibits the problem.
Using strace
, the C code file open looks something like this:
open("/tmp/foo-log", O_WRONLY|O_CREAT|O_TRUNC, 0644) = 3
while the JNR code produces strace output like this:
open("\300\216mu;\177", O_WRONLY|O_CREAT|O_TRUNC, 0644) = 12
where that first parameter should be /tmp/bar-log
. Could the filename be uninitialized memory?
Any thoughts on what the problem might be? I have single-stepped the code in Eclipse, and on the Java side it looked reasonable. On the posix_spawn_file_actions_addopen
man page I saw this tidbit: "The string described by path shall be copied by the posix_spawn_file_actions_addopen() function." not sure if that is relevant.
P.S. To clean up the files with unprintable names ls -lb
and rm $'filename'
are helpful :)
Do I overlook something or are setrlimit() and getrlimit() missing?
I'm here due to jruby/jruby#3244.
It looks like jnr-posix fails to load native POSIX on Raspbian (Raspberry Pi OS), and I'm not exactly sure why. Unfortunately, I need process killing functionality, which the JavaPOSIX fallback doesn't support.
Are there any steps we can take to make it supported? Happy to lend a hand if necessary.
Recently, OpenBSD moved from a 32-bit time_t to a 64-bit time_t, with some other changes as well:
Commit message: http://marc.info/?l=openbsd-cvs&m=137637321205010&w=2)
Changes to sys/_types.h: http://www.openbsd.org/cgi-bin/cvsweb/src/sys/sys/_types.h.diff?r1=1.5;r2=1.6
Changes to sys/stat.h: http://www.openbsd.org/cgi-bin/cvsweb/src/sys/sys/stat.h.diff?r1=1.22;r2=1.23
After this change in OpenBSD, JRuby will not fully install, as it fails when trying to install rake (http://pbot.rmdir.de/JDuDNBBfrpVBb_EQKuJSVA).
I believe I have a diff that brings the jnr-posix structure layouts in-line with OpenBSD-current, but I haven't tested it yet (http://pastie.org/pastes/8260655/text). However, a straight patch approach may be unacceptable as it would mean that jnr-posix would then not work correctly on older OpenBSD versions. Would that be a problem?
If it would be a problem, do you have a recommendation on the best way to fix this such that both older and newer OpenBSD would run correctly? Should we have code for both OpenBSD layouts, and pick which one to use at runtime? If so, should such a check go in POSIXFactory.java, and do you have an idea about how to check (such as using the operating system version)?
First of all I'm a Linux/Java/GIT newbie. I just pulled your jnr-posix package down to my Fedora 21 desktop and then ran 'mvn package'. That had a test failure and I guess a single test failure also causes a failure in generating the jar. I did some searching and found:
http://pkgs.fedoraproject.org/cgit/jnr-posix.git/commit/?h=f22
Not quite sure what that link is. I guess you're doing some work with the Fedora project? At any rate I saw the comment about changing 'nogroup' to 'root' in GroupTest.java so I made the change on the source I pulled down. That fixed the build. I guess you should fix GroupTest.java on github.
Thanks,
Nick
Hello.
I have the following program that attempts to call execv()
:
import jnr.ffi.LibraryLoader;
import jnr.posix.POSIX;
import jnr.posix.POSIXFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public final class MainExecv
{
private static final Logger LOG;
static {
LOG = LoggerFactory.getLogger(MainExecv.class);
}
private MainExecv()
{
}
public interface StrErrorType
{
String strerror(int e);
}
public static void main(final String[] args)
{
final POSIX posix = POSIXFactory.getNativePOSIX();
MainExecv.LOG.debug("creating libc loader");
final LibraryLoader<StrErrorType> c_loader =
LibraryLoader.create(StrErrorType.class);
c_loader.failImmediately();
final StrErrorType strerror = c_loader.load("c");
final int r = posix.execv("/bin/sh", new String[]{"/bin/sh"});
if (r == -1) {
LOG.error("execv: {}", strerror.strerror(posix.errno()));
}
}
}
Running the program yields:
21:39:40.482 [main] DEBUG com.io7m.ja.MainExecv - creating libc loader
21:39:40.566 [main] ERROR com.io7m.ja.MainExecv - execv: Bad address
Tracing the program with strace
shows:
[pid 26245] execve("/bin/sh", [0x68732f6e69622f, 0x7f1900000000, "/bin/sh"], [/* 52 vars */] <unfinished ...>
It looks as though the native code is not being passed the array of strings correctly. I'm not sure if I'm misusing the interfaces, or if the strace
output is just misleading. Note that
0x68732f6e69622f == 68 72 2f 6e 69 62 2f == 'h' 's' '/' 'n' 'i' 'b' /
...
Platform is Linux copperhead 4.8.4-1-ARCH #1 SMP PREEMPT Sat Oct 22 18:26:57 CEST 2016 x86_64 GNU/Linux
, jnr-posix 3.0.31
.
Hi,
I am trying to catch and handle SIGSEGV by using jnr-posix to get thread dumps and some other informations before crash. I am using the following code sample:
POSIX posix = POSIXFactory.getPOSIX();
posix.signal(Signal.SIGSEGV, new SignalHandler() {
@Override
public void handle(int i) {
System.out.println("handle: " + i);
}
});
Unsafe unsafe = ...
unsafe.putLong(0l, 0l);
But when I run the code, it hangs while executing unsafe.putLong(0l, 0l);
.
When I have debugged, as far as I see, signal is handled, jnr.ffi.provider.jffi.NativeClosureFactory$ClosureReference
is created with correct referent which contains my handler as wrapped but then closureReference.get()
always returns null inside NativeClosureProxy::getCallable()
so seems that there is an infinite loop because of this.
My operating system is MacOSX and using JDK 1.8.0_60.
jnr-posix version is 3.0.23.
Thanks in advance.
Regards.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.