Fork me on GitHub

Selftest

Since junixsocket supports many environments that can run Java and Unix domain sockets, it is important to verify whether junixsocket works as expected on your target environment.

junixsocket-selftest provides such a self-contained test suite, in the form of a jarfile that contains all necessary dependencies. You can run the selftest as follows:

java -jar junixsocket-selftest-X.Y.Z-jar-with-dependencies.jar

(replace X.Y.Z with your junixsocket version)

The selftest runs a series of unit tests, also including some information from your target system (such as system properties, OS version, etc.) and then summarizes the result of the selftest in the form of “PASSED”, “FAIL”, “PASSED WITH ISSUES” or “INCONCLUSIVE”.

The selftest is also able to detect common errors, such as permission errors, and add corresponding notes in plain English as part of the selftest output.

If you encounter any selftest failures, please file a bug report with the output of the selftest.

Controlling what selftest does

There are several configuration options when dealing with selftest problems, usually via setting some System properties when launching junixsocket-selftest.

For now, if you're interested in these properties, please consult the Selftest source code. In general, it is not expected that you have to set any of those.

Example output

Running the selftest should output something like this below. Please note that the output format is not guaranteed to be stable, however it can be assumed that a line with

Selftest PASSED

indicates success:

This program determines whether junixsocket is supported on the current platform.
The final line should say whether the selftest passed or failed.

If the selftest failed, please visit https://github.com/kohlschutter/junixsocket/issues
and file a new bug report with the output below.

junixsocket selftest version 2.5.1-SNAPSHOT

System properties:

file.encoding: UTF-8
file.separator: /
java.class.path: junixsocket-selftest/target/junixsocket-selftest-2.5.1-SNAPSHOT-jar-with-dependencies.jar
java.class.version: 62.0
java.home: /usr/lib/jvm/java-18-openjdk
java.io.tmpdir: /tmp
java.library.path: /usr/lib/jvm/java-18-openjdk/lib/server:/usr/lib/jvm/java-18-openjdk/lib:/usr/lib/jvm/java-18-openjdk/../lib:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
java.runtime.name: OpenJDK Runtime Environment
java.runtime.version: 18.0.1+10-alpine-r1
java.specification.name: Java Platform API Specification
java.specification.vendor: Oracle Corporation
java.specification.version: 18
java.vendor: Alpine
java.vendor.url: https://alpinelinux.org/
java.vendor.url.bug: https://gitlab.alpinelinux.org/alpine/aports/issues
java.version: 18.0.1
java.version.date: 2022-04-19
java.vm.compressedOopsMode: Zero based
java.vm.info: mixed mode, sharing
java.vm.name: OpenJDK 64-Bit Server VM
java.vm.specification.name: Java Virtual Machine Specification
java.vm.specification.vendor: Oracle Corporation
java.vm.specification.version: 18
java.vm.vendor: Alpine
java.vm.version: 18.0.1+10-alpine-r1
jdk.debug: release
line.separator: \n
native.encoding: UTF-8
os.arch: amd64
os.name: Linux
os.version: 5.15.32-0-lts
path.separator: :
sun.arch.data.model: 64
sun.boot.library.path: /usr/lib/jvm/java-18-openjdk/lib
sun.cpu.endian: little
sun.io.unicode.encoding: UnicodeLittle
sun.java.command: junixsocket-selftest/target/junixsocket-selftest-2.5.1-SNAPSHOT-jar-with-dependencies.jar
sun.java.launcher: SUN_STANDARD
sun.jnu.encoding: UTF-8
sun.management.compiler: HotSpot 64-Bit Tiered Compilers
sun.stderr.encoding: UTF-8
user.country: US
user.dir: /home/jux/junixsocket
user.home: /home/jux
user.language: en
user.name: jux

BEGIN contents of file: /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.16.0
PRETTY_NAME="Alpine Linux v3.16"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
=END= contents of file: /etc/os-release

AFSocket.isSupported: true

AFUNIXSocket.isSupported: true

Testing "junixsocket-common"... 
Testing "junixsocket-common"... AFTIPCSocketAddressTest.testParseFail()... 
Testing "junixsocket-common"... AFTIPCSocketAddressTest.testSchemesAvailable()... 
Testing "junixsocket-common"... AFTIPCSocketAddressTest.testGeneric()... 
Testing "junixsocket-common"... AFTIPCSocketAddressTest.testSocatString()... 
Testing "junixsocket-common"... AFTIPCSocketAddressTest.testSocketURI()... 
Testing "junixsocket-common"... AFTIPCSocketAddressTest.testServiceRangeURI()... 
Testing "junixsocket-common"... AFTIPCSocketAddressTest.testServiceURI()... 
Testing "junixsocket-common"... AFUNIXSocketAddressTest.testSchemesAvailable()... 
Testing "junixsocket-common"... AFUNIXSocketAddressTest.testSocatString()... 
Testing "junixsocket-common"... AFUNIXSocketAddressTest.testURITemplateWithPortNumber()... 
Testing "junixsocket-common"... AFUNIXSocketAddressTest.testURITemplate()... 
Testing "junixsocket-common"... AFUNIXSocketAddressTest.testHttpUnix()... 
Testing "junixsocket-common"... AFUNIXSocketAddressTest.testUnixScheme()... 
Testing "junixsocket-common"... AFUNIXSocketAddressTest.testFileScheme()... 
Testing "junixsocket-common"... AFUNIXSocketAddressTest.testParseURIandBack()... 
Testing "junixsocket-common"... AcceptTimeoutTest.testCatchTimeout()... 
Testing "junixsocket-common"... AcceptTimeoutTest.testTimeoutAfterDelay()... 
Testing "junixsocket-common"... AcceptTimeoutTest.testAcceptWithoutBindToService()... 
Testing "junixsocket-common"... AvailableTest.testAvailableAtClient()... 
Testing "junixsocket-common"... AvailableTest.testAvailableAtServer()... 
Testing "junixsocket-common"... BufferOverflowTest.writeOverflow()... 
Testing "junixsocket-common"... BufferOverflowTest.readUpTo()... 
Testing "junixsocket-common"... BufferOverflowTest.readOutOfBounds()... 
Testing "junixsocket-common"... CancelAcceptTest.issue6test1()... 
Testing "junixsocket-common"... DatagramSocketTest.testBindConnect()... 
Testing "junixsocket-common"... DatagramSocketTest.testPeekTimeout()... 
Testing "junixsocket-common"... DatagramSocketTest.testReadTimeout()... 
Testing "junixsocket-common"... EndOfFileTest.clientWriteToSocketClosedByClient()... 
Testing "junixsocket-common"... EndOfFileTest.clientWriteToSocketClosedByServer()... 
Testing "junixsocket-common"... EndOfFileTest.bidirectionalSanity()... 
Testing "junixsocket-common"... EndOfFileTest.serverWriteToSocketClosedByClient()... 
Testing "junixsocket-common"... EndOfFileTest.serverWriteToSocketClosedByServer()... 
Testing "junixsocket-common"... EndOfFileTest.clientReadEof()... 
Testing "junixsocket-common"... EndOfFileTest.serverReadEof()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testInvalidFileDescriptor()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testPipe()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testAvailableTypes()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testStdout()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testRandomAccessFile()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testUnconnectedServerAsSocket()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testSocketPairNative()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testDatagramFileChannel()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testSocketPair()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testDatagramSocket()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testSocketPorts()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testDatagramPorts()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testForkedVMRedirectStdin()... 
Testing "junixsocket-common"... FileDescriptorCastTest.testServer()... 
Testing "junixsocket-common"... FileDescriptorsTest.testNullFileDescriptorArray()... 
Testing "junixsocket-common"... FileDescriptorsTest.testNoAncillaryReceiveBuffer()... 
Testing "junixsocket-common"... FileDescriptorsTest.testSendRecvFileDescriptors()... 
Testing "junixsocket-common"... FileDescriptorsTest.testBadFileDescriptor()... 
Testing "junixsocket-common"... FileDescriptorsTest.testDatagramSocket()... 
Testing "junixsocket-common"... FileDescriptorsTest.testAncillaryReceiveBufferTooSmall()... 
Testing "junixsocket-common"... FileDescriptorsTest.testFileInputStreamPartiallyConsumed()... 
Testing "junixsocket-common"... FileDescriptorsTest.testEmptyFileDescriptorArray()... 
Testing "junixsocket-common"... FileDescriptorsTest.testFileInputStream()... 
Testing "junixsocket-common"... InetAddressTest.testFromToBytes()... 
Testing "junixsocket-common"... InetAddressTest.testHostnameString()... 
Testing "junixsocket-common"... InetAddressTest.testIsLoopbackAddress()... 
Testing "junixsocket-common"... InetAddressTest.testHostnameStringEndsWithJunixSocket()... 
Testing "junixsocket-common"... PeerCredentialsTest.testSocketsSameProcess()... 
Testing "junixsocket-common"... PeerCredentialsTest.testDatagramSocket()... 
Supported credentials:   pid uid gid additional_gids
Unsupported credentials: uuid
Testing "junixsocket-common"... PipeTest.testPipe()... 
Testing "junixsocket-common"... PipeTest.testPipeRecvHang()... 
Testing "junixsocket-common"... ReadWriteTest.testReceiveWithByteArraySendByteForByte()... 
Testing "junixsocket-common"... ReadWriteTest.testReceiveWithByteArraySendWithByteArray()... 
Testing "junixsocket-common"... ReadWriteTest.testReceiveDataByteForByteSendByteForByte()... 
Testing "junixsocket-common"... ReadWriteTest.testReceiveDataByteForByteSendWithByteArray()... 
Testing "junixsocket-common"... SelectorTest.testNonBlockingAccept()... 
Testing "junixsocket-common"... SelectorTest.testClosedSelectorSelect()... 
Testing "junixsocket-common"... SelectorTest.testClosedSelectorWakeup()... 
Testing "junixsocket-common"... SelectorTest.testCancelSelect()... 
Testing "junixsocket-common"... SelectorTest.testConnectionCloseImmediateClientDisconnect()... 
Testing "junixsocket-common"... SelectorTest.testConnectionCloseImmediateClientDisconnectKeepLooping()... 
Testing "junixsocket-common"... SelectorTest.testConnectionCloseEventualClientDisconnectKeepLooping()... 
Testing "junixsocket-common"... SelectorTest.testConnectionCloseEventualClientDisconnect()... 
Testing "junixsocket-common"... ServerSocketCloseTest.testUnblockAcceptsWithSoTimeout()... 
Testing "junixsocket-common"... ServerSocketCloseTest.testUnblockAcceptsWithoutSoTimeout()... 
Testing "junixsocket-common"... ServerSocketTest.testUnboundServerSocket()... 
Testing "junixsocket-common"... ServerSocketTest.testBindBadArguments()... 
Testing "junixsocket-common"... ServerSocketTest.testCloseable()... 
Testing "junixsocket-common"... ServerSocketTest.testSupported()... 
Testing "junixsocket-common"... SocketAddressTest.testInetAddress()... 
Testing "junixsocket-common"... SocketAddressTest.testPath()... 
Testing "junixsocket-common"... SocketAddressTest.testPort()... 
Testing "junixsocket-common"... SocketAddressTest.testEmptyAddress()... 
Testing "junixsocket-common"... SocketAddressTest.testByteConstructor()... 
Testing "junixsocket-common"... SocketAddressTest.testAbstractNamespace()... 
Testing "junixsocket-common"... SocketChannelTest.testNonBlockingConnect()... 
Testing "junixsocket-common"... SocketFactoryTest.testURISchemeCeateSocketWithInvalidHostname()... 
Testing "junixsocket-common"... SocketFactoryTest.testURISchemeCeateSocketWithIllegalArguments()... 
Testing "junixsocket-common"... SocketFactoryTest.testURISchemeCeateSocketThenConnect()... 
Testing "junixsocket-common"... SocketFactoryTest.testURISchemeCeateSocketWithHostnameValidCases()... 
Testing "junixsocket-common"... SocketFactoryTest.testSystemProperty()... 
Testing "junixsocket-common"... SocketFactoryTest.testFactoryArg()... 
Testing "junixsocket-common"... SocketPairTest.testDatagramPair()... 
Testing "junixsocket-common"... SocketPairTest.testSocketPair()... 
Testing "junixsocket-common"... SocketTest.testConnectBadArguments()... 
Testing "junixsocket-common"... SocketTest.testBindBadArguments()... 
Testing "junixsocket-common"... SocketTest.testCloseable()... 
Testing "junixsocket-common"... SocketTest.testUnconnectedSocket()... 
Testing "junixsocket-common"... SocketTest.testMain()... 
org.newsclub.net.unix.AFUNIXSocket.isSupported(): true
CAPABILITY_PEER_CREDENTIALS: true
CAPABILITY_ANCILLARY_MESSAGES: true
CAPABILITY_FILE_DESCRIPTORS: true
CAPABILITY_ABSTRACT_NAMESPACE: true
CAPABILITY_UNIX_DATAGRAMS: true
CAPABILITY_NATIVE_SOCKETPAIR: true
CAPABILITY_FD_AS_REDIRECT: true
CAPABILITY_TIPC: true
CAPABILITY_UNIX_DOMAIN: true
Testing "junixsocket-common"... SocketTest.testLoadedLibrary()... 
Testing "junixsocket-common"... SocketTest.testSupports()... 
Testing "junixsocket-common"... SocketTest.testVersion()... 
Testing "junixsocket-common"... SocketTest.testReceivedFileDescriptorsUnconnected()... 
Testing "junixsocket-common"... SocketTest.testSupported()... 
Testing "junixsocket-common"... SoTimeoutTest.issue14Fail()... 
Testing "junixsocket-common"... SoTimeoutTest.issue14Pass()... 
Testing "junixsocket-common"... SoTimeoutTest.testSocketTimeoutExceptionRead()... 
Testing "junixsocket-common"... SoTimeoutTest.testSocketTimeoutExceptionWrite()... 
Testing "junixsocket-common"... StandardSocketOptionsTest.testUnconnectedServerSocketOptions()... 
Testing "junixsocket-common"... StandardSocketOptionsTest.testSocketOptions()... 
Testing "junixsocket-common"... TcpNoDelayTest.testDefaultImpl()... 
Testing "junixsocket-common"... TcpNoDelayTest.testStrictImpl()... 
Testing "junixsocket-common"... ThroughputTest.testDatagramChannel()... 
Testing "junixsocket-common"... ThroughputTest.testDatagramChannelDirect()... 
Testing "junixsocket-common"... ThroughputTest.testDatagramChannelNonBlocking()... 
Testing "junixsocket-common"... ThroughputTest.testDatagramChannelNonBlockingDirect()... 
Testing "junixsocket-common"... ThroughputTest.testDatagramPacket()... 
Testing "junixsocket-common"... ThroughputTest.testSocket()... 
Testing "junixsocket-common"... ThroughputTest.testSocketChannel()... 
Testing "junixsocket-common"... ThroughputTest.testSocketChannelDirectBuffer()... 
Testing "junixsocket-common"... done
.
'-- JUnit Jupiter [OK]
  +-- AFTIPCSocketAddressTest [OK]
  | +-- testParseFail() [OK]
  | +-- testSchemesAvailable() [OK]
  | +-- testGeneric() [OK]
  | +-- testSocatString() [OK]
  | +-- testSocketURI() [OK]
  | +-- testServiceRangeURI() [OK]
  | '-- testServiceURI() [OK]
  +-- AFUNIXSocketAddressTest [OK]
  | +-- testSchemesAvailable() [OK]
  | +-- testSocatString() [OK]
  | +-- testURITemplateWithPortNumber() [OK]
  | +-- testURITemplate() [OK]
  | +-- testHttpUnix() [OK]
  | +-- testUnixScheme() [OK]
  | +-- testFileScheme() [OK]
  | '-- testParseURIandBack() [OK]
  +-- AcceptTimeoutTest [OK]
  | +-- testCatchTimeout() [OK]
  | +-- testTimeoutAfterDelay() [OK]
  | '-- testAcceptWithoutBindToService() [OK]
  +-- AvailableTest [OK]
  | +-- testAvailableAtClient() [OK]
  | '-- testAvailableAtServer() [OK]
  +-- BufferOverflowTest [OK]
  | +-- writeOverflow() [OK]
  | +-- readUpTo() [OK]
  | '-- readOutOfBounds() [OK]
  +-- CancelAcceptTest [OK]
  | '-- issue6test1() [OK]
  +-- DatagramSocketTest [OK]
  | +-- testBindConnect() [OK]
  | +-- testPeekTimeout() [OK]
  | '-- testReadTimeout() [OK]
  +-- EndOfFileTest [OK]
  | +-- clientWriteToSocketClosedByClient() [OK]
  | +-- clientWriteToSocketClosedByServer() [OK]
  | +-- bidirectionalSanity() [OK]
  | +-- serverWriteToSocketClosedByClient() [OK]
  | +-- serverWriteToSocketClosedByServer() [OK]
  | +-- clientReadEof() [OK]
  | '-- serverReadEof() [OK]
  +-- FileDescriptorCastTest [OK]
  | +-- testInvalidFileDescriptor() [OK]
  | +-- testPipe() [OK]
  | +-- testAvailableTypes() [OK]
  | +-- testStdout() [OK]
  | '-- testRandomAccessFile() [OK]
  +-- FileDescriptorCastTest [OK]
  | +-- testUnconnectedServerAsSocket() [OK]
  | +-- testSocketPairNative() [OK]
  | +-- testDatagramFileChannel() [OK]
  | +-- testSocketPair() [OK]
  | +-- testDatagramSocket() [OK]
  | +-- testSocketPorts() [OK]
  | +-- testDatagramPorts() [OK]
  | +-- testForkedVMRedirectStdin() [OK]
  | '-- testServer() [OK]
  +-- FileDescriptorsTest [OK]
  | +-- testNullFileDescriptorArray() [OK]
  | +-- testNoAncillaryReceiveBuffer() [OK]
  | +-- testSendRecvFileDescriptors() [OK]
  | +-- testBadFileDescriptor() [OK]
  | +-- testDatagramSocket() [OK]
  | +-- testAncillaryReceiveBufferTooSmall() [OK]
  | +-- testFileInputStreamPartiallyConsumed() [OK]
  | +-- testEmptyFileDescriptorArray() [OK]
  | '-- testFileInputStream() [OK]
  +-- InetAddressTest [OK]
  | +-- testFromToBytes() [OK]
  | +-- testHostnameString() [OK]
  | +-- testIsLoopbackAddress() [OK]
  | '-- testHostnameStringEndsWithJunixSocket() [OK]
  +-- PeerCredentialsTest [OK]
  | +-- testSocketsSameProcess() [OK]
  | '-- testDatagramSocket() [OK]
  +-- PipeTest [OK]
  | +-- testPipe() [OK]
  | '-- testPipeRecvHang() [OK]
  +-- ReadWriteTest [OK]
  | +-- testReceiveWithByteArraySendByteForByte() [OK]
  | +-- testReceiveWithByteArraySendWithByteArray() [OK]
  | +-- testReceiveDataByteForByteSendByteForByte() [OK]
  | '-- testReceiveDataByteForByteSendWithByteArray() [OK]
  +-- SelectorTest [OK]
  | +-- testNonBlockingAccept() [OK]
  | +-- testClosedSelectorSelect() [OK]
  | +-- testClosedSelectorWakeup() [OK]
  | +-- testCancelSelect() [OK]
  | +-- testConnectionCloseImmediateClientDisconnect() [OK]
  | +-- testConnectionCloseImmediateClientDisconnectKeepLooping() [OK]
  | +-- testConnectionCloseEventualClientDisconnectKeepLooping() [OK]
  | '-- testConnectionCloseEventualClientDisconnect() [OK]
  +-- ServerSocketCloseTest [OK]
  | +-- testUnblockAcceptsWithSoTimeout() [OK]
  | '-- testUnblockAcceptsWithoutSoTimeout() [OK]
  +-- ServerSocketTest [OK]
  | +-- testUnboundServerSocket() [OK]
  | +-- testBindBadArguments() [OK]
  | +-- testCloseable() [OK]
  | '-- testSupported() [OK]
  +-- SocketAddressTest [OK]
  | +-- testInetAddress() [OK]
  | +-- testPath() [OK]
  | +-- testPort() [OK]
  | +-- testEmptyAddress() [OK]
  | +-- testByteConstructor() [OK]
  | '-- testAbstractNamespace() [OK]
  +-- SocketChannelTest [OK]
  | '-- testNonBlockingConnect() [OK]
  +-- SocketFactoryTest [OK]
  | +-- testURISchemeCeateSocketWithInvalidHostname() [OK]
  | +-- testURISchemeCeateSocketWithIllegalArguments() [OK]
  | +-- testURISchemeCeateSocketThenConnect() [OK]
  | +-- testURISchemeCeateSocketWithHostnameValidCases() [OK]
  | +-- testSystemProperty() [OK]
  | '-- testFactoryArg() [OK]
  +-- SocketPairTest [OK]
  | +-- testDatagramPair() [OK]
  | '-- testSocketPair() [OK]
  +-- SocketTest [OK]
  | +-- testConnectBadArguments() [OK]
  | +-- testBindBadArguments() [OK]
  | +-- testCloseable() [OK]
  | +-- testUnconnectedSocket() [OK]
  | +-- testMain() [OK]
  | +-- testLoadedLibrary() [OK]
  | +-- testSupports() [OK]
  | +-- testVersion() [OK]
  | +-- testReceivedFileDescriptorsUnconnected() [OK]
  | '-- testSupported() [OK]
  +-- SoTimeoutTest [OK]
  | +-- issue14Fail() [OK]
  | +-- issue14Pass() [OK]
  | +-- testSocketTimeoutExceptionRead() [OK]
  | '-- testSocketTimeoutExceptionWrite() [OK]
  +-- StandardSocketOptionsTest [OK]
  | +-- testUnconnectedServerSocketOptions() [OK]
  | '-- testSocketOptions() [OK]
  +-- TcpNoDelayTest [OK]
  | +-- testDefaultImpl() [OK]
  | '-- testStrictImpl() [OK]
  '-- ThroughputTest [OK]
    +-- testDatagramChannel() [OK]
    +-- testDatagramChannelDirect() [OK]
    +-- testDatagramChannelNonBlocking() [OK]
    +-- testDatagramChannelNonBlockingDirect() [OK]
    +-- testDatagramPacket() [OK]
    +-- testSocket() [OK]
    +-- testSocketChannel() [OK]
    '-- testSocketChannelDirectBuffer() [OK]

Test run finished after 5647 ms
[        28 containers found      ]
[         0 containers skipped    ]
[        28 containers started    ]
[         0 containers aborted    ]
[        28 containers successful ]
[         0 containers failed     ]
[       124 tests found           ]
[         0 tests skipped         ]
[       124 tests started         ]
[         0 tests aborted         ]
[       124 tests successful      ]
[         0 tests failed          ]

Testing "junixsocket-tipc"... 
Testing "junixsocket-tipc"... AcceptTimeoutTest.testCatchTimeout()... 
Testing "junixsocket-tipc"... AcceptTimeoutTest.testTimeoutAfterDelay()... 
Testing "junixsocket-tipc"... AcceptTimeoutTest.testAcceptWithoutBindToService()... 
Testing "junixsocket-tipc"... AFTIPCTopologyWatcherTest.testClusterConnectivity()... 
Testing "junixsocket-tipc"... AFTIPCTopologyWatcherTest.testSubscriptionEvents()... 
Testing "junixsocket-tipc"... AFTIPCTopologyWatcherTest.testGetNodeId()... 
Testing "junixsocket-tipc"... AncillaryMessageTest.testConnectionAbort()... 
Testing "junixsocket-tipc"... AncillaryMessageTest.testDestName()... 
Testing "junixsocket-tipc"... AvailableTest.testAvailableAtClient()... 
Testing "junixsocket-tipc"... AvailableTest.testAvailableAtServer()... 
Testing "junixsocket-tipc"... BufferOverflowTest.writeOverflow()... 
Testing "junixsocket-tipc"... BufferOverflowTest.readUpTo()... 
Testing "junixsocket-tipc"... BufferOverflowTest.readOutOfBounds()... 
Testing "junixsocket-tipc"... CancelAcceptTest.issue6test1()... 
Testing "junixsocket-tipc"... DatagramSocketTest.testBindConnect()... 
Testing "junixsocket-tipc"... DatagramSocketTest.testPeekTimeout()... 
Testing "junixsocket-tipc"... DatagramSocketTest.testReadTimeout()... 
Testing "junixsocket-tipc"... EndOfFileTest.clientWriteToSocketClosedByClient()... 
Testing "junixsocket-tipc"... EndOfFileTest.clientWriteToSocketClosedByServer()... 
Testing "junixsocket-tipc"... EndOfFileTest.bidirectionalSanity()... 
Testing "junixsocket-tipc"... EndOfFileTest.serverWriteToSocketClosedByClient()... 
Testing "junixsocket-tipc"... EndOfFileTest.serverWriteToSocketClosedByServer()... 
Testing "junixsocket-tipc"... EndOfFileTest.clientReadEof()... 
Testing "junixsocket-tipc"... EndOfFileTest.serverReadEof()... 
Testing "junixsocket-tipc"... ReadWriteTest.testReceiveWithByteArraySendByteForByte()... 
Testing "junixsocket-tipc"... ReadWriteTest.testReceiveWithByteArraySendWithByteArray()... 
Testing "junixsocket-tipc"... ReadWriteTest.testReceiveDataByteForByteSendByteForByte()... 
Testing "junixsocket-tipc"... ReadWriteTest.testReceiveDataByteForByteSendWithByteArray()... 
Testing "junixsocket-tipc"... SelectorTest.testNonBlockingAccept()... 
Testing "junixsocket-tipc"... SelectorTest.testClosedSelectorSelect()... 
Testing "junixsocket-tipc"... SelectorTest.testClosedSelectorWakeup()... 
Testing "junixsocket-tipc"... SelectorTest.testCancelSelect()... 
Testing "junixsocket-tipc"... SelectorTest.testConnectionCloseImmediateClientDisconnect()... 
Testing "junixsocket-tipc"... SelectorTest.testConnectionCloseImmediateClientDisconnectKeepLooping()... 
Testing "junixsocket-tipc"... SelectorTest.testConnectionCloseEventualClientDisconnectKeepLooping()... 
Testing "junixsocket-tipc"... SelectorTest.testConnectionCloseEventualClientDisconnect()... 
Testing "junixsocket-tipc"... ServerSocketCloseTest.testUnblockAcceptsWithSoTimeout()... 
Testing "junixsocket-tipc"... ServerSocketCloseTest.testUnblockAcceptsWithoutSoTimeout()... 
Testing "junixsocket-tipc"... ServerSocketTest.testUnboundServerSocket()... 
Testing "junixsocket-tipc"... ServerSocketTest.testBindBadArguments()... 
Testing "junixsocket-tipc"... ServerSocketTest.testCloseable()... 
Testing "junixsocket-tipc"... ServerSocketTest.testSupported()... 
Testing "junixsocket-tipc"... SocketChannelTest.testNonBlockingConnect()... 
Testing "junixsocket-tipc"... SocketOptionsTest.testTIPCDestDroppable()... 
Testing "junixsocket-tipc"... SocketOptionsTest.testTIPCSourceDroppable()... 
Testing "junixsocket-tipc"... SocketOptionsTest.testTIPCConnTimeout()... 
Testing "junixsocket-tipc"... SocketOptionsTest.testCommunication()... 
Testing "junixsocket-tipc"... SocketOptionsTest.testGroupCommunication()... 
Testing "junixsocket-tipc"... SocketOptionsTest.testTIPCNodelay()... 
Testing "junixsocket-tipc"... SocketOptionsTest.testTIPCImportance()... 
Testing "junixsocket-tipc"... SocketOptionsTest.testGroupJoinLeave()... 
Testing "junixsocket-tipc"... SocketOptionsTest.testGroupLoopback()... 
Testing "junixsocket-tipc"... SocketPairTest.testDatagramPair()... 
Testing "junixsocket-tipc"... SocketPairTest.testSocketPair()... 
Testing "junixsocket-tipc"... SocketTest.testConnectBadArguments()... 
Testing "junixsocket-tipc"... SocketTest.testBindBadArguments()... 
Testing "junixsocket-tipc"... SocketTest.testCloseable()... 
Testing "junixsocket-tipc"... SocketTest.testUnconnectedSocket()... 
Testing "junixsocket-tipc"... SocketTest.testMain()... 
org.newsclub.net.unix.tipc.AFTIPCSocket.isSupported(): true
Testing "junixsocket-tipc"... SocketTest.testLoadedLibrary()... 
Testing "junixsocket-tipc"... SocketTest.testVersion()... 
Testing "junixsocket-tipc"... SocketTest.testSupported()... 
Testing "junixsocket-tipc"... SoTimeoutTest.issue14Fail()... 
Testing "junixsocket-tipc"... SoTimeoutTest.issue14Pass()... 
Testing "junixsocket-tipc"... SoTimeoutTest.testSocketTimeoutExceptionRead()... 
Testing "junixsocket-tipc"... SoTimeoutTest.testSocketTimeoutExceptionWrite()... 
Testing "junixsocket-tipc"... StandardSocketOptionsTest.testUnconnectedServerSocketOptions()... 
Testing "junixsocket-tipc"... StandardSocketOptionsTest.testSocketOptions()... 
Testing "junixsocket-tipc"... TcpNoDelayTest.testDefaultImpl()... 
Testing "junixsocket-tipc"... TcpNoDelayTest.testStrictImpl()... 
Testing "junixsocket-tipc"... ThroughputTest.testDatagramChannel()... 
Testing "junixsocket-tipc"... ThroughputTest.testDatagramChannelDirect()... 
Testing "junixsocket-tipc"... ThroughputTest.testDatagramChannelNonBlocking()... 
Testing "junixsocket-tipc"... ThroughputTest.testDatagramChannelNonBlockingDirect()... 
Testing "junixsocket-tipc"... ThroughputTest.testDatagramPacket()... 
Testing "junixsocket-tipc"... ThroughputTest.testSocket()... 
Testing "junixsocket-tipc"... ThroughputTest.testSocketChannel()... 
Testing "junixsocket-tipc"... ThroughputTest.testSocketChannelDirectBuffer()... 
Testing "junixsocket-tipc"... done
.
'-- JUnit Jupiter [OK]
  +-- AcceptTimeoutTest [OK]
  | +-- testCatchTimeout() [OK]
  | +-- testTimeoutAfterDelay() [OK]
  | '-- testAcceptWithoutBindToService() [OK]
  +-- AFTIPCTopologyWatcherTest [OK]
  | +-- testClusterConnectivity() [OK]
  | +-- testSubscriptionEvents() [OK]
  | '-- testGetNodeId() [OK]
  +-- AncillaryMessageTest [OK]
  | +-- testConnectionAbort() [OK]
  | '-- testDestName() [OK]
  +-- AvailableTest [OK]
  | +-- testAvailableAtClient() [OK]
  | '-- testAvailableAtServer() [OK]
  +-- BufferOverflowTest [OK]
  | +-- writeOverflow() [OK]
  | +-- readUpTo() [OK]
  | '-- readOutOfBounds() [OK]
  +-- CancelAcceptTest [OK]
  | '-- issue6test1() [OK]
  +-- DatagramSocketTest [OK]
  | +-- testBindConnect() [OK]
  | +-- testPeekTimeout() [OK]
  | '-- testReadTimeout() [OK]
  +-- EndOfFileTest [OK]
  | +-- clientWriteToSocketClosedByClient() [OK]
  | +-- clientWriteToSocketClosedByServer() [OK]
  | +-- bidirectionalSanity() [OK]
  | +-- serverWriteToSocketClosedByClient() [OK]
  | +-- serverWriteToSocketClosedByServer() [OK]
  | +-- clientReadEof() [OK]
  | '-- serverReadEof() [OK]
  +-- ReadWriteTest [OK]
  | +-- testReceiveWithByteArraySendByteForByte() [OK]
  | +-- testReceiveWithByteArraySendWithByteArray() [OK]
  | +-- testReceiveDataByteForByteSendByteForByte() [OK]
  | '-- testReceiveDataByteForByteSendWithByteArray() [OK]
  +-- SelectorTest [OK]
  | +-- testNonBlockingAccept() [OK]
  | +-- testClosedSelectorSelect() [OK]
  | +-- testClosedSelectorWakeup() [OK]
  | +-- testCancelSelect() [OK]
  | +-- testConnectionCloseImmediateClientDisconnect() [OK]
  | +-- testConnectionCloseImmediateClientDisconnectKeepLooping() [OK]
  | +-- testConnectionCloseEventualClientDisconnectKeepLooping() [OK]
  | '-- testConnectionCloseEventualClientDisconnect() [OK]
  +-- ServerSocketCloseTest [OK]
  | +-- testUnblockAcceptsWithSoTimeout() [OK]
  | '-- testUnblockAcceptsWithoutSoTimeout() [OK]
  +-- ServerSocketTest [OK]
  | +-- testUnboundServerSocket() [OK]
  | +-- testBindBadArguments() [OK]
  | +-- testCloseable() [OK]
  | '-- testSupported() [OK]
  +-- SocketChannelTest [OK]
  | '-- testNonBlockingConnect() [OK]
  +-- SocketOptionsTest [OK]
  | +-- testTIPCDestDroppable() [OK]
  | +-- testTIPCSourceDroppable() [OK]
  | +-- testTIPCConnTimeout() [OK]
  | +-- testCommunication() [OK]
  | +-- testGroupCommunication() [OK]
  | +-- testTIPCNodelay() [OK]
  | +-- testTIPCImportance() [OK]
  | +-- testGroupJoinLeave() [OK]
  | '-- testGroupLoopback() [OK]
  +-- SocketPairTest [OK]
  | +-- testDatagramPair() [OK]
  | '-- testSocketPair() [OK]
  +-- SocketTest [OK]
  | +-- testConnectBadArguments() [OK]
  | +-- testBindBadArguments() [OK]
  | +-- testCloseable() [OK]
  | +-- testUnconnectedSocket() [OK]
  | +-- testMain() [OK]
  | +-- testLoadedLibrary() [OK]
  | +-- testVersion() [OK]
  | '-- testSupported() [OK]
  +-- SoTimeoutTest [OK]
  | +-- issue14Fail() [OK]
  | +-- issue14Pass() [OK]
  | +-- testSocketTimeoutExceptionRead() [OK]
  | '-- testSocketTimeoutExceptionWrite() [OK]
  +-- StandardSocketOptionsTest [OK]
  | +-- testUnconnectedServerSocketOptions() [OK]
  | '-- testSocketOptions() [OK]
  +-- TcpNoDelayTest [OK]
  | +-- testDefaultImpl() [OK]
  | '-- testStrictImpl() [OK]
  '-- ThroughputTest [OK]
    +-- testDatagramChannel() [OK]
    +-- testDatagramChannelDirect() [OK]
    +-- testDatagramChannelNonBlocking() [OK]
    +-- testDatagramChannelNonBlockingDirect() [OK]
    +-- testDatagramPacket() [OK]
    +-- testSocket() [OK]
    +-- testSocketChannel() [OK]
    '-- testSocketChannelDirectBuffer() [OK]

Test run finished after 4886 ms
[        21 containers found      ]
[         0 containers skipped    ]
[        21 containers started    ]
[         0 containers aborted    ]
[        21 containers successful ]
[         0 containers failed     ]
[        78 tests found           ]
[         0 tests skipped         ]
[        78 tests started         ]
[         0 tests aborted         ]
[        78 tests successful      ]
[         0 tests failed          ]

Testing "junixsocket-rmi"... 
Testing "junixsocket-rmi"... RegistryTest.testDoubleCreateRegistry()... 
Testing "junixsocket-rmi"... RegistryTest.testExportAndBind()... 
Testing "junixsocket-rmi"... RemoteCloseableTest.testRemoteCloseableWithANotCloseableThing()... 
Testing "junixsocket-rmi"... RemoteCloseableTest.testRemoteCloseableWithACloseableThing()... 
Testing "junixsocket-rmi"... RemoteFileDescriptorTest.testReadWrite()... 
Testing "junixsocket-rmi"... RemoteFileDescriptorTest.testFindSocketFactory()... 
Testing "junixsocket-rmi"... RemoteFileDescriptorTest.testRemoteStdoutNoop()... 
Testing "junixsocket-rmi"... RemoteFileDescriptorTest.testRemoteStdout()... 
Testing "junixsocket-rmi"... RemoteFileDescriptorTest.testWriteAndReadHello()... 
Testing "junixsocket-rmi"... RemoteFileDescriptorTest.testServiceProxy()... 
Testing "junixsocket-rmi"... RMIPeerCredentialsTest.testRemotePeerCredentials()... 
Testing "junixsocket-rmi"... JunixsocketVersionTest.testVersion()... 
Testing "junixsocket-rmi"... done
.
'-- JUnit Jupiter [OK]
  +-- RegistryTest [OK]
  | +-- testDoubleCreateRegistry() [OK]
  | '-- testExportAndBind() [OK]
  +-- RemoteCloseableTest [OK]
  | +-- testRemoteCloseableWithANotCloseableThing() [OK]
  | '-- testRemoteCloseableWithACloseableThing() [OK]
  +-- RemoteFileDescriptorTest [OK]
  | +-- testReadWrite() [OK]
  | +-- testFindSocketFactory() [OK]
  | +-- testRemoteStdoutNoop() [OK]
  | +-- testRemoteStdout() [OK]
  | +-- testWriteAndReadHello() [OK]
  | '-- testServiceProxy() [OK]
  +-- RMIPeerCredentialsTest [OK]
  | '-- testRemotePeerCredentials() [OK]
  '-- JunixsocketVersionTest [OK]
    '-- testVersion() [OK]

Test run finished after 112 ms
[         6 containers found      ]
[         0 containers skipped    ]
[         6 containers started    ]
[         0 containers aborted    ]
[         6 containers successful ]
[         0 containers failed     ]
[        12 tests found           ]
[         0 tests skipped         ]
[        12 tests started         ]
[         0 tests aborted         ]
[        12 tests successful      ]
[         0 tests failed          ]

Skipping optional module: junixsocket-common.JavaInet; enable by launching with -Dselftest.enable-module.junixsocket-common.JavaInet=true

Selftest results:
PASS    junixsocket-common  124/124
PASS    junixsocket-tipc    78/78
PASS    junixsocket-rmi 12/12

Supported capabilities:   [CAPABILITY_PEER_CREDENTIALS, CAPABILITY_ANCILLARY_MESSAGES, CAPABILITY_FILE_DESCRIPTORS, CAPABILITY_ABSTRACT_NAMESPACE, CAPABILITY_UNIX_DATAGRAMS, CAPABILITY_NATIVE_SOCKETPAIR, CAPABILITY_FD_AS_REDIRECT, CAPABILITY_TIPC, CAPABILITY_UNIX_DOMAIN]
Unsupported capabilities: []

Selftest PASSED