Coder Social home page Coder Social logo

jnr-posix's People

Contributors

ahorek avatar akiellor avatar bensummers avatar bobmcwhirter avatar brianm avatar chrisseaton avatar enebo avatar eregon avatar etehtsea avatar freaky avatar headius avatar io7m avatar jeremyevans avatar jestan avatar jlleitschuh avatar lance avatar mkristian avatar mprins avatar nicksieger avatar nirvdrum avatar olabini avatar pjenvey avatar qmx avatar rm5248 avatar robbavey avatar stephenh avatar taywee avatar tobix avatar vp-of-awesome avatar vvs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jnr-posix's Issues

dev_major and dev_minor on Windows

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.

No gettimeofday on Windows

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

SEGV due to posix_spawnattr_init called on a too small allocation

Pointer nativeSpawnAttributes = Memory.allocateDirect(getRuntime(), 128);
expects 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?

FindFirstFileW on 32 bit JVM crashes

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.

Wrong statVersion passed to __fxstat64

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?

loading native POSIX failed

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)

Windows can have wait implementation

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.

pipe is not implemented in jnr-posix

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?

JVM crash with threaded use of Etc::getgrnam

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

posix_spawnp() should return int, not long

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

BaseNativePOSIX utimes/futimes API is not compatible with OpenBSD/i386

The BaseNativePOSIX utimes/futimes function uses long[] types for the atimeval and mtimeval arguments (see

public int utimes(String path, long[] atimeval, long[] mtimeval) {
). On OpenBSD, 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[].

How to create/use pipe?

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?

chdir is not implemented in windows

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)

Support for Raspberry Pi?

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.

OpenBSD structure layout wrong after recent OpenBSD changes

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)?

maven package command fails because GroupTest.java fails

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

Seemingly (on Windows 7) stat is not implemented in jnr-posix

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());
        }
    }

}

Ability to disable fallback to JavaPOSIX

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.

gethostname() not implemented

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.

Java 8 breakage

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.

Documentation? :)

I couldn't find any documentation on usage, am I missing something?

paths past the first ENOENT on windows using stat will return ESRCH

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

SpawnFileAction.open opens wrong filename

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 :)

JavaSecuredFile has a Google copyright

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.

read/write methods restrict number of bytes to 32 bit

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.

Issue with execv?

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.

Hang while handling SIGSEGV signal

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.

jnr.posix.POSIX.fstat(int, FileStat) fails on Windows

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.

Add support for musl libc

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.