Sortix
Sortix Download Manual Development Source Code News Blog More

os-test

os-test is a set of test suites for POSIX operating systems designed to make it easy to compare differences between operating systems and to find operating system bugs. It consists of test suites that focus on different operating system areas.

This page visualizes the results for the POSIX operating systems that are relevant today.

Source Code

The os-test source code is available on gitlab. You also can view the source code for each test by clicking the test title in the leftmost entry of each row. os-test is licensed under the ISC license, see the LICENSE file in the source code for details.

Please feel free to contribute more tests and suites and I'll be happy to run them on every operating system and publish the data.

Setup

I run os-test on my host Linux system; AIX, macOS, and Solaris are graciously provided by cfarm; and the rest of the systems run in qemu virtual machines. The testing harness connects to each machine over ssh and runs tests there. The systems are:

  • AIX
  • DragonFly
  • FreeBSD
  • Haiku
  • Hurd
  • Linux
  • macOS
  • Minix
  • NetBSD
  • OmniOS
  • OpenBSD
  • Solaris
  • Sortix

I'm still looking for access to Integrity, LynxOS, HP-UX, OpenServer, QNX, UnixWare, VxWorks, and z/OS systems, or any other relevant maintained POSIX systems with a sshd port. Please get in touch if you can help.

Legend

Unanimous Result kind 1 Result kind 2 Result kind 3 Result kind 4 Result kind 5
Good Good unanimous Good result kind 1 Good result kind 2 Good result kind 3 Good result kind 4 Good result kind 5
Unknown Unknown unanimous Unknown result kind 1 Unknown result kind 2 Unknown result kind 3 Unknown result kind 4 Unknown result kind 5
Bad Bad unanimous Bad result kind 1 Bad result kind 2 Bad result kind 3 Bad result kind 4 Bad result kind 5

Good. A cell is good if its output belongs to the set of expected valid outputs for that test, as determined by the applicable standards, specifications, expected behavior, or the interpretation of the os-test authors. If all the good results in a row have the same output, all the good result cells are colored in the unanimous color. Otherwise, each different kind of good outcome is colored in an unique color.

Unknown. A cell is unknown if the output is known, but it has not yet been determined if the output is a good result. If all the unknown results in a row have the same output, all the unknown result cells are colored in the unanimous color. Otherwise, each different kind of unknown outcome is colored in an unique color.

Bad. A cell is bad if its output is neither good nor unknown. If all the bad results in a row have the same output, all the bad result cells are colored in the unanimous color. Otherwise, each different kind of bad outcome is colored in an unique color.

§. The § link on the left of each row links to that row.

Suites

os-test currently contains these suites:

  • io - This suite tests input/output system calls.
  • malloc - This suite tests memory allocation.
  • signal - This suite tests signal system calls.
  • udp - This suite tests the UDP stack.

io

This suite tests input/output system calls.

aix
AIX 3 00F9C1964C00
dragonfly
DragonFly 6.4-RELEASE x86_64
freebsd
FreeBSD 14.1-RELEASE amd64
haiku
Haiku 1 x86_64
hurd
GNU 0.9 i686-AT386
linux
Linux 6.11.10-amd64 x86_64
macos
Darwin 24.1.0 arm64
minix
Minix 3.4.0 i386
netbsd
NetBSD 10.0 amd64
omnios
SunOS 5.11 i86pc
openbsd
OpenBSD 7.6 amd64
solaris
SunOS 5.11 i86pc
sortix
Sortix 1.1dev x86_64
§ dup3-clofork-fork aix: bad
no O_CLOFORK
dragonfly: bad
no O_CLOFORK
freebsd: bad
no O_CLOFORK
haiku: bad
no O_CLOFORK
hurd: bad
no O_CLOFORK
linux: bad
no O_CLOFORK
macos: bad
no O_CLOFORK
minix: bad
no O_CLOFORK
netbsd: bad
no O_CLOFORK
omnios: good
exit: 0
openbsd: bad
no O_CLOFORK
solaris: good
exit: 0
sortix: good
exit: 0
§ ofd-getlk-rd aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-getlk-un aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-getlk-wr aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd-dup aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd-dup-rd aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_RDLCK
macos: good
F_RDLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_RDLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd-dup-wr aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_WRLCK
macos: good
F_WRLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_WRLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd-reopen aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_RDLCK
macos: good
F_RDLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_RDLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd-reopen-rd aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_RDLCK
macos: good
F_RDLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_RDLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd-reopen-wr aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_OFD_SETLK: EWOULDBLOCK
macos: good
F_OFD_SETLK: EWOULDBLOCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_OFD_SETLK: EWOULDBLOCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd-un aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd-un-dup aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd-un-dup-rd aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_RDLCK
macos: good
F_RDLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_RDLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd-un-dup-wr aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_WRLCK
macos: good
F_WRLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_WRLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd-un-reopen aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd-un-reopen-rd aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_RDLCK
macos: good
F_RDLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_RDLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-rd-un-reopen-wr aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_WRLCK
macos: good
F_WRLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_WRLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-un aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr-dup aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr-dup-rd aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_RDLCK
macos: good
F_RDLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_RDLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr-dup-wr aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_WRLCK
macos: good
F_WRLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_WRLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr-reopen aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_WRLCK
macos: good
F_WRLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_WRLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr-reopen-rd aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_OFD_SETLK: EWOULDBLOCK
macos: good
F_OFD_SETLK: EWOULDBLOCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_OFD_SETLK: EWOULDBLOCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr-reopen-wr aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_OFD_SETLK: EWOULDBLOCK
macos: good
F_OFD_SETLK: EWOULDBLOCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_OFD_SETLK: EWOULDBLOCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr-un aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr-un-dup aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr-un-dup-rd aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_RDLCK
macos: good
F_RDLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_RDLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr-un-dup-wr aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_WRLCK
macos: good
F_WRLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_WRLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr-un-reopen aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_UNLCK
macos: good
F_UNLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_UNLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr-un-reopen-rd aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_RDLCK
macos: good
F_RDLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_RDLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ ofd-setlk-wr-un-reopen-wr aix: bad
no F_OFD_SETLK
dragonfly: bad
no F_OFD_SETLK
freebsd: bad
no F_OFD_SETLK
haiku: bad
no F_OFD_SETLK
hurd: bad
no F_OFD_SETLK
linux: good
F_WRLCK
macos: good
F_WRLCK
minix: bad
no F_OFD_SETLK
netbsd: bad
no F_OFD_SETLK
omnios: good
F_WRLCK
openbsd: bad
no F_OFD_SETLK
solaris: bad
no F_OFD_SETLK
sortix: bad
no F_OFD_SETLK
§ open-clofork-fork aix: bad
no O_CLOFORK
dragonfly: bad
no O_CLOFORK
freebsd: bad
no O_CLOFORK
haiku: bad
no O_CLOFORK
hurd: bad
no O_CLOFORK
linux: bad
no O_CLOFORK
macos: bad
no O_CLOFORK
minix: bad
no O_CLOFORK
netbsd: bad
no O_CLOFORK
omnios: good
exit: 0
openbsd: bad
no O_CLOFORK
solaris: good
exit: 0
sortix: good
exit: 0
§ open-mkstemp-rdonly aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ open-mkstemp-rdonly-directory aix: good
open: ENOTDIR
dragonfly: good
open: ENOTDIR
freebsd: good
open: ENOTDIR
haiku: good
open: ENOTDIR
hurd: good
open: ENOTDIR
linux: good
open: ENOTDIR
macos: good
open: ENOTDIR
minix: bad
exit: 0
netbsd: good
open: ENOTDIR
omnios: good
open: ENOTDIR
openbsd: good
open: ENOTDIR
solaris: good
open: ENOTDIR
sortix: good
open: ENOTDIR
§ open-mkstemp-rdonly-trunc aix: good
file was truncated
dragonfly: good
open: EACCES
freebsd: good
file was truncated
haiku: good
open: EPERM
hurd: good
open: EINVAL
linux: good
file was truncated
macos: good
file was truncated
minix: good
file was truncated
netbsd: good
file was truncated
omnios: good
file was truncated
openbsd: good
open: EINVAL
solaris: good
file was truncated
sortix: good
open: EINVAL
§ open-mkstemp-rdonly-trunc-directory aix: good
open: ENOTDIR
dragonfly: good
open: EACCES
freebsd: good
open: ENOTDIR
haiku: good
open: ENOTDIR
hurd: good
open: ENOTDIR
linux: good
open: ENOTDIR
macos: good
open: ENOTDIR
minix: bad
file was truncated
netbsd: good
open: ENOTDIR
omnios: good
open: ENOTDIR
openbsd: good
open: EINVAL
solaris: good
open: EINVAL
sortix: good
open: EINVAL
§ open-mkstemp-wronly-directory aix: good
open: ENOTDIR
dragonfly: good
open: ENOTDIR
freebsd: good
open: ENOTDIR
haiku: good
open: ENOTDIR
hurd: good
open: ENOTDIR
linux: good
open: ENOTDIR
macos: good
open: ENOTDIR
minix: bad
exit: 0
netbsd: good
open: ENOTDIR
omnios: good
open: ENOTDIR
openbsd: good
open: ENOTDIR
solaris: bad
open: EINVAL
sortix: good
open: ENOTDIR
§ open-mkstemp-wronly-trunc-directory aix: good
open: ENOTDIR
dragonfly: good
open: ENOTDIR
freebsd: good
open: ENOTDIR
haiku: good
open: ENOTDIR
hurd: good
open: ENOTDIR
linux: good
open: ENOTDIR
macos: good
open: ENOTDIR
minix: bad
file was truncated
netbsd: good
open: ENOTDIR
omnios: good
open: ENOTDIR
openbsd: good
open: ENOTDIR
solaris: good
open: EINVAL
sortix: good
open: EINVAL
§ open-tmpdir-rdonly aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ open-tmpdir-rdonly-append aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ open-tmpdir-rdonly-creat aix: bad
exit: 0
dragonfly: bad
open: EINVAL
freebsd: good
open: EISDIR
haiku: bad
exit: 0
hurd: bad
exit: 0
linux: good
open: EISDIR
macos: bad
exit: 0
minix: bad
exit: 0
netbsd: bad
exit: 0
omnios: bad
exit: 0
openbsd: bad
exit: 0
solaris: good
open: EISDIR
sortix: good
open: EISDIR
§ open-tmpdir-rdonly-directory aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ open-tmpdir-rdonly-trunc aix: good
open: EISDIR
dragonfly: good
open: EACCES
freebsd: good
open: EISDIR
haiku: good
open: EPERM
hurd: good
open: EINVAL
linux: good
open: EISDIR
macos: good
open: EISDIR
minix: good
exit: 0
netbsd: good
open: EISDIR
omnios: good
open: EISDIR
openbsd: good
open: EINVAL
solaris: good
open: EISDIR
sortix: good
open: EINVAL
§ open-tmpdir-rdwr aix: good
open: EISDIR
dragonfly: good
open: EISDIR
freebsd: good
open: EISDIR
haiku: good
open: EISDIR
hurd: good
open: EISDIR
linux: good
open: EISDIR
macos: good
open: EISDIR
minix: good
open: EISDIR
netbsd: good
open: EISDIR
omnios: good
open: EISDIR
openbsd: good
open: EISDIR
solaris: good
open: EISDIR
sortix: good
open: EISDIR
§ open-tmpdir-rdwr-append aix: good
open: EISDIR
dragonfly: good
open: EISDIR
freebsd: good
open: EISDIR
haiku: good
open: EISDIR
hurd: good
open: EISDIR
linux: good
open: EISDIR
macos: good
open: EISDIR
minix: good
open: EISDIR
netbsd: good
open: EISDIR
omnios: good
open: EISDIR
openbsd: good
open: EISDIR
solaris: good
open: EISDIR
sortix: good
open: EISDIR
§ open-tmpdir-rdwr-creat aix: good
open: EISDIR
dragonfly: bad
open: EINVAL
freebsd: good
open: EISDIR
haiku: good
open: EISDIR
hurd: good
open: EISDIR
linux: good
open: EISDIR
macos: good
open: EISDIR
minix: good
open: EISDIR
netbsd: good
open: EISDIR
omnios: good
open: EISDIR
openbsd: good
open: EISDIR
solaris: good
open: EISDIR
sortix: good
open: EISDIR
§ open-tmpdir-rdwr-directory aix: good
open: EISDIR
dragonfly: good
open: EISDIR
freebsd: good
open: EISDIR
haiku: good
open: EISDIR
hurd: good
open: EISDIR
linux: good
open: EISDIR
macos: good
open: EISDIR
minix: good
open: EISDIR
netbsd: good
open: EISDIR
omnios: good
open: EISDIR
openbsd: good
open: EISDIR
solaris: bad
open: EINVAL
sortix: good
open: EISDIR
§ open-tmpdir-rdwr-trunc aix: good
open: EISDIR
dragonfly: good
open: EISDIR
freebsd: good
open: EISDIR
haiku: good
open: EISDIR
hurd: good
open: EISDIR
linux: good
open: EISDIR
macos: good
open: EISDIR
minix: good
open: EISDIR
netbsd: good
open: EISDIR
omnios: good
open: EISDIR
openbsd: good
open: EISDIR
solaris: good
open: EISDIR
sortix: good
open: EISDIR
§ open-tmpdir-wronly aix: good
open: EISDIR
dragonfly: good
open: EISDIR
freebsd: good
open: EISDIR
haiku: good
open: EISDIR
hurd: good
open: EISDIR
linux: good
open: EISDIR
macos: good
open: EISDIR
minix: good
open: EISDIR
netbsd: good
open: EISDIR
omnios: good
open: EISDIR
openbsd: good
open: EISDIR
solaris: good
open: EISDIR
sortix: good
open: EISDIR
§ open-tmpdir-wronly-append aix: good
open: EISDIR
dragonfly: good
open: EISDIR
freebsd: good
open: EISDIR
haiku: good
open: EISDIR
hurd: good
open: EISDIR
linux: good
open: EISDIR
macos: good
open: EISDIR
minix: good
open: EISDIR
netbsd: good
open: EISDIR
omnios: good
open: EISDIR
openbsd: good
open: EISDIR
solaris: good
open: EISDIR
sortix: good
open: EISDIR
§ open-tmpdir-wronly-creat aix: good
open: EISDIR
dragonfly: bad
open: EINVAL
freebsd: good
open: EISDIR
haiku: good
open: EISDIR
hurd: good
open: EISDIR
linux: good
open: EISDIR
macos: good
open: EISDIR
minix: good
open: EISDIR
netbsd: good
open: EISDIR
omnios: good
open: EISDIR
openbsd: good
open: EISDIR
solaris: good
open: EISDIR
sortix: good
open: EISDIR
§ open-tmpdir-wronly-directory aix: good
open: EISDIR
dragonfly: good
open: EISDIR
freebsd: good
open: EISDIR
haiku: good
open: EISDIR
hurd: good
open: EISDIR
linux: good
open: EISDIR
macos: good
open: EISDIR
minix: good
open: EISDIR
netbsd: good
open: EISDIR
omnios: good
open: EISDIR
openbsd: good
open: EISDIR
solaris: bad
open: EINVAL
sortix: good
open: EISDIR
§ open-tmpdir-wronly-trunc aix: good
open: EISDIR
dragonfly: good
open: EISDIR
freebsd: good
open: EISDIR
haiku: good
open: EISDIR
hurd: good
open: EISDIR
linux: good
open: EISDIR
macos: good
open: EISDIR
minix: good
open: EISDIR
netbsd: good
open: EISDIR
omnios: good
open: EISDIR
openbsd: good
open: EISDIR
solaris: good
open: EISDIR
sortix: good
open: EISDIR

malloc

This suite tests memory allocation.

aix
AIX 3 00F9C1964C00
dragonfly
DragonFly 6.4-RELEASE x86_64
freebsd
FreeBSD 14.1-RELEASE amd64
haiku
Haiku 1 x86_64
hurd
GNU 0.9 i686-AT386
linux
Linux 6.11.10-amd64 x86_64
macos
Darwin 24.1.0 arm64
minix
Minix 3.4.0 i386
netbsd
NetBSD 10.0 amd64
omnios
SunOS 5.11 i86pc
openbsd
OpenBSD 7.6 amd64
solaris
SunOS 5.11 i86pc
sortix
Sortix 1.1dev x86_64
§ malloc-0 aix: good
NULL
dragonfly: good
non-NULL
freebsd: good
non-NULL
haiku: good
non-NULL
hurd: good
non-NULL
linux: good
non-NULL
macos: good
non-NULL
minix: good
non-NULL
netbsd: good
non-NULL
omnios: good
non-NULL
openbsd: good
non-NULL
solaris: good
non-NULL
sortix: good
non-NULL
§ realloc-0 aix: bad
realloc: EINVAL
dragonfly: good
non-NULL
freebsd: good
non-NULL
haiku: good
NULL
hurd: good
NULL
linux: good
NULL
macos: good
non-NULL
minix: good
non-NULL
netbsd: good
non-NULL
omnios: good
NULL
openbsd: good
non-NULL
solaris: good
non-NULL
sortix: good
non-NULL
§ realloc-null-0 aix: good
NULL
dragonfly: good
non-NULL
freebsd: good
non-NULL
haiku: good
non-NULL
hurd: good
non-NULL
linux: good
non-NULL
macos: good
non-NULL
minix: good
non-NULL
netbsd: good
non-NULL
omnios: good
non-NULL
openbsd: good
non-NULL
solaris: good
non-NULL
sortix: good
non-NULL

signal

This suite tests signal system calls.

aix
AIX 3 00F9C1964C00
dragonfly
DragonFly 6.4-RELEASE x86_64
freebsd
FreeBSD 14.1-RELEASE amd64
haiku
Haiku 1 x86_64
hurd
GNU 0.9 i686-AT386
linux
Linux 6.11.10-amd64 x86_64
macos
Darwin 24.1.0 arm64
minix
Minix 3.4.0 i386
netbsd
NetBSD 10.0 amd64
omnios
SunOS 5.11 i86pc
openbsd
OpenBSD 7.6 amd64
solaris
SunOS 5.11 i86pc
sortix
Sortix 1.1dev x86_64
§ block-chld-default-rehandle-unblock aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: bad
SIGCHLD
linux: good
exit: 0
macos: good
exit: 0
minix: bad
SIGCHLD
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ block-chld-default-unblock aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ block-chld-unblock aix: good
SIGCHLD
dragonfly: good
SIGCHLD
freebsd: good
SIGCHLD
haiku: good
SIGCHLD
hurd: good
SIGCHLD
linux: good
SIGCHLD
macos: good
SIGCHLD
minix: good
SIGCHLD
netbsd: good
SIGCHLD
omnios: good
SIGCHLD
openbsd: good
SIGCHLD
solaris: good
SIGCHLD
sortix: good
SIGCHLD
§ block-ignore-raise-ignore-unignore-unblock aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: bad
SIGUSR1
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ block-ignore-raise-unblock aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ block-ignore-raise-unignore-unblock aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
SIGUSR1
hurd: good
SIGUSR1
linux: good
SIGUSR1
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
SIGUSR1
openbsd: good
exit: 0
solaris: good
SIGUSR1
sortix: good
exit: 0
§ block-raise aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ block-raise-handle-unblock aix: good
SIGUSR1
dragonfly: good
SIGUSR1
freebsd: good
SIGUSR1
haiku: good
SIGUSR1
hurd: good
SIGUSR1
linux: good
SIGUSR1
macos: good
SIGUSR1
minix: good
SIGUSR1
netbsd: good
SIGUSR1
omnios: good
SIGUSR1
openbsd: good
SIGUSR1
solaris: good
SIGUSR1
sortix: good
SIGUSR1
§ block-raise-ignore-unignore-unblock aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: bad
SIGUSR1
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ block-raise-unblock aix: good
SIGUSR1
dragonfly: good
SIGUSR1
freebsd: good
SIGUSR1
haiku: good
SIGUSR1
hurd: good
SIGUSR1
linux: good
SIGUSR1
macos: good
SIGUSR1
minix: good
SIGUSR1
netbsd: good
SIGUSR1
omnios: good
SIGUSR1
openbsd: good
SIGUSR1
solaris: good
SIGUSR1
sortix: good
SIGUSR1
§ default-chld-exec aix: good
SIG_DFL
dragonfly: good
SIG_DFL
freebsd: good
SIG_DFL
haiku: good
SIG_DFL
hurd: good
SIG_DFL
linux: good
SIG_DFL
macos: good
SIG_DFL
minix: good
SIG_DFL
netbsd: good
SIG_DFL
omnios: good
SIG_DFL
openbsd: good
SIG_DFL
solaris: good
SIG_DFL
sortix: good
SIG_DFL
§ default-usr1-exec aix: good
SIG_DFL
dragonfly: good
SIG_DFL
freebsd: good
SIG_DFL
haiku: good
SIG_DFL
hurd: good
SIG_DFL
linux: good
SIG_DFL
macos: good
SIG_DFL
minix: good
SIG_DFL
netbsd: good
SIG_DFL
omnios: good
SIG_DFL
openbsd: good
SIG_DFL
solaris: good
SIG_DFL
sortix: good
SIG_DFL
§ handle-chld-exec aix: good
SIG_DFL
dragonfly: good
SIG_DFL
freebsd: good
SIG_DFL
haiku: good
SIG_DFL
hurd: good
SIG_DFL
linux: good
SIG_DFL
macos: good
SIG_DFL
minix: good
SIG_DFL
netbsd: good
SIG_DFL
omnios: good
SIG_DFL
openbsd: good
SIG_DFL
solaris: good
SIG_DFL
sortix: good
SIG_DFL
§ handle-usr1-exec aix: good
SIG_DFL
dragonfly: good
SIG_DFL
freebsd: good
SIG_DFL
haiku: good
SIG_DFL
hurd: good
SIG_DFL
linux: good
SIG_DFL
macos: good
SIG_DFL
minix: good
SIG_DFL
netbsd: good
SIG_DFL
omnios: good
SIG_DFL
openbsd: good
SIG_DFL
solaris: good
SIG_DFL
sortix: good
SIG_DFL
§ ignore-block-raise aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ ignore-block-raise-unignore-unblock aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
SIGUSR1
hurd: good
SIGUSR1
linux: good
SIGUSR1
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
SIGUSR1
openbsd: good
exit: 0
solaris: good
SIGUSR1
sortix: good
exit: 0
§ ignore-chld-exec aix: good
SIG_IGN
dragonfly: good
SIG_DFL
freebsd: good
SIG_DFL
haiku: good
SIG_IGN
hurd: good
SIG_IGN
linux: good
SIG_IGN
macos: good
SIG_IGN
minix: good
SIG_IGN
netbsd: good
SIG_DFL
omnios: good
SIG_DFL
openbsd: good
SIG_DFL
solaris: good
SIG_DFL
sortix: good
SIG_IGN
§ ignore-raise aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ ignore-raise-unignore aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ ignore-usr1-exec aix: good
SIG_IGN
dragonfly: good
SIG_IGN
freebsd: good
SIG_IGN
haiku: good
SIG_IGN
hurd: good
SIG_IGN
linux: good
SIG_IGN
macos: good
SIG_IGN
minix: good
SIG_IGN
netbsd: good
SIG_IGN
omnios: good
SIG_IGN
openbsd: good
SIG_IGN
solaris: good
SIG_IGN
sortix: good
SIG_IGN
§ ppoll-block-close aix: bad
ppoll: ENOSYS
dragonfly: good
0 | POLLNVAL
freebsd: good
0 | POLLNVAL
haiku: good
0 | POLLNVAL
hurd: bad
Alarm clock
exit: 142
linux: good
0 | POLLNVAL
macos: bad
ppoll: ENOSYS
minix: bad
ppoll: ENOSYS
netbsd: good
0 | POLLNVAL
omnios: good
0 | POLLNVAL
openbsd: good
0 | POLLNVAL
solaris: good
0 | POLLNVAL
sortix: good
0 | POLLNVAL
§ ppoll-block-close-raise aix: bad
ppoll: ENOSYS
dragonfly: bad
0 | POLLNVAL
freebsd: good
SIGUSR1
0 | POLLNVAL
haiku: good
SIGUSR1
0 | POLLNVAL
hurd: good
SIGUSR1
ppoll: EINTR
linux: bad
0 | POLLNVAL
macos: bad
ppoll: ENOSYS
minix: bad
ppoll: ENOSYS
netbsd: good
SIGUSR1
0 | POLLNVAL
omnios: good
SIGUSR1
ppoll: EINTR
openbsd: good
SIGUSR1
0 | POLLNVAL
solaris: good
SIGUSR1
ppoll: EINTR
sortix: good
SIGUSR1
ppoll: EINTR
§ ppoll-block-raise aix: bad
ppoll: ENOSYS
dragonfly: good
SIGUSR1
ppoll: EINTR
freebsd: good
SIGUSR1
ppoll: EINTR
haiku: good
SIGUSR1
ppoll: EINTR
hurd: good
SIGUSR1
ppoll: EINTR
linux: good
SIGUSR1
ppoll: EINTR
macos: bad
ppoll: ENOSYS
minix: bad
ppoll: ENOSYS
netbsd: good
SIGUSR1
ppoll: EINTR
omnios: good
SIGUSR1
ppoll: EINTR
openbsd: good
SIGUSR1
ppoll: EINTR
solaris: good
SIGUSR1
ppoll: EINTR
sortix: good
SIGUSR1
ppoll: EINTR
§ ppoll-block-raise-write aix: bad
ppoll: ENOSYS
dragonfly: bad
0 | POLLIN
freebsd: good
SIGUSR1
0 | POLLIN
haiku: good
SIGUSR1
0 | POLLIN
hurd: good
SIGUSR1
0 | POLLIN
linux: bad
0 | POLLIN
macos: bad
ppoll: ENOSYS
minix: bad
ppoll: ENOSYS
netbsd: good
SIGUSR1
0 | POLLIN
omnios: good
SIGUSR1
ppoll: EINTR
openbsd: good
SIGUSR1
0 | POLLIN
solaris: good
SIGUSR1
ppoll: EINTR
sortix: good
SIGUSR1
ppoll: EINTR
§ ppoll-block-sleep-raise aix: bad
ppoll: ENOSYS
dragonfly: good
SIGUSR1
ppoll: EINTR
freebsd: good
SIGUSR1
ppoll: EINTR
haiku: good
SIGUSR1
ppoll: EINTR
hurd: good
SIGUSR1
ppoll: EINTR
linux: good
SIGUSR1
ppoll: EINTR
macos: bad
ppoll: ENOSYS
minix: bad
ppoll: ENOSYS
netbsd: good
SIGUSR1
ppoll: EINTR
omnios: good
SIGUSR1
ppoll: EINTR
openbsd: good
SIGUSR1
ppoll: EINTR
solaris: good
SIGUSR1
ppoll: EINTR
sortix: good
SIGUSR1
ppoll: EINTR
§ ppoll-block-sleep-raise-write aix: bad
ppoll: ENOSYS
dragonfly: good
SIGUSR1
ppoll: EINTR
freebsd: good
SIGUSR1
ppoll: EINTR
haiku: good
SIGUSR1
ppoll: EINTR
hurd: good
SIGUSR1
0 | POLLIN
linux: good
SIGUSR1
ppoll: EINTR
macos: bad
ppoll: ENOSYS
minix: bad
ppoll: ENOSYS
netbsd: good
SIGUSR1
ppoll: EINTR
omnios: good
SIGUSR1
ppoll: EINTR
openbsd: good
SIGUSR1
ppoll: EINTR
solaris: good
SIGUSR1
ppoll: EINTR
sortix: good
SIGUSR1
ppoll: EINTR
§ ppoll-block-sleep-write-raise aix: bad
ppoll: ENOSYS
dragonfly: bad
0 | POLLIN
freebsd: good
SIGUSR1
0 | POLLIN
haiku: good
SIGUSR1
ppoll: EINTR
hurd: good
SIGUSR1
0 | POLLIN
linux: good
SIGUSR1
ppoll: EINTR
macos: bad
ppoll: ENOSYS
minix: bad
ppoll: ENOSYS
netbsd: good
SIGUSR1
0 | POLLIN
omnios: good
SIGUSR1
ppoll: EINTR
openbsd: good
SIGUSR1
ppoll: EINTR
solaris: good
SIGUSR1
ppoll: EINTR
sortix: good
SIGUSR1
ppoll: EINTR
§ raise aix: good
SIGUSR1
dragonfly: good
SIGUSR1
freebsd: good
SIGUSR1
haiku: good
SIGUSR1
hurd: good
SIGUSR1
linux: good
SIGUSR1
macos: good
SIGUSR1
minix: good
SIGUSR1
netbsd: good
SIGUSR1
omnios: good
SIGUSR1
openbsd: good
SIGUSR1
solaris: good
SIGUSR1
sortix: good
SIGUSR1
§ sigaction-exec-flags aix: unknown
0 | SA_RESETHAND | SA_RESTART | SA_NODEFER
dragonfly: unknown
0 | SA_RESETHAND | SA_RESTART | SA_SIGINFO | SA_NODEFER
freebsd: unknown
0 | SA_RESETHAND | SA_RESTART | SA_NODEFER
haiku: unknown
0
hurd: unknown
0 | SA_RESTART
linux: unknown
0
macos: unknown
0 | SA_RESTART | SA_SIGINFO | SA_NODEFER
minix: unknown
0 | SA_RESETHAND | SA_RESTART | SA_NODEFER
netbsd: unknown
0 | SA_RESTART
omnios: unknown
0
openbsd: unknown
0 | SA_RESETHAND | SA_RESTART | SA_SIGINFO | SA_NODEFER
solaris: unknown
0
sortix: unknown
0
§ sigaltstack-exec aix: good
ss_sp==NULL SS_DISABLE
dragonfly: bad
ss_sp==NULL SA_ONSTACK SS_DISABLE
freebsd: bad
ss_sp==NULL SA_ONSTACK SS_DISABLE
haiku: good
ss_sp==NULL SS_DISABLE
hurd: good
ss_sp==NULL SS_DISABLE
linux: good
ss_sp==NULL SS_DISABLE
macos: good
ss_sp==NULL SS_DISABLE
minix: bad
sigaltstack
netbsd: good
ss_sp==NULL SS_DISABLE
omnios: good
ss_sp==NULL SS_DISABLE
openbsd: bad
ss_sp==NULL SA_ONSTACK SS_DISABLE
solaris: good
ss_sp==NULL SS_DISABLE
sortix: good
ss_sp==NULL SS_DISABLE
§ sigaltstack-raise aix: good
ss_sp!=NULL SS_ONSTACK
dragonfly: good
ss_sp!=NULL SS_ONSTACK
freebsd: good
ss_sp!=NULL SS_ONSTACK
haiku: good
ss_sp!=NULL SS_ONSTACK
hurd: good
ss_sp!=NULL SS_ONSTACK
linux: good
ss_sp!=NULL SS_ONSTACK
macos: good
ss_sp!=NULL SS_ONSTACK
minix: bad
sigaltstack
netbsd: good
ss_sp!=NULL SS_ONSTACK
omnios: good
ss_sp!=NULL SS_ONSTACK
openbsd: good
ss_sp!=NULL SS_ONSTACK
solaris: good
ss_sp!=NULL SS_ONSTACK
sortix: good
ss_sp!=NULL SS_ONSTACK
§ sigaltstack-raise-exec aix: good
ss_sp==NULL SS_DISABLE
dragonfly: bad
ss_sp==NULL SA_ONSTACK SS_DISABLE
freebsd: bad
ss_sp==NULL SA_ONSTACK SS_DISABLE
haiku: good
ss_sp==NULL SS_DISABLE
hurd: good
ss_sp==NULL SS_DISABLE
linux: good
ss_sp==NULL SS_DISABLE
macos: good
ss_sp==NULL SS_DISABLE
minix: bad
sigaltstack
netbsd: good
ss_sp==NULL SS_DISABLE
omnios: good
ss_sp==NULL SS_DISABLE
openbsd: bad
ss_sp==NULL SA_ONSTACK SS_DISABLE
solaris: good
ss_sp==NULL SS_DISABLE
sortix: good
ss_sp==NULL SS_DISABLE

udp

This suite tests the UDP stack.

Open questions:

  • What should happen if you bind to the broadcast address 255.255.255.255? It is an explicitly forbidden source address. Should it fail with EADDRNOTAVAIL, or some other error, or succeed (and in which case, what does it mean?). (bind-broadcast-0-getpeername, bind-broadcast-0-getsockname)
  • What should happen if you connect to the broadcast address 255.255.255.255? Must SO_BROADCAST be set first? (connect-broadcast-getpeername-so-broadcast, connect-broadcast-getpeername, connect-broadcast-getsockname-so-broadcast, connect-broadcast-getsockname)
  • What should happen if you bind to the first address in the lan subnet? (bind-lan-subnet-first)
  • What should happen if you connect to the any address 0.0.0.0? Is it the same as connecting to the loopback address? (connect-any-getpeername and connect-any-getsockname)
  • What should happen if you connect to port 0? Does connecting to port 0 unconnect the socket on DragonFly and Linux? (connect-any-0-getpeername, connect-any-0-getsockname, connect-loopback-0-getpeername, connect-loopback-0-getsockname)
  • What should happen if you send to the any address 0.0.0.0? (sendto-any-so-error)
  • What should happen if you send to port 0? (sendto-loopback-0-so-error)
  • Should it be possible to shutdown a socket without having connected it?
  • Should reading on a socket shutdown for read return 0 or should it fail with EWOULDBLOCK?
  • Should writing to socket shutdown for write send SIGPIPE in addition to failing with ESPIPE?
  • After shutdown for read, should data already received be avalilable for read? Some systems deliver already received asyncronous errors after shutdown, yet don't deliver already received data after shutdown.
  • After shutdown for read, should data be received? Should POLLIN be set if data is received yet recv of it would return 0.
  • Should POLLOUT be set after shutdown for write? Should POLLHUP be set?
  • Should POLLIN be set after shutdown for write if there's already received data?
  • If an asynchronous socket error is pending, which of POLLIN, POLLOUT, POLLERR should be set?
  • Should asynchronous socket errors be delivered on connect?
  • What should happen if you connect to an address on the loopback interface and then reconnect to the public internet? What happens to the locally bound address? Is the socket rebound? Or does the connect fail because there's no longer a valid route from the loopback interface to the public internet.
  • If a socket is connected, can you supply a destination address to sendto? What if the destination address is the current remote address?
  • What is the local socket name after connect to loopback and then unconnect?
  • How does unconnecting work? Can you pass a sa_family_t set to AF_UNSPEC to connect, or do you need to wrap it in a struct sockaddr, or a struct sockaddr_in?
  • What happens if you bind after unconnect?
  • Does unconnect on a freshly made socket bind the socket? (unconnect-getsockname)
  • Can you unconnect a socket that hasn't been connected yet? (unconnect-getsockname)
  • If a socket is shutdown for read, should recv return any data received after the shutdown.
  • If you receive on freshly made socket, what address should getsockname return?
  • Can you bind to the any address in the loopback network? (bind-loopback-other)
  • Can you bind to the broadcast address in the loopback network? (bind-loopback-broadcast)
  • Does SO_REUSEADDR need to set on both sockets or just the second? (bind-conflict-any-loopback-so-reuseaddr, bind-conflict-any-loopback-so-reuseaddr-both)
  • Does SO_REUSEADDR allow the same address and port to be bound twice? (bind-conflict-loopback-loopback-so-reuseaddr, bind-conflict-loopback-loopback-so-reuseaddr-both)

Running this suite has the following side effects:

  • Datagrams containing just the byte 'x' are sent to 8.8.8.8:53 (Google DNS) because I needed a legitimate address that would not send back any ICMP connection refused address. Please configure this address in udp/udp.h using BLACKHOLE_HOST and BLACKHOLE_PORT to a site of your choice.
  • Datagrams containing just the byte 'x' are sent to port 65534 and port 65535 on the loopback address 127.0.0.1.
  • This suite requires port 65535 on the loopback address 127.0.0.1 to be unused.
  • UDP sockets will be bound to the loopback interface and on the interface leading to the public internet.
aix
AIX 3 00F9C1964C00
dragonfly
DragonFly 6.4-RELEASE x86_64
freebsd
FreeBSD 14.1-RELEASE amd64
haiku
Haiku 1 x86_64
hurd
GNU 0.9 i686-AT386
linux
Linux 6.11.10-amd64 x86_64
macos
Darwin 24.1.0 arm64
minix
Minix 3.4.0 i386
netbsd
NetBSD 10.0 amd64
omnios
SunOS 5.11 i86pc
openbsd
OpenBSD 7.6 amd64
solaris
SunOS 5.11 i86pc
sortix
Sortix 1.1dev x86_64
§ accept aix: good
accept: ENOTSUP
dragonfly: bad
accept: EINVAL
freebsd: bad
accept: EINVAL
haiku: bad
accept: EINVAL
hurd: good
accept: ENOTSUP
linux: good
accept: ENOTSUP
macos: good
accept: ENOTSUP
minix: good
accept: ENOTSUP
netbsd: good
accept: ENOTSUP
omnios: good
accept: ENOTSUP
openbsd: bad
accept: EINVAL
solaris: good
accept: ENOTSUP
sortix: good
accept: ENOTSUP
§ accept-nonblock aix: good
accept: ENOTSUP
dragonfly: bad
accept: EINVAL
freebsd: bad
accept: EINVAL
haiku: bad
accept: EINVAL
hurd: good
accept: ENOTSUP
linux: good
accept: ENOTSUP
macos: good
accept: ENOTSUP
minix: good
accept: ENOTSUP
netbsd: good
accept: ENOTSUP
omnios: good
accept: ENOTSUP
openbsd: bad
accept: EINVAL
solaris: good
accept: ENOTSUP
sortix: good
accept: ENOTSUP
§ bind-any-0 aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ bind-any-0-getpeername aix: good
getsockname: ENOTCONN
dragonfly: good
getsockname: ENOTCONN
freebsd: good
getsockname: ENOTCONN
haiku: good
getsockname: ENOTCONN
hurd: good
getsockname: ENOTCONN
linux: good
getsockname: ENOTCONN
macos: good
getsockname: ENOTCONN
minix: good
getsockname: ENOTCONN
netbsd: good
getsockname: ENOTCONN
omnios: good
getsockname: ENOTCONN
openbsd: good
getsockname: ENOTCONN
solaris: good
getsockname: ENOTCONN
sortix: good
getsockname: ENOTCONN
§ bind-any-0-getsockname aix: good
0.0.0.0:non-zero
dragonfly: good
0.0.0.0:non-zero
freebsd: good
0.0.0.0:non-zero
haiku: good
0.0.0.0:non-zero
hurd: good
0.0.0.0:non-zero
linux: good
0.0.0.0:non-zero
macos: good
0.0.0.0:non-zero
minix: good
0.0.0.0:non-zero
netbsd: good
0.0.0.0:non-zero
omnios: good
0.0.0.0:non-zero
openbsd: good
0.0.0.0:non-zero
solaris: good
0.0.0.0:non-zero
sortix: good
0.0.0.0:non-zero
§ bind-any-0-unbind aix: good
bind AF_UNSPEC: EINVAL
dragonfly: good
bind AF_UNSPEC: EINVAL
freebsd: good
bind AF_UNSPEC: EINVAL
haiku: good
bind AF_UNSPEC: EINVAL
hurd: good
bind AF_UNSPEC: EINVAL
linux: good
bind AF_UNSPEC: EINVAL
macos: good
bind AF_UNSPEC: EINVAL
minix: good
bind AF_UNSPEC: EINVAL
netbsd: good
bind AF_UNSPEC: EAFNOSUPPORT
omnios: good
bind AF_UNSPEC: EINVAL
openbsd: good
bind AF_UNSPEC: EINVAL
solaris: good
bind AF_UNSPEC: EAFNOSUPPORT
sortix: good
bind AF_UNSPEC: EINVAL
§ bind-broadcast-0-getpeername aix: unknown
bind: EADDRNOTAVAIL
dragonfly: unknown
bind: EADDRNOTAVAIL
freebsd: unknown
bind: EADDRNOTAVAIL
haiku: unknown
bind: EADDRNOTAVAIL
hurd: unknown
getpeername: ENOTCONN
linux: unknown
getpeername: ENOTCONN
macos: unknown
bind: EADDRNOTAVAIL
minix: unknown
bind: EADDRNOTAVAIL
netbsd: unknown
bind: EADDRNOTAVAIL
omnios: unknown
getpeername: ENOTCONN
openbsd: unknown
getpeername: ENOTCONN
solaris: unknown
getpeername: ENOTCONN
sortix: unknown
getpeername: ENOTCONN
§ bind-broadcast-0-getsockname aix: unknown
bind: EADDRNOTAVAIL
dragonfly: unknown
bind: EADDRNOTAVAIL
freebsd: unknown
bind: EADDRNOTAVAIL
haiku: unknown
bind: EADDRNOTAVAIL
hurd: unknown
255.255.255.255:non-zero
linux: unknown
255.255.255.255:non-zero
macos: unknown
bind: EADDRNOTAVAIL
minix: unknown
bind: EADDRNOTAVAIL
netbsd: unknown
bind: EADDRNOTAVAIL
omnios: unknown
255.255.255.255:non-zero
openbsd: unknown
255.255.255.255:non-zero
solaris: unknown
255.255.255.255:non-zero
sortix: unknown
255.255.255.255:non-zero
§ bind-conflict-any-any aix: good
second bind: EADDRINUSE
dragonfly: good
second bind: EADDRINUSE
freebsd: good
second bind: EADDRINUSE
haiku: good
second bind: EADDRINUSE
hurd: good
second bind: EADDRINUSE
linux: good
second bind: EADDRINUSE
macos: good
second bind: EADDRINUSE
minix: good
second bind: EADDRINUSE
netbsd: good
second bind: EADDRINUSE
omnios: good
second bind: EADDRINUSE
openbsd: good
second bind: EADDRINUSE
solaris: good
second bind: EADDRINUSE
sortix: good
second bind: EADDRINUSE
§ bind-conflict-any-any-so-reuseaddr aix: unknown
second bind: EADDRINUSE
dragonfly: unknown
second bind: EADDRINUSE
freebsd: unknown
second bind: EADDRINUSE
haiku: unknown
second bind: EADDRINUSE
hurd: unknown
second bind: EADDRINUSE
linux: unknown
second bind: EADDRINUSE
macos: unknown
second bind: EADDRINUSE
minix: unknown
second bind: EADDRINUSE
netbsd: unknown
second bind: EADDRINUSE
omnios: unknown
exit: 0
openbsd: unknown
second bind: EADDRINUSE
solaris: unknown
exit: 0
sortix: unknown
second bind: EADDRINUSE
§ bind-conflict-any-any-so-reuseaddr-both aix: unknown
second bind: EADDRINUSE
dragonfly: unknown
second bind: EADDRINUSE
freebsd: unknown
second bind: EADDRINUSE
haiku: unknown
second bind: EADDRINUSE
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
second bind: EADDRINUSE
minix: unknown
exit: 0
netbsd: unknown
second bind: EADDRINUSE
omnios: unknown
exit: 0
openbsd: unknown
second bind: EADDRINUSE
solaris: unknown
exit: 0
sortix: unknown
second bind: EADDRINUSE
§ bind-conflict-any-broadcast aix: unknown
second bind: EADDRNOTAVAIL
dragonfly: unknown
second bind: EADDRNOTAVAIL
freebsd: unknown
second bind: EADDRNOTAVAIL
haiku: unknown
second bind: EADDRINUSE
hurd: unknown
second bind: EADDRINUSE
linux: unknown
second bind: EADDRINUSE
macos: unknown
second bind: EADDRNOTAVAIL
minix: unknown
second bind: EADDRNOTAVAIL
netbsd: unknown
second bind: EADDRNOTAVAIL
omnios: unknown
second bind: EADDRINUSE
openbsd: unknown
second bind: EADDRINUSE
solaris: unknown
second bind: EADDRINUSE
sortix: unknown
second bind: EADDRINUSE
§ bind-conflict-any-broadcast-so-reuseaddr aix: unknown
second bind: EADDRNOTAVAIL
dragonfly: unknown
second bind: EADDRNOTAVAIL
freebsd: unknown
second bind: EADDRNOTAVAIL
haiku: unknown
second bind: EADDRINUSE
hurd: unknown
second bind: EADDRINUSE
linux: unknown
second bind: EADDRINUSE
macos: unknown
second bind: EADDRNOTAVAIL
minix: unknown
second bind: EADDRNOTAVAIL
netbsd: unknown
second bind: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
exit: 0
solaris: unknown
exit: 0
sortix: unknown
second bind: EADDRINUSE
§ bind-conflict-any-broadcast-so-reuseaddr-both aix: unknown
second bind: EADDRNOTAVAIL
dragonfly: unknown
second bind: EADDRNOTAVAIL
freebsd: unknown
second bind: EADDRNOTAVAIL
haiku: unknown
second bind: EADDRNOTAVAIL
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
second bind: EADDRNOTAVAIL
minix: unknown
second bind: EADDRNOTAVAIL
netbsd: unknown
second bind: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
exit: 0
solaris: unknown
exit: 0
sortix: unknown
exit: 0
§ bind-conflict-any-loopback aix: good
second bind: EADDRINUSE
dragonfly: good
second bind: EADDRINUSE
freebsd: good
second bind: EADDRINUSE
haiku: good
second bind: EADDRINUSE
hurd: good
second bind: EADDRINUSE
linux: good
second bind: EADDRINUSE
macos: good
second bind: EADDRINUSE
minix: bad
exit: 0
netbsd: good
second bind: EADDRINUSE
omnios: good
second bind: EADDRINUSE
openbsd: good
second bind: EADDRINUSE
solaris: good
second bind: EADDRINUSE
sortix: good
second bind: EADDRINUSE
§ bind-conflict-any-loopback-so-reuseaddr aix: unknown
exit: 0
dragonfly: unknown
exit: 0
freebsd: unknown
exit: 0
haiku: unknown
second bind: EADDRINUSE
hurd: unknown
second bind: EADDRINUSE
linux: unknown
second bind: EADDRINUSE
macos: unknown
exit: 0
minix: unknown
exit: 0
netbsd: unknown
exit: 0
omnios: unknown
exit: 0
openbsd: unknown
exit: 0
solaris: unknown
exit: 0
sortix: unknown
second bind: EADDRINUSE
§ bind-conflict-any-loopback-so-reuseaddr-both aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ bind-conflict-broadcast-any aix: unknown
first bind: EADDRNOTAVAIL
dragonfly: unknown
first bind: EADDRNOTAVAIL
freebsd: unknown
first bind: EADDRNOTAVAIL
haiku: unknown
first bind: EADDRNOTAVAIL
hurd: unknown
second bind: EADDRINUSE
linux: unknown
second bind: EADDRINUSE
macos: unknown
first bind: EADDRNOTAVAIL
minix: unknown
first bind: EADDRNOTAVAIL
netbsd: unknown
first bind: EADDRNOTAVAIL
omnios: unknown
second bind: EADDRINUSE
openbsd: unknown
second bind: EADDRINUSE
solaris: unknown
second bind: EADDRINUSE
sortix: unknown
second bind: EADDRINUSE
§ bind-conflict-broadcast-any-so-reuseaddr aix: unknown
first bind: EADDRNOTAVAIL
dragonfly: unknown
first bind: EADDRNOTAVAIL
freebsd: unknown
first bind: EADDRNOTAVAIL
haiku: unknown
first bind: EADDRNOTAVAIL
hurd: unknown
second bind: EADDRINUSE
linux: unknown
second bind: EADDRINUSE
macos: unknown
first bind: EADDRNOTAVAIL
minix: unknown
first bind: EADDRNOTAVAIL
netbsd: unknown
first bind: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
exit: 0
solaris: unknown
exit: 0
sortix: unknown
second bind: EADDRINUSE
§ bind-conflict-broadcast-any-so-reuseaddr-both aix: unknown
first bind: EADDRNOTAVAIL
dragonfly: unknown
first bind: EADDRNOTAVAIL
freebsd: unknown
first bind: EADDRNOTAVAIL
haiku: unknown
first bind: EADDRNOTAVAIL
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
first bind: EADDRNOTAVAIL
minix: unknown
first bind: EADDRNOTAVAIL
netbsd: unknown
first bind: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
exit: 0
solaris: unknown
exit: 0
sortix: unknown
exit: 0
§ bind-conflict-broadcast-broadcast aix: unknown
first bind: EADDRNOTAVAIL
dragonfly: unknown
first bind: EADDRNOTAVAIL
freebsd: unknown
first bind: EADDRNOTAVAIL
haiku: unknown
first bind: EADDRNOTAVAIL
hurd: unknown
second bind: EADDRINUSE
linux: unknown
second bind: EADDRINUSE
macos: unknown
first bind: EADDRNOTAVAIL
minix: unknown
first bind: EADDRNOTAVAIL
netbsd: unknown
first bind: EADDRNOTAVAIL
omnios: unknown
second bind: EADDRINUSE
openbsd: unknown
second bind: EADDRINUSE
solaris: unknown
second bind: EADDRINUSE
sortix: unknown
second bind: EADDRINUSE
§ bind-conflict-broadcast-broadcast-so-reuseaddr aix: unknown
first bind: EADDRNOTAVAIL
dragonfly: unknown
first bind: EADDRNOTAVAIL
freebsd: unknown
first bind: EADDRNOTAVAIL
haiku: unknown
first bind: EADDRNOTAVAIL
hurd: unknown
second bind: EADDRINUSE
linux: unknown
second bind: EADDRINUSE
macos: unknown
first bind: EADDRNOTAVAIL
minix: unknown
first bind: EADDRNOTAVAIL
netbsd: unknown
first bind: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
second bind: EADDRINUSE
solaris: unknown
exit: 0
sortix: unknown
second bind: EADDRINUSE
§ bind-conflict-broadcast-broadcast-so-reuseaddr-both aix: unknown
first bind: EADDRNOTAVAIL
dragonfly: unknown
first bind: EADDRNOTAVAIL
freebsd: unknown
first bind: EADDRNOTAVAIL
haiku: unknown
first bind: EADDRNOTAVAIL
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
first bind: EADDRNOTAVAIL
minix: unknown
first bind: EADDRNOTAVAIL
netbsd: unknown
first bind: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
second bind: EADDRINUSE
solaris: unknown
exit: 0
sortix: unknown
second bind: EADDRINUSE
§ bind-conflict-broadcast-loopback aix: unknown
first bind: EADDRNOTAVAIL
dragonfly: unknown
first bind: EADDRNOTAVAIL
freebsd: unknown
first bind: EADDRNOTAVAIL
haiku: unknown
first bind: EADDRNOTAVAIL
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
first bind: EADDRNOTAVAIL
minix: unknown
first bind: EADDRNOTAVAIL
netbsd: unknown
first bind: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
exit: 0
solaris: unknown
exit: 0
sortix: unknown
exit: 0
§ bind-conflict-broadcast-loopback-so-reuseaddr aix: unknown
first bind: EADDRNOTAVAIL
dragonfly: unknown
first bind: EADDRNOTAVAIL
freebsd: unknown
first bind: EADDRNOTAVAIL
haiku: unknown
first bind: EADDRNOTAVAIL
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
first bind: EADDRNOTAVAIL
minix: unknown
first bind: EADDRNOTAVAIL
netbsd: unknown
first bind: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
exit: 0
solaris: unknown
exit: 0
sortix: unknown
exit: 0
§ bind-conflict-broadcast-loopback-so-reuseaddr-both aix: unknown
first bind: EADDRNOTAVAIL
dragonfly: unknown
first bind: EADDRNOTAVAIL
freebsd: unknown
first bind: EADDRNOTAVAIL
haiku: unknown
first bind: EADDRNOTAVAIL
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
first bind: EADDRNOTAVAIL
minix: unknown
first bind: EADDRNOTAVAIL
netbsd: unknown
first bind: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
exit: 0
solaris: unknown
exit: 0
sortix: unknown
exit: 0
§ bind-conflict-loopback-any aix: good
second bind: EADDRINUSE
dragonfly: good
second bind: EADDRINUSE
freebsd: good
second bind: EADDRINUSE
haiku: good
second bind: EADDRINUSE
hurd: good
second bind: EADDRINUSE
linux: good
second bind: EADDRINUSE
macos: good
second bind: EADDRINUSE
minix: bad
exit: 0
netbsd: good
second bind: EADDRINUSE
omnios: good
second bind: EADDRINUSE
openbsd: good
second bind: EADDRINUSE
solaris: good
second bind: EADDRINUSE
sortix: good
second bind: EADDRINUSE
§ bind-conflict-loopback-any-so-reuseaddr aix: unknown
exit: 0
dragonfly: unknown
exit: 0
freebsd: unknown
exit: 0
haiku: unknown
second bind: EADDRINUSE
hurd: unknown
second bind: EADDRINUSE
linux: unknown
second bind: EADDRINUSE
macos: unknown
exit: 0
minix: unknown
exit: 0
netbsd: unknown
exit: 0
omnios: unknown
exit: 0
openbsd: unknown
exit: 0
solaris: unknown
exit: 0
sortix: unknown
second bind: EADDRINUSE
§ bind-conflict-loopback-any-so-reuseaddr-both aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ bind-conflict-loopback-broadcast aix: unknown
second bind: EADDRNOTAVAIL
dragonfly: unknown
second bind: EADDRNOTAVAIL
freebsd: unknown
second bind: EADDRNOTAVAIL
haiku: bad
second bind: EADDRINUSE
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
second bind: EADDRNOTAVAIL
minix: unknown
second bind: EADDRNOTAVAIL
netbsd: unknown
second bind: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
exit: 0
solaris: unknown
exit: 0
sortix: unknown
exit: 0
§ bind-conflict-loopback-broadcast-so-reuseaddr aix: unknown
second bind: EADDRNOTAVAIL
dragonfly: unknown
second bind: EADDRNOTAVAIL
freebsd: unknown
second bind: EADDRNOTAVAIL
haiku: bad
second bind: EADDRINUSE
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
second bind: EADDRNOTAVAIL
minix: unknown
second bind: EADDRNOTAVAIL
netbsd: unknown
second bind: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
exit: 0
solaris: unknown
exit: 0
sortix: unknown
exit: 0
§ bind-conflict-loopback-broadcast-so-reuseaddr-both aix: unknown
second bind: EADDRNOTAVAIL
dragonfly: unknown
second bind: EADDRNOTAVAIL
freebsd: unknown
second bind: EADDRNOTAVAIL
haiku: unknown
second bind: EADDRNOTAVAIL
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
second bind: EADDRNOTAVAIL
minix: unknown
second bind: EADDRNOTAVAIL
netbsd: unknown
second bind: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
exit: 0
solaris: unknown
exit: 0
sortix: unknown
exit: 0
§ bind-conflict-loopback-loopback aix: good
second bind: EADDRINUSE
dragonfly: good
second bind: EADDRINUSE
freebsd: good
second bind: EADDRINUSE
haiku: good
second bind: EADDRINUSE
hurd: good
second bind: EADDRINUSE
linux: good
second bind: EADDRINUSE
macos: good
second bind: EADDRINUSE
minix: good
second bind: EADDRINUSE
netbsd: good
second bind: EADDRINUSE
omnios: good
second bind: EADDRINUSE
openbsd: good
second bind: EADDRINUSE
solaris: good
second bind: EADDRINUSE
sortix: good
second bind: EADDRINUSE
§ bind-conflict-loopback-loopback-so-reuseaddr aix: unknown
second bind: EADDRINUSE
dragonfly: unknown
second bind: EADDRINUSE
freebsd: unknown
second bind: EADDRINUSE
haiku: unknown
second bind: EADDRINUSE
hurd: unknown
second bind: EADDRINUSE
linux: unknown
second bind: EADDRINUSE
macos: unknown
second bind: EADDRINUSE
minix: unknown
second bind: EADDRINUSE
netbsd: unknown
second bind: EADDRINUSE
omnios: unknown
exit: 0
openbsd: unknown
second bind: EADDRINUSE
solaris: unknown
exit: 0
sortix: unknown
second bind: EADDRINUSE
§ bind-conflict-loopback-loopback-so-reuseaddr-both aix: unknown
second bind: EADDRINUSE
dragonfly: unknown
second bind: EADDRINUSE
freebsd: unknown
second bind: EADDRINUSE
haiku: unknown
second bind: EADDRINUSE
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
second bind: EADDRINUSE
minix: unknown
exit: 0
netbsd: unknown
second bind: EADDRINUSE
omnios: unknown
exit: 0
openbsd: unknown
second bind: EADDRINUSE
solaris: unknown
exit: 0
sortix: unknown
second bind: EADDRINUSE
§ bind-connect-self aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ bind-connect-self-send aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ bind-connect-self-send-poll aix: good
0 | POLLIN | POLLOUT
dragonfly: good
0 | POLLIN | POLLOUT
freebsd: good
0 | POLLIN | POLLOUT
haiku: good
0 | POLLIN | POLLOUT
hurd: good
0 | POLLIN | POLLOUT
linux: good
0 | POLLIN | POLLOUT
macos: good
0 | POLLIN | POLLOUT
minix: good
0 | POLLIN | POLLOUT
netbsd: good
0 | POLLIN | POLLOUT
omnios: good
0 | POLLIN | POLLOUT
openbsd: good
0 | POLLIN | POLLOUT
solaris: good
0 | POLLIN | POLLOUT
sortix: good
0 | POLLIN | POLLOUT
§ bind-connect-self-send-recv aix: good
x
dragonfly: good
x
freebsd: good
x
haiku: good
x
hurd: good
x
linux: good
x
macos: good
x
minix: good
x
netbsd: good
x
omnios: good
x
openbsd: good
x
solaris: good
x
sortix: good
x
§ bind-connect-self-send-shutdown-r-poll aix: unknown
0 | POLLIN | POLLOUT
dragonfly: unknown
0 | POLLIN | POLLOUT
freebsd: unknown
0 | POLLIN | POLLOUT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
0 | POLLIN | POLLOUT
linux: unknown
0 | POLLIN | POLLOUT
macos: unknown
0 | POLLIN | POLLHUP
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
0 | POLLIN | POLLOUT
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
0 | POLLIN | POLLOUT
sortix: unknown
0 | POLLIN | POLLOUT
§ bind-connect-self-send-shutdown-r-recv aix: unknown
EOF
dragonfly: unknown
EOF
freebsd: unknown
EOF
haiku: bad
shutdown: ENOTSUP
hurd: unknown
x
linux: unknown
x
macos: unknown
EOF
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
EOF
openbsd: unknown
EOF
solaris: unknown
x
sortix: unknown
EOF
§ bind-connect-self-send-shutdown-r-recv-recv aix: unknown
first recv: EOF
dragonfly: unknown
first recv: EOF
freebsd: unknown
first recv: EOF
haiku: bad
shutdown: ENOTSUP
hurd: bad
first recv: x
second recv: EINVAL
linux: unknown
first recv: x
second recv: EWOULDBLOCK
macos: unknown
first recv: EOF
minix: unknown
first recv: EOF
netbsd: unknown
first recv: EOF
omnios: unknown
first recv: EOF
openbsd: unknown
first recv: EOF
solaris: unknown
first recv: x
second recv: EWOULDBLOCK
sortix: unknown
first recv: EOF
§ bind-connect-self-send-shutdown-rw-poll aix: unknown
0 | POLLIN | POLLOUT
dragonfly: unknown
0 | POLLIN | POLLHUP
freebsd: unknown
0 | POLLIN | POLLHUP
haiku: bad
shutdown: ENOTSUP
hurd: unknown
0 | POLLIN
linux: bad
0 | POLLIN | POLLOUT | POLLHUP
macos: unknown
0 | POLLIN | POLLHUP
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
0 | POLLIN | POLLOUT
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
0 | POLLIN | POLLOUT
sortix: unknown
0 | POLLIN | POLLHUP
§ bind-connect-self-send-shutdown-rw-recv aix: unknown
EOF
dragonfly: unknown
EOF
freebsd: unknown
EOF
haiku: bad
shutdown: ENOTSUP
hurd: unknown
x
linux: unknown
x
macos: unknown
EOF
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
EOF
openbsd: unknown
EOF
solaris: unknown
x
sortix: unknown
EOF
§ bind-connect-self-send-shutdown-rw-recv-recv aix: unknown
first recv: EOF
dragonfly: unknown
first recv: EOF
freebsd: unknown
first recv: EOF
haiku: bad
shutdown: ENOTSUP
hurd: bad
first recv: x
second recv: EINVAL
linux: unknown
first recv: x
second recv: EWOULDBLOCK
macos: unknown
first recv: EOF
minix: unknown
first recv: EOF
netbsd: unknown
first recv: EOF
omnios: unknown
first recv: EOF
openbsd: unknown
first recv: EOF
solaris: unknown
first recv: x
second recv: EWOULDBLOCK
sortix: unknown
first recv: EOF
§ bind-connect-self-shutdown-r-send-poll aix: unknown
0 | POLLIN | POLLOUT
dragonfly: unknown
0 | POLLIN | POLLOUT
freebsd: unknown
0 | POLLIN | POLLOUT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
0 | POLLIN | POLLOUT
linux: unknown
0 | POLLIN | POLLOUT
macos: unknown
0 | POLLIN | POLLHUP
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
0 | POLLIN | POLLOUT
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
0 | POLLIN | POLLOUT
sortix: unknown
0 | POLLIN | POLLOUT
§ bind-connect-self-shutdown-r-send-recv aix: unknown
EOF
dragonfly: unknown
EOF
freebsd: unknown
EOF
haiku: bad
shutdown: ENOTSUP
hurd: bad
x
linux: bad
x
macos: unknown
EOF
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
EOF
openbsd: unknown
EOF
solaris: bad
x
sortix: unknown
EOF
§ bind-lan-subnet-broadcast aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: bad
bind: EADDRNOTAVAIL
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ bind-lan-subnet-first aix: unknown
bind: EADDRNOTAVAIL
dragonfly: unknown
bind: EADDRNOTAVAIL
freebsd: unknown
bind: EADDRNOTAVAIL
haiku: unknown
bind: EADDRNOTAVAIL
hurd: unknown
exit: 0
linux: unknown
bind: EADDRNOTAVAIL
macos: unknown
bind: EADDRNOTAVAIL
minix: unknown
bind: EADDRNOTAVAIL
netbsd: unknown
bind: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
bind: EADDRNOTAVAIL
solaris: unknown
exit: 0
sortix: unknown
bind: EADDRNOTAVAIL
§ bind-lan-subnet-wrong aix: good
bind: EADDRNOTAVAIL
dragonfly: good
bind: EADDRNOTAVAIL
freebsd: good
bind: EADDRNOTAVAIL
haiku: good
bind: EADDRNOTAVAIL
hurd: good
bind: EADDRNOTAVAIL
linux: good
bind: EADDRNOTAVAIL
macos: good
bind: EADDRNOTAVAIL
minix: good
bind: EADDRNOTAVAIL
netbsd: good
bind: EADDRNOTAVAIL
omnios: good
bind: EADDRNOTAVAIL
openbsd: good
bind: EADDRNOTAVAIL
solaris: good
bind: EADDRNOTAVAIL
sortix: good
bind: EADDRNOTAVAIL
§ bind-loopback-0-getpeername aix: good
getsockname: ENOTCONN
dragonfly: good
getsockname: ENOTCONN
freebsd: good
getsockname: ENOTCONN
haiku: good
getsockname: ENOTCONN
hurd: good
getsockname: ENOTCONN
linux: good
getsockname: ENOTCONN
macos: good
getsockname: ENOTCONN
minix: good
getsockname: ENOTCONN
netbsd: good
getsockname: ENOTCONN
omnios: good
getsockname: ENOTCONN
openbsd: good
getsockname: ENOTCONN
solaris: good
getsockname: ENOTCONN
sortix: good
getsockname: ENOTCONN
§ bind-loopback-0-getsockname aix: good
127.0.0.1:non-zero
dragonfly: good
127.0.0.1:non-zero
freebsd: good
127.0.0.1:non-zero
haiku: good
127.0.0.1:non-zero
hurd: good
127.0.0.1:non-zero
linux: good
127.0.0.1:non-zero
macos: good
127.0.0.1:non-zero
minix: good
127.0.0.1:non-zero
netbsd: good
127.0.0.1:non-zero
omnios: good
127.0.0.1:non-zero
openbsd: good
127.0.0.1:non-zero
solaris: good
127.0.0.1:non-zero
sortix: good
127.0.0.1:non-zero
§ bind-loopback-broadcast aix: unknown
exit: 0
dragonfly: unknown
bind: EADDRNOTAVAIL
freebsd: unknown
bind: EADDRNOTAVAIL
haiku: unknown
bind: EADDRNOTAVAIL
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
bind: EADDRNOTAVAIL
minix: unknown
bind: EADDRNOTAVAIL
netbsd: unknown
bind: EADDRNOTAVAIL
omnios: unknown
bind: EADDRNOTAVAIL
openbsd: unknown
bind: EADDRNOTAVAIL
solaris: unknown
bind: EADDRNOTAVAIL
sortix: unknown
exit: 0
§ bind-loopback-other aix: unknown
bind: EADDRNOTAVAIL
dragonfly: unknown
bind: EADDRNOTAVAIL
freebsd: unknown
bind: EADDRNOTAVAIL
haiku: unknown
bind: EADDRNOTAVAIL
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
bind: EADDRNOTAVAIL
minix: unknown
bind: EADDRNOTAVAIL
netbsd: unknown
bind: EADDRNOTAVAIL
omnios: unknown
bind: EADDRNOTAVAIL
openbsd: unknown
bind: EADDRNOTAVAIL
solaris: unknown
bind: EADDRNOTAVAIL
sortix: unknown
bind: EADDRNOTAVAIL
§ bind-rebind aix: good
second bind: EINVAL
dragonfly: good
second bind: EINVAL
freebsd: good
second bind: EINVAL
haiku: good
second bind: EINVAL
hurd: good
second bind: EINVAL
linux: good
second bind: EINVAL
macos: good
second bind: EINVAL
minix: good
second bind: EINVAL
netbsd: good
second bind: EINVAL
omnios: good
second bind: EINVAL
openbsd: good
second bind: EINVAL
solaris: good
second bind: EINVAL
sortix: good
second bind: EINVAL
§ bind-sendto-self aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ bind-sendto-self-recv aix: good
x
dragonfly: good
x
freebsd: good
x
haiku: good
x
hurd: good
x
linux: good
x
macos: good
x
minix: good
x
netbsd: good
x
omnios: good
x
openbsd: good
x
solaris: good
x
sortix: good
x
§ bind-socket-sendto-first-poll aix: good
0 | POLLIN | POLLOUT
dragonfly: good
0 | POLLIN | POLLOUT
freebsd: good
0 | POLLIN | POLLOUT
haiku: good
0 | POLLIN | POLLOUT
hurd: good
0 | POLLIN | POLLOUT
linux: good
0 | POLLIN | POLLOUT
macos: good
0 | POLLIN | POLLOUT
minix: good
0 | POLLIN | POLLOUT
netbsd: good
0 | POLLIN | POLLOUT
omnios: good
0 | POLLIN | POLLOUT
openbsd: good
0 | POLLIN | POLLOUT
solaris: good
0 | POLLIN | POLLOUT
sortix: good
0 | POLLIN | POLLOUT
§ bind-socket-sendto-first-recv aix: good
x
dragonfly: good
x
freebsd: good
x
haiku: good
x
hurd: good
x
linux: good
x
macos: good
x
minix: good
x
netbsd: good
x
omnios: good
x
openbsd: good
x
solaris: good
x
sortix: good
x
§ bind-socket-sendto-first-shutdown-r-poll aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
0 | POLLIN | POLLOUT
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
0 | POLLIN | POLLOUT
§ bind-socket-sendto-first-shutdown-r-recv aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
EOF
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
EOF
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
EOF
§ bind-socket-sendto-first-shutdown-rw-poll aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
0 | POLLIN | POLLHUP
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
0 | POLLIN | POLLHUP
§ bind-socket-sendto-first-shutdown-rw-recv aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
EOF
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
EOF
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
EOF
§ bind-socket-sendto-first-shutdown-w-poll aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
0 | POLLIN | POLLHUP
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
0 | POLLIN | POLLHUP
§ bind-socket-sendto-first-shutdown-w-recv aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
x
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
x
netbsd: unknown
x
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
x
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
x
§ bind-socket-shutdown-r-sendto-first-poll aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
0 | POLLIN | POLLOUT
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
0 | POLLIN | POLLOUT
§ bind-socket-shutdown-r-sendto-first-recv aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
EOF
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
EOF
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
EOF
§ bind-socket-shutdown-rw-sendto-first-poll aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
0 | POLLIN | POLLHUP
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
0 | POLLIN | POLLHUP
§ bind-socket-shutdown-rw-sendto-first-recv aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
EOF
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
EOF
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
EOF
§ bind-socket-shutdown-w-sendto-first-poll aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
0 | POLLIN | POLLHUP
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
0 | POLLIN | POLLHUP
§ bind-socket-shutdown-w-sendto-first-recv aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
x
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
x
netbsd: unknown
x
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
x
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
x
§ connect-any-0-getpeername aix: unknown
connect: EADDRNOTAVAIL
dragonfly: unknown
getpeername: ENOTCONN
freebsd: unknown
connect: EADDRNOTAVAIL
haiku: unknown
127.0.0.1:0
hurd: unknown
127.0.0.1:0
linux: unknown
getpeername: ENOTCONN
macos: unknown
connect: EADDRNOTAVAIL
minix: unknown
connect: EHOSTUNREACH
netbsd: unknown
connect: EADDRNOTAVAIL
omnios: unknown
connect: EADDRNOTAVAIL
openbsd: unknown
connect: EADDRNOTAVAIL
solaris: unknown
connect: EADDRNOTAVAIL
sortix: unknown
connect: EADDRNOTAVAIL
§ connect-any-0-getsockname aix: unknown
connect: EADDRNOTAVAIL
dragonfly: unknown
0.0.0.0:non-zero
freebsd: unknown
connect: EADDRNOTAVAIL
haiku: unknown
127.0.0.1:non-zero
hurd: unknown
127.0.0.1:non-zero
linux: unknown
127.0.0.1:non-zero
macos: unknown
connect: EADDRNOTAVAIL
minix: unknown
connect: EHOSTUNREACH
netbsd: unknown
connect: EADDRNOTAVAIL
omnios: unknown
connect: EADDRNOTAVAIL
openbsd: unknown
connect: EADDRNOTAVAIL
solaris: unknown
connect: EADDRNOTAVAIL
sortix: unknown
connect: EADDRNOTAVAIL
§ connect-any-getpeername aix: bad
10.1.0.3:65535
dragonfly: unknown
127.0.0.1:65535
freebsd: unknown
127.0.0.1:65535
haiku: unknown
127.0.0.1:65535
hurd: unknown
127.0.0.1:65535
linux: unknown
127.0.0.1:65535
macos: unknown
127.0.0.1:65535
minix: unknown
connect: EHOSTUNREACH
netbsd: unknown
127.0.0.1:65535
omnios: unknown
127.0.0.1:65535
openbsd: unknown
0.0.0.0:65535
solaris: unknown
127.0.0.1:65535
sortix: unknown
connect: ENETUNREACH
§ connect-any-getsockname aix: unknown
192.168.1.x:non-zero
dragonfly: unknown
127.0.0.1:non-zero
freebsd: unknown
127.0.0.1:non-zero
haiku: unknown
127.0.0.1:non-zero
hurd: unknown
127.0.0.1:non-zero
linux: unknown
127.0.0.1:non-zero
macos: unknown
127.0.0.1:non-zero
minix: unknown
connect: EHOSTUNREACH
netbsd: unknown
127.0.0.1:non-zero
omnios: unknown
127.0.0.1:non-zero
openbsd: unknown
192.168.1.x:non-zero
solaris: unknown
127.0.0.1:non-zero
sortix: unknown
connect: ENETUNREACH
§ connect-broadcast-getpeername aix: bad
10.1.1.255:1
dragonfly: bad
10.0.2.255:1
freebsd: good
255.255.255.255:1
haiku: good
255.255.255.255:1
hurd: good
connect: EACCES
linux: good
connect: EACCES
macos: good
255.255.255.255:1
minix: good
255.255.255.255:1
netbsd: bad
10.0.2.255:1
omnios: good
255.255.255.255:1
openbsd: good
255.255.255.255:1
solaris: good
255.255.255.255:1
sortix: good
255.255.255.255:1
§ connect-broadcast-getpeername-so-broadcast aix: bad
10.1.1.255:1
dragonfly: bad
10.0.2.255:1
freebsd: good
255.255.255.255:1
haiku: good
255.255.255.255:1
hurd: good
255.255.255.255:1
linux: good
255.255.255.255:1
macos: good
255.255.255.255:1
minix: good
255.255.255.255:1
netbsd: bad
10.0.2.255:1
omnios: good
255.255.255.255:1
openbsd: good
255.255.255.255:1
solaris: good
255.255.255.255:1
sortix: good
255.255.255.255:1
§ connect-broadcast-getsockname aix: good
192.168.1.x:non-zero
dragonfly: good
192.168.1.x:non-zero
freebsd: good
192.168.1.x:non-zero
haiku: good
192.168.1.x:non-zero
hurd: good
connect: EACCES
linux: good
connect: EACCES
macos: good
192.168.1.x:non-zero
minix: good
192.168.1.x:non-zero
netbsd: good
192.168.1.x:non-zero
omnios: good
192.168.1.x:non-zero
openbsd: good
192.168.1.x:non-zero
solaris: good
192.168.1.x:non-zero
sortix: good
192.168.1.x:non-zero
§ connect-broadcast-getsockname-so-broadcast aix: good
192.168.1.x:non-zero
dragonfly: good
192.168.1.x:non-zero
freebsd: good
192.168.1.x:non-zero
haiku: good
192.168.1.x:non-zero
hurd: good
192.168.1.x:non-zero
linux: good
192.168.1.x:non-zero
macos: good
192.168.1.x:non-zero
minix: good
192.168.1.x:non-zero
netbsd: good
192.168.1.x:non-zero
omnios: good
192.168.1.x:non-zero
openbsd: good
192.168.1.x:non-zero
solaris: good
192.168.1.x:non-zero
sortix: good
192.168.1.x:non-zero
§ connect-getpeername aix: good
127.0.0.1:65535
dragonfly: good
127.0.0.1:65535
freebsd: good
127.0.0.1:65535
haiku: good
127.0.0.1:65535
hurd: good
127.0.0.1:65535
linux: good
127.0.0.1:65535
macos: good
127.0.0.1:65535
minix: good
127.0.0.1:65535
netbsd: good
127.0.0.1:65535
omnios: good
127.0.0.1:65535
openbsd: good
127.0.0.1:65535
solaris: good
127.0.0.1:65535
sortix: good
127.0.0.1:65535
§ connect-loopback-0-getpeername aix: unknown
connect: EADDRNOTAVAIL
dragonfly: unknown
getpeername: ENOTCONN
freebsd: unknown
connect: EADDRNOTAVAIL
haiku: unknown
127.0.0.1:0
hurd: unknown
127.0.0.1:0
linux: unknown
getpeername: ENOTCONN
macos: unknown
connect: EADDRNOTAVAIL
minix: unknown
connect: EADDRNOTAVAIL
netbsd: unknown
connect: EADDRNOTAVAIL
omnios: unknown
connect: EADDRNOTAVAIL
openbsd: unknown
connect: EADDRNOTAVAIL
solaris: unknown
connect: EADDRNOTAVAIL
sortix: unknown
connect: EADDRNOTAVAIL
§ connect-loopback-0-getsockname aix: unknown
connect: EADDRNOTAVAIL
dragonfly: unknown
0.0.0.0:non-zero
freebsd: unknown
connect: EADDRNOTAVAIL
haiku: unknown
127.0.0.1:non-zero
hurd: unknown
127.0.0.1:non-zero
linux: unknown
127.0.0.1:non-zero
macos: unknown
connect: EADDRNOTAVAIL
minix: unknown
connect: EADDRNOTAVAIL
netbsd: unknown
connect: EADDRNOTAVAIL
omnios: unknown
connect: EADDRNOTAVAIL
openbsd: unknown
connect: EADDRNOTAVAIL
solaris: unknown
connect: EADDRNOTAVAIL
sortix: unknown
connect: EADDRNOTAVAIL
§ connect-loopback-get-so-bindtodevice aix: good
getsockopt: SO_BINDTODEVICE: ENOSYS
dragonfly: good
getsockopt: SO_BINDTODEVICE: ENOSYS
freebsd: good
getsockopt: SO_BINDTODEVICE: ENOSYS
haiku: good
getsockopt: SO_BINDTODEVICE: ENOPROTOOPT
hurd: good
getsockopt: SO_BINDTODEVICE: ENOSYS
linux: good
macos: good
minix: good
getsockopt: SO_BINDTODEVICE: ENOSYS
netbsd: good
getsockopt: SO_BINDTODEVICE: ENOSYS
omnios: good
getsockopt: SO_BINDTODEVICE: ENOSYS
openbsd: good
getsockopt: SO_BINDTODEVICE: ENOSYS
solaris: good
getsockopt: SO_BINDTODEVICE: ENOSYS
sortix: good
§ connect-loopback-getpeername aix: good
127.0.0.1:65535
dragonfly: good
127.0.0.1:65535
freebsd: good
127.0.0.1:65535
haiku: good
127.0.0.1:65535
hurd: good
127.0.0.1:65535
linux: good
127.0.0.1:65535
macos: good
127.0.0.1:65535
minix: good
127.0.0.1:65535
netbsd: good
127.0.0.1:65535
omnios: good
127.0.0.1:65535
openbsd: good
127.0.0.1:65535
solaris: good
127.0.0.1:65535
sortix: good
127.0.0.1:65535
§ connect-loopback-getsockname aix: good
127.0.0.1:non-zero
dragonfly: good
127.0.0.1:non-zero
freebsd: good
127.0.0.1:non-zero
haiku: good
127.0.0.1:non-zero
hurd: good
127.0.0.1:non-zero
linux: good
127.0.0.1:non-zero
macos: good
127.0.0.1:non-zero
minix: good
127.0.0.1:non-zero
netbsd: good
127.0.0.1:non-zero
omnios: good
127.0.0.1:non-zero
openbsd: good
127.0.0.1:non-zero
solaris: good
127.0.0.1:non-zero
sortix: good
127.0.0.1:non-zero
§ connect-loopback-reconnect-loopback-getsockname aix: good
127.0.0.1:same port
dragonfly: good
127.0.0.1:same port
freebsd: good
127.0.0.1:same port
haiku: good
127.0.0.1:same port
hurd: good
127.0.0.1:same port
linux: good
127.0.0.1:same port
macos: good
127.0.0.1:same port
minix: good
127.0.0.1:same port
netbsd: good
127.0.0.1:same port
omnios: good
127.0.0.1:same port
openbsd: good
127.0.0.1:same port
solaris: good
127.0.0.1:same port
sortix: good
127.0.0.1:same port
§ connect-loopback-reconnect-wan-getsockname aix: bad
127.0.0.1:same port
dragonfly: unknown
192.168.1.x:same port
freebsd: unknown
192.168.1.x:same port
haiku: unknown
192.168.1.x:same port
hurd: unknown
second connect: EINVAL
linux: unknown
second connect: EINVAL
macos: unknown
192.168.1.x:same port
minix: bad
127.0.0.1:same port
netbsd: unknown
192.168.1.x:same port
omnios: unknown
192.168.1.x:same port
openbsd: unknown
192.168.1.x:same port
solaris: unknown
192.168.1.x:same port
sortix: unknown
second connect: ENETUNREACH
§ connect-loopback-unconnect-rebind-any-getsockname aix: unknown
bind: EINVAL
dragonfly: unknown
bind: EINVAL
freebsd: bad
second connect: EAFNOSUPPORT
haiku: unknown
bind: EINVAL
hurd: unknown
bind: EINVAL
linux: unknown
0.0.0.0:non-zero
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
bind: EINVAL
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
bind: EINVAL
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
bind: EINVAL
sortix: unknown
bind: EINVAL
§ connect-loopback-unconnect-rebind-loopback-getsockname aix: unknown
bind: EINVAL
dragonfly: unknown
bind: EINVAL
freebsd: bad
second connect: EAFNOSUPPORT
haiku: unknown
bind: EINVAL
hurd: unknown
bind: EINVAL
linux: unknown
127.0.0.1:non-zero
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
bind: EINVAL
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
bind: EINVAL
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
bind: EINVAL
sortix: unknown
bind: EINVAL
§ connect-poll aix: good
0 | POLLOUT
dragonfly: good
0 | POLLOUT
freebsd: good
0 | POLLOUT
haiku: good
0 | POLLOUT
hurd: good
0 | POLLOUT
linux: good
0 | POLLOUT
macos: good
0 | POLLOUT
minix: good
0 | POLLOUT
netbsd: good
0 | POLLOUT
omnios: good
0 | POLLOUT
openbsd: good
0 | POLLOUT
solaris: good
0 | POLLOUT
sortix: good
0 | POLLOUT
§ connect-reconnect aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ connect-reconnect-any-getpeername aix: unknown
second connect: EADDRNOTAVAIL
dragonfly: unknown
getpeername: ENOTCONN
freebsd: unknown
second connect: EADDRNOTAVAIL
haiku: bad
127.0.0.1:0
hurd: bad
127.0.0.1:0
linux: unknown
getpeername: ENOTCONN
macos: unknown
second connect: EADDRNOTAVAIL
minix: unknown
second connect: EHOSTUNREACH
netbsd: unknown
second connect: EADDRNOTAVAIL
omnios: unknown
second connect: EADDRNOTAVAIL
openbsd: unknown
second connect: EADDRNOTAVAIL
solaris: unknown
second connect: EADDRNOTAVAIL
sortix: unknown
second connect: EADDRNOTAVAIL
§ connect-reconnect-getpeername aix: good
127.0.0.1:65534
dragonfly: good
127.0.0.1:65534
freebsd: good
127.0.0.1:65534
haiku: good
127.0.0.1:65534
hurd: good
127.0.0.1:65534
linux: good
127.0.0.1:65534
macos: good
127.0.0.1:65534
minix: good
127.0.0.1:65534
netbsd: good
127.0.0.1:65534
omnios: good
127.0.0.1:65534
openbsd: good
127.0.0.1:65534
solaris: good
127.0.0.1:65534
sortix: good
127.0.0.1:65534
§ connect-reconnect-same aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ connect-recv aix: good
recv: EWOULDBLOCK
dragonfly: good
recv: EWOULDBLOCK
freebsd: good
recv: EWOULDBLOCK
haiku: good
recv: EWOULDBLOCK
hurd: good
recv: EWOULDBLOCK
linux: good
recv: EWOULDBLOCK
macos: good
recv: EWOULDBLOCK
minix: good
recv: EWOULDBLOCK
netbsd: good
recv: EWOULDBLOCK
omnios: good
recv: EWOULDBLOCK
openbsd: good
recv: EWOULDBLOCK
solaris: good
recv: EWOULDBLOCK
sortix: good
recv: EWOULDBLOCK
§ connect-send-error-accept aix: good
accept: ENOTSUP
dragonfly: bad
accept: EINVAL
freebsd: bad
accept: EINVAL
haiku: bad
accept: EINVAL
hurd: good
accept: ENOTSUP
linux: good
accept: ENOTSUP
macos: good
accept: ENOTSUP
minix: good
accept: ENOTSUP
netbsd: good
accept: ENOTSUP
omnios: good
accept: ENOTSUP
openbsd: bad
accept: EINVAL
solaris: good
accept: ENOTSUP
sortix: good
accept: ENOTSUP
§ connect-send-error-getpeername aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ connect-send-error-getsockname aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ connect-send-error-listen aix: good
listen: ENOTSUP
dragonfly: bad
listen: EINVAL
freebsd: good
listen: ENOTSUP
haiku: good
listen: ENOTSUP
hurd: good
listen: ENOTSUP
linux: good
listen: ENOTSUP
macos: good
listen: ENOTSUP
minix: good
listen: ENOTSUP
netbsd: bad
listen: EINVAL
omnios: good
listen: ENOTSUP
openbsd: good
listen: ENOTSUP
solaris: good
listen: ENOTSUP
sortix: good
listen: ENOTSUP
§ connect-send-error-poll aix: unknown
0 | POLLIN | POLLOUT
dragonfly: unknown
0 | POLLIN | POLLOUT
freebsd: unknown
0 | POLLIN | POLLOUT
haiku: unknown
0 | POLLIN | POLLOUT | POLLERR
hurd: unknown
0 | POLLERR
linux: unknown
0 | POLLOUT | POLLERR
macos: unknown
0 | POLLIN | POLLOUT
minix: unknown
0 | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
0 | POLLIN | POLLOUT
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
0 | POLLIN | POLLOUT
sortix: unknown
0 | POLLOUT
§ connect-send-error-poll-poll aix: unknown
first poll: 0 | POLLIN | POLLOUT
second poll: 0 | POLLIN | POLLOUT
dragonfly: unknown
first poll: 0 | POLLIN | POLLOUT
second poll: 0 | POLLIN | POLLOUT
freebsd: unknown
first poll: 0 | POLLIN | POLLOUT
second poll: 0 | POLLIN | POLLOUT
haiku: unknown
first poll: 0 | POLLIN | POLLOUT | POLLERR
second poll: 0 | POLLIN | POLLOUT | POLLERR
hurd: unknown
first poll: 0 | POLLERR
second poll: 0 | POLLERR
linux: unknown
first poll: 0 | POLLOUT | POLLERR
second poll: 0 | POLLOUT | POLLERR
macos: unknown
first poll: 0 | POLLIN | POLLOUT
second poll: 0 | POLLIN | POLLOUT
minix: unknown
first poll: 0 | POLLOUT
second poll: 0 | POLLOUT
netbsd: unknown
first poll: 0 | POLLIN | POLLOUT
second poll: 0 | POLLIN | POLLOUT
omnios: unknown
first poll: 0 | POLLIN | POLLOUT
second poll: 0 | POLLIN | POLLOUT
openbsd: unknown
first poll: 0 | POLLIN | POLLOUT
second poll: 0 | POLLIN | POLLOUT
solaris: unknown
first poll: 0 | POLLIN | POLLOUT
second poll: 0 | POLLIN | POLLOUT
sortix: unknown
first poll: 0 | POLLOUT
second poll: 0 | POLLOUT
§ connect-send-error-poll-so-error-poll aix: unknown
first poll: 0 | POLLIN | POLLOUT
SO_ERROR: ECONNREFUSED
second poll: 0 | POLLOUT
dragonfly: unknown
first poll: 0 | POLLIN | POLLOUT
SO_ERROR: ECONNREFUSED
second poll: 0 | POLLOUT
freebsd: unknown
first poll: 0 | POLLIN | POLLOUT
SO_ERROR: ECONNREFUSED
second poll: 0 | POLLOUT
haiku: unknown
first poll: 0 | POLLIN | POLLOUT | POLLERR
SO_ERROR: ECONNREFUSED
second poll: 0 | POLLOUT
hurd: unknown
first poll: 0 | POLLERR
SO_ERROR: ECONNREFUSED
second poll: 0 | POLLOUT
linux: unknown
first poll: 0 | POLLOUT | POLLERR
SO_ERROR: ECONNREFUSED
second poll: 0 | POLLOUT
macos: unknown
first poll: 0 | POLLIN | POLLOUT
SO_ERROR: ECONNREFUSED
second poll: 0 | POLLOUT
minix: unknown
first poll: 0 | POLLOUT
SO_ERROR: no error
second poll: 0 | POLLOUT
netbsd: unknown
first poll: 0 | POLLIN | POLLOUT
SO_ERROR: ECONNREFUSED
second poll: 0 | POLLOUT
omnios: unknown
first poll: 0 | POLLIN | POLLOUT
SO_ERROR: ECONNREFUSED
second poll: 0 | POLLOUT
openbsd: unknown
first poll: 0 | POLLIN | POLLOUT
SO_ERROR: ECONNREFUSED
second poll: 0 | POLLOUT
solaris: unknown
first poll: 0 | POLLIN | POLLOUT
SO_ERROR: ECONNREFUSED
second poll: 0 | POLLOUT
sortix: unknown
first poll: 0 | POLLOUT
SO_ERROR: no error
second poll: 0 | POLLOUT
§ connect-send-error-reconnect aix: unknown
second connect: ECONNREFUSED
dragonfly: unknown
exit: 0
freebsd: unknown
exit: 0
haiku: unknown
exit: 0
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
second connect: ECONNREFUSED
minix: unknown
exit: 0
netbsd: unknown
second connect: ECONNREFUSED
omnios: unknown
second connect: ECONNREFUSED
openbsd: unknown
second connect: ECONNREFUSED
solaris: unknown
second connect: ECONNREFUSED
sortix: unknown
exit: 0
§ connect-send-error-recv aix: good
recv: ECONNREFUSED
dragonfly: good
recv: ECONNREFUSED
freebsd: good
recv: ECONNREFUSED
haiku: good
recv: ECONNREFUSED
hurd: good
recv: ECONNREFUSED
linux: good
recv: ECONNREFUSED
macos: good
recv: ECONNREFUSED
minix: bad
recv: EWOULDBLOCK
netbsd: good
recv: ECONNREFUSED
omnios: good
recv: ECONNREFUSED
openbsd: good
recv: ECONNREFUSED
solaris: good
recv: ECONNREFUSED
sortix: bad
recv: EWOULDBLOCK
§ connect-send-error-send aix: bad
second send: no error
dragonfly: good
second send: ECONNREFUSED
freebsd: good
second send: ECONNREFUSED
haiku: bad
second send: no error
hurd: good
second send: ECONNREFUSED
linux: good
second send: ECONNREFUSED
macos: good
second send: ECONNREFUSED
minix: bad
second send: no error
netbsd: good
second send: ECONNREFUSED
omnios: good
second send: ECONNREFUSED
openbsd: good
second send: ECONNREFUSED
solaris: good
second send: ECONNREFUSED
sortix: bad
second send: no error
§ connect-send-error-send-send aix: bad
second send: no error
third send: no error
dragonfly: good
second send: ECONNREFUSED
third send: no error
freebsd: good
second send: ECONNREFUSED
third send: no error
haiku: bad
second send: no error
third send: no error
hurd: good
second send: ECONNREFUSED
third send: no error
linux: good
second send: ECONNREFUSED
third send: no error
macos: good
second send: ECONNREFUSED
third send: no error
minix: bad
second send: no error
third send: no error
netbsd: good
second send: ECONNREFUSED
third send: no error
omnios: good
second send: ECONNREFUSED
third send: no error
openbsd: good
second send: ECONNREFUSED
third send: no error
solaris: good
second send: ECONNREFUSED
third send: no error
sortix: bad
second send: no error
third send: no error
§ connect-send-error-shutdown-r-recv aix: unknown
recv: ECONNREFUSED
dragonfly: unknown
recv: ECONNREFUSED
freebsd: unknown
recv: ECONNREFUSED
haiku: bad
shutdown: ENOTSUP
hurd: unknown
recv: ECONNREFUSED
linux: unknown
recv: ECONNREFUSED
macos: unknown
recv: ECONNREFUSED
minix: unknown
EOF
netbsd: unknown
recv: ECONNREFUSED
omnios: unknown
recv: ECONNREFUSED
openbsd: unknown
recv: ECONNREFUSED
solaris: unknown
recv: ECONNREFUSED
sortix: unknown
EOF
§ connect-send-error-shutdown-r-send aix: bad
exit: 0
dragonfly: good
second send: ECONNREFUSED
freebsd: good
second send: ECONNREFUSED
haiku: bad
shutdown: ENOTSUP
hurd: good
second send: ECONNREFUSED
linux: good
second send: ECONNREFUSED
macos: good
second send: ECONNREFUSED
minix: bad
exit: 0
netbsd: good
second send: ECONNREFUSED
omnios: good
second send: ECONNREFUSED
openbsd: good
second send: ECONNREFUSED
solaris: good
second send: ECONNREFUSED
sortix: bad
exit: 0
§ connect-send-error-shutdown-rw-recv aix: unknown
recv: ECONNREFUSED
dragonfly: unknown
recv: ECONNREFUSED
freebsd: unknown
recv: ECONNREFUSED
haiku: bad
shutdown: ENOTSUP
hurd: unknown
recv: ECONNREFUSED
linux: unknown
recv: ECONNREFUSED
macos: unknown
recv: ECONNREFUSED
minix: unknown
EOF
netbsd: unknown
recv: ECONNREFUSED
omnios: unknown
recv: ECONNREFUSED
openbsd: unknown
recv: ECONNREFUSED
solaris: unknown
recv: ECONNREFUSED
sortix: unknown
EOF
§ connect-send-error-shutdown-rw-send aix: unknown
second send: EPIPE
SIGPIPE
dragonfly: unknown
second send: EPIPE
SIGPIPE
freebsd: unknown
second send: EPIPE
SIGPIPE
haiku: bad
shutdown: ENOTSUP
hurd: unknown
second send: EPIPE
SIGPIPE
linux: unknown
second send: ECONNREFUSED
macos: unknown
second send: EPIPE
SIGPIPE
minix: unknown
second send: EPIPE
netbsd: unknown
second send: EPIPE
SIGPIPE
omnios: unknown
second send: EPIPE
SIGPIPE
openbsd: unknown
second send: EPIPE
SIGPIPE
solaris: unknown
second send: EPIPE
SIGPIPE
sortix: unknown
second send: EPIPE
SIGPIPE
§ connect-send-error-shutdown-rw-so-error aix: good
SO_ERROR: ECONNREFUSED
dragonfly: good
SO_ERROR: ECONNREFUSED
freebsd: good
SO_ERROR: ECONNREFUSED
haiku: bad
shutdown: ENOTSUP
hurd: good
SO_ERROR: ECONNREFUSED
linux: good
SO_ERROR: ECONNREFUSED
macos: good
SO_ERROR: ECONNREFUSED
minix: bad
SO_ERROR: no error
netbsd: good
SO_ERROR: ECONNREFUSED
omnios: good
SO_ERROR: ECONNREFUSED
openbsd: good
SO_ERROR: ECONNREFUSED
solaris: good
SO_ERROR: ECONNREFUSED
sortix: bad
SO_ERROR: no error
§ connect-send-error-shutdown-w-recv aix: good
recv: ECONNREFUSED
dragonfly: good
recv: ECONNREFUSED
freebsd: good
recv: ECONNREFUSED
haiku: bad
shutdown: ENOTSUP
hurd: good
recv: ECONNREFUSED
linux: good
recv: ECONNREFUSED
macos: good
recv: ECONNREFUSED
minix: bad
recv: EWOULDBLOCK
netbsd: good
recv: ECONNREFUSED
omnios: good
recv: ECONNREFUSED
openbsd: good
recv: ECONNREFUSED
solaris: good
recv: ECONNREFUSED
sortix: bad
recv: EWOULDBLOCK
§ connect-send-error-shutdown-w-send aix: unknown
second send: EPIPE
SIGPIPE
dragonfly: unknown
second send: EPIPE
SIGPIPE
freebsd: unknown
second send: EPIPE
SIGPIPE
haiku: bad
shutdown: ENOTSUP
hurd: unknown
second send: EPIPE
SIGPIPE
linux: unknown
second send: ECONNREFUSED
macos: unknown
second send: EPIPE
SIGPIPE
minix: unknown
second send: EPIPE
netbsd: unknown
second send: EPIPE
SIGPIPE
omnios: unknown
second send: EPIPE
SIGPIPE
openbsd: unknown
second send: EPIPE
SIGPIPE
solaris: unknown
second send: EPIPE
SIGPIPE
sortix: unknown
second send: EPIPE
SIGPIPE
§ connect-send-error-so-error-send-send aix: bad
SO_ERROR: ECONNREFUSED
second send: no error
third send: no error
dragonfly: good
SO_ERROR: ECONNREFUSED
second send: no error
third send: ECONNREFUSED
freebsd: good
SO_ERROR: ECONNREFUSED
second send: no error
third send: ECONNREFUSED
haiku: bad
SO_ERROR: ECONNREFUSED
second send: no error
third send: no error
hurd: good
SO_ERROR: ECONNREFUSED
second send: no error
third send: ECONNREFUSED
linux: good
SO_ERROR: ECONNREFUSED
second send: no error
third send: ECONNREFUSED
macos: good
SO_ERROR: ECONNREFUSED
second send: no error
third send: ECONNREFUSED
minix: bad
SO_ERROR: no error
second send: no error
third send: no error
netbsd: good
SO_ERROR: ECONNREFUSED
second send: no error
third send: ECONNREFUSED
omnios: bad
SO_ERROR: ECONNREFUSED
second send: no error
third send: no error
openbsd: good
SO_ERROR: ECONNREFUSED
second send: no error
third send: ECONNREFUSED
solaris: bad
SO_ERROR: ECONNREFUSED
second send: no error
third send: no error
sortix: bad
SO_ERROR: no error
second send: no error
third send: no error
§ connect-sendto-null aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: bad
sendto: EINVAL
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ connect-sendto-other aix: good
sendto: EISCONN
dragonfly: good
exit: 0
freebsd: good
sendto: EISCONN
haiku: good
sendto: EISCONN
hurd: good
exit: 0
linux: good
exit: 0
macos: good
sendto: EISCONN
minix: good
exit: 0
netbsd: good
sendto: EISCONN
omnios: good
sendto: EISCONN
openbsd: good
sendto: EISCONN
solaris: good
sendto: EISCONN
sortix: good
sendto: EISCONN
§ connect-sendto-same aix: good
sendto: EISCONN
dragonfly: good
exit: 0
freebsd: good
sendto: EISCONN
haiku: good
sendto: EISCONN
hurd: good
exit: 0
linux: good
exit: 0
macos: good
sendto: EISCONN
minix: good
exit: 0
netbsd: good
sendto: EISCONN
omnios: good
sendto: EISCONN
openbsd: good
sendto: EISCONN
solaris: good
sendto: EISCONN
sortix: good
sendto: EISCONN
§ connect-shutdown aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: bad
shutdown: ENOTSUP
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ connect-shutdown-r-recv aix: unknown
EOF
dragonfly: unknown
EOF
freebsd: unknown
EOF
haiku: bad
shutdown: ENOTSUP
hurd: bad
recv: EINVAL
linux: unknown
recv: EWOULDBLOCK
macos: unknown
EOF
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
EOF
openbsd: unknown
EOF
solaris: unknown
recv: EWOULDBLOCK
sortix: unknown
EOF
§ connect-shutdown-r-send aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: bad
shutdown: ENOTSUP
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ connect-shutdown-r-unconnect-recv aix: unknown
EOF
dragonfly: unknown
EOF
freebsd: bad
second connect: EAFNOSUPPORT
haiku: bad
shutdown: ENOTSUP
hurd: bad
recv: EINVAL
linux: unknown
recv: EWOULDBLOCK
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
EOF
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
EOF
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
recv: EWOULDBLOCK
sortix: unknown
EOF
§ connect-shutdown-r-unconnect-send aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: bad
second connect: EAFNOSUPPORT
haiku: bad
shutdown: ENOTSUP
hurd: good
exit: 0
linux: good
exit: 0
macos: bad
second connect: EAFNOSUPPORT
minix: good
exit: 0
netbsd: bad
second connect: EAFNOSUPPORT
omnios: good
exit: 0
openbsd: bad
second connect: EAFNOSUPPORT
solaris: good
exit: 0
sortix: good
exit: 0
§ connect-shutdown-reconnect aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: good
exit: 0
haiku: bad
shutdown: ENOTSUP
hurd: good
exit: 0
linux: good
exit: 0
macos: good
exit: 0
minix: good
exit: 0
netbsd: good
exit: 0
omnios: good
exit: 0
openbsd: good
exit: 0
solaris: good
exit: 0
sortix: good
exit: 0
§ connect-shutdown-rw-reconnect-send aix: unknown
send: EPIPE
SIGPIPE
dragonfly: unknown
send: EPIPE
SIGPIPE
freebsd: unknown
send: EPIPE
SIGPIPE
haiku: bad
shutdown: ENOTSUP
hurd: unknown
send: EPIPE
SIGPIPE
linux: unknown
send: EPIPE
macos: unknown
send: EPIPE
SIGPIPE
minix: unknown
send: EPIPE
netbsd: unknown
send: EPIPE
SIGPIPE
omnios: unknown
send: EPIPE
SIGPIPE
openbsd: unknown
send: EPIPE
SIGPIPE
solaris: unknown
send: EPIPE
SIGPIPE
sortix: unknown
send: EPIPE
SIGPIPE
§ connect-shutdown-rw-recv aix: unknown
EOF
dragonfly: unknown
EOF
freebsd: unknown
EOF
haiku: bad
shutdown: ENOTSUP
hurd: bad
recv: EINVAL
linux: unknown
recv: EWOULDBLOCK
macos: unknown
EOF
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
EOF
openbsd: unknown
EOF
solaris: unknown
recv: EWOULDBLOCK
sortix: unknown
EOF
§ connect-shutdown-rw-send aix: unknown
send: EPIPE
SIGPIPE
dragonfly: unknown
send: EPIPE
SIGPIPE
freebsd: unknown
send: EPIPE
SIGPIPE
haiku: bad
shutdown: ENOTSUP
hurd: unknown
send: EPIPE
SIGPIPE
linux: unknown
send: EPIPE
macos: unknown
send: EPIPE
SIGPIPE
minix: unknown
send: EPIPE
netbsd: unknown
send: EPIPE
SIGPIPE
omnios: unknown
send: EPIPE
SIGPIPE
openbsd: unknown
send: EPIPE
SIGPIPE
solaris: unknown
send: EPIPE
SIGPIPE
sortix: unknown
send: EPIPE
SIGPIPE
§ connect-shutdown-rw-unconnect-recv aix: unknown
EOF
dragonfly: unknown
EOF
freebsd: bad
second connect: EAFNOSUPPORT
haiku: bad
shutdown: ENOTSUP
hurd: bad
recv: EINVAL
linux: unknown
recv: EWOULDBLOCK
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
EOF
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
EOF
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
recv: EWOULDBLOCK
sortix: unknown
EOF
§ connect-shutdown-rw-unconnect-send aix: unknown
sendto: EPIPE
dragonfly: unknown
sendto: EPIPE
SIGPIPE
freebsd: bad
second connect: EAFNOSUPPORT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
sendto: EPIPE
SIGPIPE
linux: unknown
sendto: EPIPE
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
sendto: EPIPE
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
sendto: EPIPE
SIGPIPE
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
sendto: EPIPE
SIGPIPE
sortix: unknown
sendto: EPIPE
SIGPIPE
§ connect-shutdown-w-recv aix: good
recv: EWOULDBLOCK
dragonfly: good
recv: EWOULDBLOCK
freebsd: good
recv: EWOULDBLOCK
haiku: bad
shutdown: ENOTSUP
hurd: good
recv: EWOULDBLOCK
linux: good
recv: EWOULDBLOCK
macos: good
recv: EWOULDBLOCK
minix: good
recv: EWOULDBLOCK
netbsd: good
recv: EWOULDBLOCK
omnios: good
recv: EWOULDBLOCK
openbsd: good
recv: EWOULDBLOCK
solaris: good
recv: EWOULDBLOCK
sortix: good
recv: EWOULDBLOCK
§ connect-shutdown-w-send aix: unknown
send: EPIPE
SIGPIPE
dragonfly: unknown
send: EPIPE
SIGPIPE
freebsd: unknown
send: EPIPE
SIGPIPE
haiku: bad
shutdown: ENOTSUP
hurd: unknown
send: EPIPE
SIGPIPE
linux: unknown
send: EPIPE
macos: unknown
send: EPIPE
SIGPIPE
minix: unknown
send: EPIPE
netbsd: unknown
send: EPIPE
SIGPIPE
omnios: unknown
send: EPIPE
SIGPIPE
openbsd: unknown
send: EPIPE
SIGPIPE
solaris: unknown
send: EPIPE
SIGPIPE
sortix: unknown
send: EPIPE
SIGPIPE
§ connect-shutdown-w-unconnect-recv aix: good
recv: EWOULDBLOCK
dragonfly: good
recv: EWOULDBLOCK
freebsd: bad
second connect: EAFNOSUPPORT
haiku: bad
shutdown: ENOTSUP
hurd: good
recv: EWOULDBLOCK
linux: good
recv: EWOULDBLOCK
macos: bad
second connect: EAFNOSUPPORT
minix: good
recv: EWOULDBLOCK
netbsd: bad
second connect: EAFNOSUPPORT
omnios: good
recv: EWOULDBLOCK
openbsd: bad
second connect: EAFNOSUPPORT
solaris: good
recv: EWOULDBLOCK
sortix: good
recv: EWOULDBLOCK
§ connect-shutdown-w-unconnect-send aix: unknown
sendto: EPIPE
dragonfly: unknown
sendto: EPIPE
SIGPIPE
freebsd: bad
second connect: EAFNOSUPPORT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
sendto: EPIPE
SIGPIPE
linux: unknown
sendto: EPIPE
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
sendto: EPIPE
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
sendto: EPIPE
SIGPIPE
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
sendto: EPIPE
SIGPIPE
sortix: unknown
sendto: EPIPE
SIGPIPE
§ connect-unconnect aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: bad
second connect: EAFNOSUPPORT
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: bad
second connect: EAFNOSUPPORT
minix: good
exit: 0
netbsd: bad
second connect: EAFNOSUPPORT
omnios: good
exit: 0
openbsd: bad
second connect: EAFNOSUPPORT
solaris: good
exit: 0
sortix: good
exit: 0
§ connect-unconnect-getpeername aix: good
getpeername: ENOTCONN
dragonfly: good
getpeername: ENOTCONN
freebsd: bad
second connect: EAFNOSUPPORT
haiku: bad
0.0.0.0:0
hurd: good
getpeername: ENOTCONN
linux: good
getpeername: ENOTCONN
macos: bad
second connect: EAFNOSUPPORT
minix: good
getpeername: ENOTCONN
netbsd: bad
second connect: EAFNOSUPPORT
omnios: good
getpeername: ENOTCONN
openbsd: bad
second connect: EAFNOSUPPORT
solaris: good
getpeername: ENOTCONN
sortix: good
getpeername: ENOTCONN
§ connect-unconnect-getsockname aix: unknown
127.0.0.1:non-zero
dragonfly: unknown
0.0.0.0:non-zero
freebsd: bad
second connect: EAFNOSUPPORT
haiku: unknown
127.0.0.1:non-zero
hurd: unknown
0.0.0.0:non-zero
linux: unknown
0.0.0.0:0
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
127.0.0.1:non-zero
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
0.0.0.0:non-zero
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
0.0.0.0:non-zero
sortix: unknown
127.0.0.1:non-zero
§ connect-unconnect-sa-family aix: unknown
exit: 0
dragonfly: bad
second connect: EDOM
freebsd: unknown
second connect: EINVAL
haiku: unknown
exit: 0
hurd: unknown
second connect: EINVAL
linux: unknown
exit: 0
macos: unknown
second connect: EINVAL
minix: unknown
second connect: EINVAL
netbsd: unknown
second connect: EINVAL
omnios: unknown
exit: 0
openbsd: unknown
second connect: EINVAL
solaris: unknown
exit: 0
sortix: unknown
exit: 0
§ connect-unconnect-shutdown-r-recv aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
EOF
freebsd: bad
second connect: EAFNOSUPPORT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
EOF
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
EOF
openbsd: bad
second connect: EAFNOSUPPORT
solaris: bad
recv: EWOULDBLOCK
sortix: unknown
EOF
§ connect-unconnect-shutdown-r-send aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
exit: 0
freebsd: bad
second connect: EAFNOSUPPORT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
exit: 0
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
exit: 0
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
exit: 0
sortix: unknown
exit: 0
§ connect-unconnect-shutdown-rw-recv aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
EOF
freebsd: bad
second connect: EAFNOSUPPORT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
EOF
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
EOF
openbsd: bad
second connect: EAFNOSUPPORT
solaris: bad
recv: EWOULDBLOCK
sortix: unknown
EOF
§ connect-unconnect-shutdown-rw-send aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
sendto: EPIPE
SIGPIPE
freebsd: bad
second connect: EAFNOSUPPORT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
sendto: EPIPE
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
sendto: EPIPE
SIGPIPE
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
sendto: EPIPE
SIGPIPE
sortix: unknown
sendto: EPIPE
SIGPIPE
§ connect-unconnect-shutdown-w-recv aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
recv: EWOULDBLOCK
freebsd: bad
second connect: EAFNOSUPPORT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
recv: EWOULDBLOCK
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
recv: EWOULDBLOCK
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
recv: EWOULDBLOCK
sortix: unknown
recv: EWOULDBLOCK
§ connect-unconnect-shutdown-w-send aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
sendto: EPIPE
SIGPIPE
freebsd: bad
second connect: EAFNOSUPPORT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
sendto: EPIPE
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
sendto: EPIPE
SIGPIPE
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
sendto: EPIPE
SIGPIPE
sortix: unknown
sendto: EPIPE
SIGPIPE
§ connect-unconnect-sockaddr aix: unknown
exit: 0
dragonfly: unknown
exit: 0
freebsd: bad
second connect: EAFNOSUPPORT
haiku: unknown
exit: 0
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
exit: 0
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
exit: 0
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
exit: 0
sortix: unknown
exit: 0
§ connect-unconnect-sockaddr-in aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: bad
second connect: EAFNOSUPPORT
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: bad
second connect: EAFNOSUPPORT
minix: good
exit: 0
netbsd: bad
second connect: EAFNOSUPPORT
omnios: good
exit: 0
openbsd: bad
second connect: EAFNOSUPPORT
solaris: good
exit: 0
sortix: good
exit: 0
§ connect-unconnect-sockaddr-storage aix: bad
second connect: EINVAL
dragonfly: good
exit: 0
freebsd: bad
second connect: EAFNOSUPPORT
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: bad
second connect: EINVAL
minix: good
exit: 0
netbsd: bad
second connect: EAFNOSUPPORT
omnios: good
exit: 0
openbsd: bad
second connect: EINVAL
solaris: good
exit: 0
sortix: good
exit: 0
§ connect-unconnect-unconnect aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: bad
second connect: EAFNOSUPPORT
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: bad
second connect: EAFNOSUPPORT
minix: good
exit: 0
netbsd: bad
second connect: EAFNOSUPPORT
omnios: bad
third connect: EINVAL
openbsd: bad
second connect: EAFNOSUPPORT
solaris: bad
third connect: EINVAL
sortix: good
exit: 0
§ connect-wan-get-so-bindtodevice aix: good
getsockopt: SO_BINDTODEVICE: ENOSYS
dragonfly: good
getsockopt: SO_BINDTODEVICE: ENOSYS
freebsd: good
getsockopt: SO_BINDTODEVICE: ENOSYS
haiku: good
getsockopt: SO_BINDTODEVICE: ENOPROTOOPT
hurd: good
getsockopt: SO_BINDTODEVICE: ENOSYS
linux: good
macos: good
minix: good
getsockopt: SO_BINDTODEVICE: ENOSYS
netbsd: good
getsockopt: SO_BINDTODEVICE: ENOSYS
omnios: good
getsockopt: SO_BINDTODEVICE: ENOSYS
openbsd: good
getsockopt: SO_BINDTODEVICE: ENOSYS
solaris: good
getsockopt: SO_BINDTODEVICE: ENOSYS
sortix: good
§ connect-wan-getsockname aix: good
192.168.1.x:non-zero
dragonfly: good
192.168.1.x:non-zero
freebsd: good
192.168.1.x:non-zero
haiku: good
192.168.1.x:non-zero
hurd: good
192.168.1.x:non-zero
linux: good
192.168.1.x:non-zero
macos: good
192.168.1.x:non-zero
minix: good
192.168.1.x:non-zero
netbsd: good
192.168.1.x:non-zero
omnios: good
192.168.1.x:non-zero
openbsd: good
192.168.1.x:non-zero
solaris: good
192.168.1.x:non-zero
sortix: good
192.168.1.x:non-zero
§ connect-wan-send-reconnect-loopback-send aix: unknown
exit: 0
dragonfly: unknown
exit: 0
freebsd: unknown
second send: EADDRNOTAVAIL
haiku: unknown
exit: 0
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
exit: 0
minix: unknown
exit: 0
netbsd: unknown
exit: 0
omnios: unknown
exit: 0
openbsd: unknown
exit: 0
solaris: unknown
exit: 0
sortix: unknown
second connect: ENETUNREACH
§ connect-wan-unconnect-rebind-any-getsockname aix: unknown
bind: EINVAL
dragonfly: unknown
bind: EINVAL
freebsd: bad
second connect: EAFNOSUPPORT
haiku: unknown
bind: EINVAL
hurd: unknown
bind: EINVAL
linux: unknown
bind: EADDRNOTAVAIL
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
bind: EINVAL
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
bind: EADDRNOTAVAIL
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
bind: EADDRNOTAVAIL
sortix: unknown
bind: EINVAL
§ connect-wan-unconnect-rebind-same-getsockname aix: unknown
bind: EINVAL
dragonfly: unknown
bind: EINVAL
freebsd: bad
second connect: EAFNOSUPPORT
haiku: unknown
bind: EINVAL
hurd: unknown
bind: EINVAL
linux: unknown
192.168.1.x:non-zero
macos: bad
second connect: EAFNOSUPPORT
minix: unknown
bind: EINVAL
netbsd: bad
second connect: EAFNOSUPPORT
omnios: unknown
bind: EINVAL
openbsd: bad
second connect: EAFNOSUPPORT
solaris: unknown
bind: EINVAL
sortix: unknown
bind: EINVAL
§ cross-netif-lan-send-loopback-recv aix: good
192.168.1.x:non-zero: x
dragonfly: good
192.168.1.x:non-zero: x
freebsd: good
192.168.1.x:non-zero: x
haiku: good
192.168.1.x:non-zero: x
hurd: good
192.168.1.x:non-zero: x
linux: good
192.168.1.x:non-zero: x
macos: good
192.168.1.x:non-zero: x
minix: good
192.168.1.x:non-zero: x
netbsd: good
192.168.1.x:non-zero: x
omnios: good
192.168.1.x:non-zero: x
openbsd: good
192.168.1.x:non-zero: x
solaris: good
192.168.1.x:non-zero: x
sortix: bad
sendto: ENETUNREACH
§ cross-netif-loopback-send-lan-recv aix: good
127.0.0.1:non-zero: x
dragonfly: good
127.0.0.1:non-zero: x
freebsd: good
127.0.0.1:non-zero: x
haiku: good
127.0.0.1:non-zero: x
hurd: good
127.0.0.1:non-zero: x
linux: good
127.0.0.1:non-zero: x
macos: good
127.0.0.1:non-zero: x
minix: good
127.0.0.1:non-zero: x
netbsd: good
127.0.0.1:non-zero: x
omnios: good
127.0.0.1:non-zero: x
openbsd: good
127.0.0.1:non-zero: x
solaris: good
127.0.0.1:non-zero: x
sortix: bad
sendto: ENETUNREACH
§ get-so-bindtodevice aix: good
getsockopt: SO_BINDTODEVICE: ENOSYS
dragonfly: good
getsockopt: SO_BINDTODEVICE: ENOSYS
freebsd: good
getsockopt: SO_BINDTODEVICE: ENOSYS
haiku: good
getsockopt: SO_BINDTODEVICE: ENOPROTOOPT
hurd: good
getsockopt: SO_BINDTODEVICE: ENOSYS
linux: good
macos: good
minix: good
getsockopt: SO_BINDTODEVICE: ENOSYS
netbsd: good
getsockopt: SO_BINDTODEVICE: ENOSYS
omnios: good
getsockopt: SO_BINDTODEVICE: ENOSYS
openbsd: good
getsockopt: SO_BINDTODEVICE: ENOSYS
solaris: good
getsockopt: SO_BINDTODEVICE: ENOSYS
sortix: good
§ getpeername aix: good
getpeername: ENOTCONN
dragonfly: good
getpeername: ENOTCONN
freebsd: good
getpeername: ENOTCONN
haiku: good
getpeername: ENOTCONN
hurd: good
getpeername: ENOTCONN
linux: good
getpeername: ENOTCONN
macos: good
getpeername: ENOTCONN
minix: good
getpeername: ENOTCONN
netbsd: good
getpeername: ENOTCONN
omnios: good
getpeername: ENOTCONN
openbsd: good
getpeername: ENOTCONN
solaris: good
getpeername: ENOTCONN
sortix: good
getpeername: ENOTCONN
§ getsockname aix: good
0.0.0.0:0
dragonfly: good
0.0.0.0:0
freebsd: good
0.0.0.0:0
haiku: good
0.0.0.0:0
hurd: good
0.0.0.0:0
linux: good
0.0.0.0:0
macos: good
0.0.0.0:0
minix: good
0.0.0.0:0
netbsd: good
0.0.0.0:0
omnios: good
0.0.0.0:0
openbsd: good
0.0.0.0:0
solaris: good
0.0.0.0:0
sortix: good
0.0.0.0:0
§ listen aix: good
listen: ENOTSUP
dragonfly: good
listen: ENOTSUP
freebsd: good
listen: ENOTSUP
haiku: good
listen: ENOTSUP
hurd: good
listen: ENOTSUP
linux: good
listen: ENOTSUP
macos: good
listen: ENOTSUP
minix: good
listen: ENOTSUP
netbsd: good
listen: ENOTSUP
omnios: good
listen: ENOTSUP
openbsd: good
listen: ENOTSUP
solaris: good
listen: ENOTSUP
sortix: good
listen: ENOTSUP
§ pair-poll aix: good
0 | POLLOUT
dragonfly: good
0 | POLLOUT
freebsd: good
0 | POLLOUT
haiku: good
0 | POLLOUT
hurd: good
0 | POLLOUT
linux: good
0 | POLLOUT
macos: good
0 | POLLOUT
minix: good
0 | POLLOUT
netbsd: good
0 | POLLOUT
omnios: good
0 | POLLOUT
openbsd: good
0 | POLLOUT
solaris: good
0 | POLLOUT
sortix: good
0 | POLLOUT
§ pair-send-poll aix: good
0 | POLLIN | POLLOUT
dragonfly: good
0 | POLLIN | POLLOUT
freebsd: good
0 | POLLIN | POLLOUT
haiku: good
0 | POLLIN | POLLOUT
hurd: good
0 | POLLIN | POLLOUT
linux: good
0 | POLLIN | POLLOUT
macos: good
0 | POLLIN | POLLOUT
minix: good
0 | POLLIN | POLLOUT
netbsd: good
0 | POLLIN | POLLOUT
omnios: good
0 | POLLIN | POLLOUT
openbsd: good
0 | POLLIN | POLLOUT
solaris: good
0 | POLLIN | POLLOUT
sortix: good
0 | POLLIN | POLLOUT
§ pair-send-recv aix: good
x
dragonfly: good
x
freebsd: good
x
haiku: good
x
hurd: good
x
linux: good
x
macos: good
x
minix: good
x
netbsd: good
x
omnios: good
x
openbsd: good
x
solaris: good
x
sortix: good
x
§ pair-send-shutdown-r-poll aix: unknown
0 | POLLIN | POLLOUT
dragonfly: unknown
0 | POLLIN | POLLOUT
freebsd: unknown
0 | POLLIN | POLLOUT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
0 | POLLIN | POLLOUT
linux: unknown
0 | POLLIN | POLLOUT
macos: unknown
0 | POLLIN | POLLHUP
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
0 | POLLIN | POLLOUT
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
0 | POLLIN | POLLOUT
sortix: unknown
0 | POLLIN | POLLOUT
§ pair-send-shutdown-r-recv aix: unknown
EOF
dragonfly: unknown
EOF
freebsd: unknown
EOF
haiku: bad
shutdown: ENOTSUP
hurd: unknown
x
linux: unknown
x
macos: unknown
EOF
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
EOF
openbsd: unknown
EOF
solaris: unknown
x
sortix: unknown
EOF
§ pair-send-shutdown-rw-poll aix: unknown
0 | POLLIN | POLLOUT
dragonfly: unknown
0 | POLLIN | POLLHUP
freebsd: unknown
0 | POLLIN | POLLHUP
haiku: bad
shutdown: ENOTSUP
hurd: unknown
0 | POLLIN
linux: bad
0 | POLLIN | POLLOUT | POLLHUP
macos: unknown
0 | POLLIN | POLLHUP
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
0 | POLLIN | POLLOUT
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
0 | POLLIN | POLLOUT
sortix: unknown
0 | POLLIN | POLLHUP
§ pair-send-shutdown-rw-recv aix: unknown
EOF
dragonfly: unknown
EOF
freebsd: unknown
EOF
haiku: bad
shutdown: ENOTSUP
hurd: unknown
x
linux: unknown
x
macos: unknown
EOF
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
EOF
openbsd: unknown
EOF
solaris: unknown
x
sortix: unknown
EOF
§ pair-send-shutdown-w-poll aix: unknown
0 | POLLIN | POLLOUT
dragonfly: unknown
0 | POLLIN | POLLHUP
freebsd: unknown
0 | POLLIN | POLLOUT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
0 | POLLIN
linux: unknown
0 | POLLIN | POLLOUT
macos: unknown
0 | POLLIN | POLLHUP
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
0 | POLLIN | POLLOUT
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
0 | POLLIN | POLLOUT
sortix: unknown
0 | POLLIN | POLLHUP
§ pair-send-shutdown-w-recv aix: good
x
dragonfly: good
x
freebsd: good
x
haiku: bad
shutdown: ENOTSUP
hurd: good
x
linux: good
x
macos: good
x
minix: good
x
netbsd: good
x
omnios: good
x
openbsd: good
x
solaris: good
x
sortix: good
x
§ pair-shutdown-r-poll aix: unknown
0 | POLLIN | POLLOUT
dragonfly: unknown
0 | POLLIN | POLLOUT
freebsd: unknown
0 | POLLIN | POLLOUT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
0 | POLLIN | POLLOUT
linux: unknown
0 | POLLIN | POLLOUT
macos: unknown
0 | POLLIN | POLLHUP
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
0 | POLLIN | POLLOUT
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
0 | POLLOUT
sortix: unknown
0 | POLLIN | POLLOUT
§ pair-shutdown-r-send-poll aix: unknown
0 | POLLIN | POLLOUT
dragonfly: unknown
0 | POLLIN | POLLOUT
freebsd: unknown
0 | POLLIN | POLLOUT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
0 | POLLIN | POLLOUT
linux: unknown
0 | POLLIN | POLLOUT
macos: unknown
0 | POLLIN | POLLHUP
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
0 | POLLIN | POLLOUT
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
0 | POLLIN | POLLOUT
sortix: unknown
0 | POLLIN | POLLOUT
§ pair-shutdown-r-send-recv aix: unknown
EOF
dragonfly: unknown
EOF
freebsd: unknown
EOF
haiku: bad
shutdown: ENOTSUP
hurd: bad
x
linux: bad
x
macos: unknown
EOF
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
EOF
openbsd: unknown
EOF
solaris: bad
x
sortix: unknown
EOF
§ pair-shutdown-rw-poll aix: unknown
0 | POLLIN | POLLOUT
dragonfly: unknown
0 | POLLIN | POLLHUP
freebsd: unknown
0 | POLLIN | POLLHUP
haiku: bad
shutdown: ENOTSUP
hurd: unknown
0 | POLLIN
linux: bad
0 | POLLIN | POLLOUT | POLLHUP
macos: unknown
0 | POLLIN | POLLHUP
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
0 | POLLIN | POLLOUT
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: bad
0 | POLLOUT
sortix: unknown
0 | POLLIN | POLLHUP
§ pair-shutdown-rw-send-poll aix: unknown
0 | POLLIN | POLLOUT
dragonfly: unknown
0 | POLLIN | POLLHUP
freebsd: unknown
0 | POLLIN | POLLHUP
haiku: bad
shutdown: ENOTSUP
hurd: unknown
0 | POLLIN
linux: bad
0 | POLLIN | POLLOUT | POLLHUP
macos: unknown
0 | POLLIN | POLLHUP
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
0 | POLLIN | POLLOUT
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
0 | POLLIN | POLLOUT
sortix: unknown
0 | POLLIN | POLLHUP
§ pair-shutdown-rw-send-recv aix: unknown
EOF
dragonfly: unknown
EOF
freebsd: unknown
EOF
haiku: bad
shutdown: ENOTSUP
hurd: bad
x
linux: bad
x
macos: unknown
EOF
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
EOF
openbsd: unknown
EOF
solaris: bad
x
sortix: unknown
EOF
§ pair-shutdown-w-poll aix: unknown
0 | POLLOUT
dragonfly: unknown
0 | POLLHUP
freebsd: unknown
0 | POLLOUT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
poll returned 0
linux: unknown
0 | POLLOUT
macos: unknown
0 | POLLHUP
minix: unknown
0 | POLLOUT
netbsd: unknown
0 | POLLOUT
omnios: unknown
0 | POLLOUT
openbsd: unknown
0 | POLLOUT
solaris: unknown
0 | POLLOUT
sortix: unknown
0 | POLLHUP
§ pair-shutdown-w-send-poll aix: unknown
0 | POLLIN | POLLOUT
dragonfly: unknown
0 | POLLIN | POLLHUP
freebsd: unknown
0 | POLLIN | POLLOUT
haiku: bad
shutdown: ENOTSUP
hurd: unknown
0 | POLLIN
linux: unknown
0 | POLLIN | POLLOUT
macos: unknown
0 | POLLIN | POLLHUP
minix: unknown
0 | POLLIN | POLLOUT
netbsd: unknown
0 | POLLIN | POLLOUT
omnios: unknown
0 | POLLIN | POLLOUT
openbsd: unknown
0 | POLLIN | POLLOUT
solaris: unknown
0 | POLLIN | POLLOUT
sortix: unknown
0 | POLLIN | POLLHUP
§ pair-shutdown-w-send-recv aix: good
x
dragonfly: good
x
freebsd: good
x
haiku: bad
shutdown: ENOTSUP
hurd: good
x
linux: good
x
macos: good
x
minix: good
x
netbsd: good
x
omnios: good
x
openbsd: good
x
solaris: good
x
sortix: good
x
§ poll aix: unknown
0 | POLLOUT
dragonfly: unknown
0 | POLLOUT
freebsd: unknown
0 | POLLOUT
haiku: unknown
0 | POLLOUT
hurd: unknown
0 | POLLOUT
linux: unknown
0 | POLLOUT
macos: unknown
0 | POLLOUT
minix: unknown
0 | POLLOUT
netbsd: unknown
0 | POLLOUT
omnios: unknown
0 | POLLOUT
openbsd: unknown
0 | POLLOUT
solaris: unknown
0 | POLLOUT
sortix: unknown
0 | POLLOUT
§ recvfrom-getsockname aix: good
0.0.0.0:0
dragonfly: good
0.0.0.0:0
freebsd: good
0.0.0.0:0
haiku: good
0.0.0.0:0
hurd: unknown
0.0.0.0:non-zero
linux: good
0.0.0.0:0
macos: good
0.0.0.0:0
minix: good
0.0.0.0:0
netbsd: good
0.0.0.0:0
omnios: good
0.0.0.0:0
openbsd: good
0.0.0.0:0
solaris: good
0.0.0.0:0
sortix: good
0.0.0.0:0
§ send aix: good
send: EDESTADDRREQ
dragonfly: good
send: EDESTADDRREQ
freebsd: good
send: EDESTADDRREQ
haiku: good
send: EDESTADDRREQ
hurd: bad
send: ENOTCONN
linux: good
send: EDESTADDRREQ
macos: good
send: EDESTADDRREQ
minix: good
send: EDESTADDRREQ
netbsd: good
send: EDESTADDRREQ
omnios: good
send: EDESTADDRREQ
openbsd: good
send: EDESTADDRREQ
solaris: good
send: EDESTADDRREQ
sortix: good
send: EDESTADDRREQ
§ sendto-any-so-error aix: unknown
exit: 0
dragonfly: unknown
exit: 0
freebsd: unknown
exit: 0
haiku: unknown
sendto: EDESTADDRREQ
hurd: unknown
exit: 0
linux: unknown
exit: 0
macos: unknown
exit: 0
minix: bad
sendto: EHOSTUNREACH
netbsd: unknown
exit: 0
omnios: unknown
exit: 0
openbsd: unknown
sendto: ENETUNREACH
solaris: unknown
exit: 0
sortix: unknown
sendto: ENETUNREACH
§ sendto-getsockname aix: good
0.0.0.0:non-zero
dragonfly: good
0.0.0.0:non-zero
freebsd: good
0.0.0.0:non-zero
haiku: good
0.0.0.0:non-zero
hurd: good
0.0.0.0:non-zero
linux: good
0.0.0.0:non-zero
macos: good
0.0.0.0:non-zero
minix: good
0.0.0.0:non-zero
netbsd: good
0.0.0.0:non-zero
omnios: good
0.0.0.0:non-zero
openbsd: good
0.0.0.0:non-zero
solaris: good
0.0.0.0:non-zero
sortix: good
0.0.0.0:non-zero
§ sendto-loopback-0-so-error aix: unknown
sendto: EADDRNOTAVAIL
dragonfly: unknown
exit: 0
freebsd: unknown
sendto: EADDRNOTAVAIL
haiku: unknown
exit: 0
hurd: bad
sendto: EINVAL
linux: bad
sendto: EINVAL
macos: unknown
sendto: EADDRNOTAVAIL
minix: unknown
sendto: EADDRNOTAVAIL
netbsd: unknown
sendto: EADDRNOTAVAIL
omnios: unknown
exit: 0
openbsd: unknown
sendto: EADDRNOTAVAIL
solaris: unknown
exit: 0
sortix: unknown
sendto: EADDRNOTAVAIL
§ sendto-null aix: good
sendto: EDESTADDRREQ
dragonfly: good
sendto: EDESTADDRREQ
freebsd: good
sendto: EDESTADDRREQ
haiku: bad
sendto: EINVAL
hurd: bad
sendto: ENOTCONN
linux: good
sendto: EDESTADDRREQ
macos: good
sendto: EDESTADDRREQ
minix: good
sendto: EDESTADDRREQ
netbsd: good
sendto: EDESTADDRREQ
omnios: good
sendto: EDESTADDRREQ
openbsd: good
sendto: EDESTADDRREQ
solaris: good
sendto: EDESTADDRREQ
sortix: good
sendto: EDESTADDRREQ
§ shutdown aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
exit: 0
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
exit: 0
netbsd: unknown
exit: 0
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
exit: 0
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
exit: 0
§ shutdown-r-recv aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
EOF
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
EOF
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
EOF
§ shutdown-r-send aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
exit: 0
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
exit: 0
netbsd: unknown
exit: 0
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
exit: 0
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
exit: 0
§ shutdown-rw-recv aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
EOF
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
EOF
netbsd: unknown
EOF
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
EOF
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
EOF
§ shutdown-rw-send aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
sendto: EPIPE
SIGPIPE
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
sendto: EPIPE
netbsd: unknown
sendto: EPIPE
SIGPIPE
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
sendto: EPIPE
SIGPIPE
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
sendto: EPIPE
SIGPIPE
§ shutdown-w-recv aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
recv: EWOULDBLOCK
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
recv: EWOULDBLOCK
netbsd: unknown
recv: EWOULDBLOCK
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
recv: EWOULDBLOCK
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
recv: EWOULDBLOCK
§ shutdown-w-send aix: unknown
shutdown: ENOTCONN
dragonfly: unknown
sendto: EPIPE
SIGPIPE
freebsd: unknown
shutdown: ENOTCONN
haiku: bad
shutdown: ENOTSUP
hurd: unknown
shutdown: ENOTCONN
linux: unknown
shutdown: ENOTCONN
macos: unknown
shutdown: ENOTCONN
minix: unknown
sendto: EPIPE
netbsd: unknown
sendto: EPIPE
SIGPIPE
omnios: unknown
shutdown: ENOTCONN
openbsd: unknown
sendto: EPIPE
SIGPIPE
solaris: unknown
shutdown: ENOTCONN
sortix: unknown
sendto: EPIPE
SIGPIPE
§ so-error aix: good
SO_ERROR: no error
dragonfly: good
SO_ERROR: no error
freebsd: good
SO_ERROR: no error
haiku: good
SO_ERROR: no error
hurd: good
SO_ERROR: no error
linux: good
SO_ERROR: no error
macos: good
SO_ERROR: no error
minix: good
SO_ERROR: no error
netbsd: good
SO_ERROR: no error
omnios: good
SO_ERROR: no error
openbsd: good
SO_ERROR: no error
solaris: good
SO_ERROR: no error
sortix: good
SO_ERROR: no error
§ trio-connect-send-right-x-poll aix: good
0 | POLLIN | POLLOUT
dragonfly: good
0 | POLLIN | POLLOUT
freebsd: good
0 | POLLIN | POLLOUT
haiku: good
0 | POLLIN | POLLOUT
hurd: good
0 | POLLIN | POLLOUT
linux: good
0 | POLLIN | POLLOUT
macos: good
0 | POLLIN | POLLOUT
minix: good
0 | POLLIN | POLLOUT
netbsd: good
0 | POLLIN | POLLOUT
omnios: good
0 | POLLIN | POLLOUT
openbsd: good
0 | POLLIN | POLLOUT
solaris: good
0 | POLLIN | POLLOUT
sortix: good
0 | POLLIN | POLLOUT
§ trio-connect-send-right-x-recv aix: good
x
dragonfly: good
x
freebsd: good
x
haiku: good
x
hurd: good
x
linux: good
x
macos: good
x
minix: good
x
netbsd: good
x
omnios: good
x
openbsd: good
x
solaris: good
x
sortix: good
x
§ trio-connect-send-wrong-y-poll aix: good
0 | POLLOUT
dragonfly: good
0 | POLLOUT
freebsd: good
0 | POLLOUT
haiku: good
0 | POLLOUT
hurd: good
0 | POLLOUT
linux: good
0 | POLLOUT
macos: good
0 | POLLOUT
minix: good
0 | POLLOUT
netbsd: good
0 | POLLOUT
omnios: good
0 | POLLOUT
openbsd: good
0 | POLLOUT
solaris: good
0 | POLLOUT
sortix: good
0 | POLLOUT
§ trio-connect-send-wrong-y-recv aix: good
recv: EWOULDBLOCK
dragonfly: good
recv: EWOULDBLOCK
freebsd: good
recv: EWOULDBLOCK
haiku: good
recv: EWOULDBLOCK
hurd: good
recv: EWOULDBLOCK
linux: good
recv: EWOULDBLOCK
macos: good
recv: EWOULDBLOCK
minix: good
recv: EWOULDBLOCK
netbsd: good
recv: EWOULDBLOCK
omnios: good
recv: EWOULDBLOCK
openbsd: good
recv: EWOULDBLOCK
solaris: good
recv: EWOULDBLOCK
sortix: good
recv: EWOULDBLOCK
§ trio-connect-send-wrong-y-send-right-x-poll aix: good
0 | POLLIN | POLLOUT
dragonfly: good
0 | POLLIN | POLLOUT
freebsd: good
0 | POLLIN | POLLOUT
haiku: good
0 | POLLIN | POLLOUT
hurd: good
0 | POLLIN | POLLOUT
linux: good
0 | POLLIN | POLLOUT
macos: good
0 | POLLIN | POLLOUT
minix: good
0 | POLLIN | POLLOUT
netbsd: good
0 | POLLIN | POLLOUT
omnios: good
0 | POLLIN | POLLOUT
openbsd: good
0 | POLLIN | POLLOUT
solaris: good
0 | POLLIN | POLLOUT
sortix: good
0 | POLLIN | POLLOUT
§ trio-connect-send-wrong-y-send-right-x-recv aix: good
x
dragonfly: good
x
freebsd: good
x
haiku: good
x
hurd: good
x
linux: good
x
macos: good
x
minix: good
x
netbsd: good
x
omnios: good
x
openbsd: good
x
solaris: good
x
sortix: good
x
§ trio-send-right-x-poll aix: good
0 | POLLIN | POLLOUT
dragonfly: good
0 | POLLIN | POLLOUT
freebsd: good
0 | POLLIN | POLLOUT
haiku: good
0 | POLLIN | POLLOUT
hurd: good
0 | POLLIN | POLLOUT
linux: good
0 | POLLIN | POLLOUT
macos: good
0 | POLLIN | POLLOUT
minix: good
0 | POLLIN | POLLOUT
netbsd: good
0 | POLLIN | POLLOUT
omnios: good
0 | POLLIN | POLLOUT
openbsd: good
0 | POLLIN | POLLOUT
solaris: good
0 | POLLIN | POLLOUT
sortix: good
0 | POLLIN | POLLOUT
§ trio-send-right-x-recv aix: good
x
dragonfly: good
x
freebsd: good
x
haiku: good
x
hurd: good
x
linux: good
x
macos: good
x
minix: good
x
netbsd: good
x
omnios: good
x
openbsd: good
x
solaris: good
x
sortix: good
x
§ trio-send-right-x-send-wrong-y-poll aix: good
0 | POLLIN | POLLOUT
dragonfly: good
0 | POLLIN | POLLOUT
freebsd: good
0 | POLLIN | POLLOUT
haiku: good
0 | POLLIN | POLLOUT
hurd: good
0 | POLLIN | POLLOUT
linux: good
0 | POLLIN | POLLOUT
macos: good
0 | POLLIN | POLLOUT
minix: good
0 | POLLIN | POLLOUT
netbsd: good
0 | POLLIN | POLLOUT
omnios: good
0 | POLLIN | POLLOUT
openbsd: good
0 | POLLIN | POLLOUT
solaris: good
0 | POLLIN | POLLOUT
sortix: good
0 | POLLIN | POLLOUT
§ trio-send-right-x-send-wrong-y-recv aix: good
x
dragonfly: good
x
freebsd: good
x
haiku: good
x
hurd: good
x
linux: good
x
macos: good
x
minix: good
x
netbsd: good
x
omnios: good
x
openbsd: good
x
solaris: good
x
sortix: good
x
§ trio-send-wrong-y-connect-poll aix: bad
0 | POLLIN | POLLOUT
dragonfly: bad
0 | POLLIN | POLLOUT
freebsd: bad
0 | POLLIN | POLLOUT
haiku: bad
0 | POLLIN | POLLOUT
hurd: bad
0 | POLLIN | POLLOUT
linux: bad
0 | POLLIN | POLLOUT
macos: bad
0 | POLLIN | POLLOUT
minix: bad
0 | POLLIN | POLLOUT
netbsd: bad
0 | POLLIN | POLLOUT
omnios: bad
0 | POLLIN | POLLOUT
openbsd: bad
0 | POLLIN | POLLOUT
solaris: bad
0 | POLLIN | POLLOUT
sortix: good
0 | POLLOUT
§ trio-send-wrong-y-connect-recv aix: bad
y
dragonfly: bad
y
freebsd: bad
y
haiku: bad
y
hurd: bad
y
linux: bad
y
macos: bad
y
minix: bad
y
netbsd: bad
y
omnios: bad
y
openbsd: bad
y
solaris: bad
y
sortix: good
recv: EWOULDBLOCK
§ trio-send-wrong-y-connect-send-right-x-poll aix: good
0 | POLLIN | POLLOUT
dragonfly: good
0 | POLLIN | POLLOUT
freebsd: good
0 | POLLIN | POLLOUT
haiku: good
0 | POLLIN | POLLOUT
hurd: good
0 | POLLIN | POLLOUT
linux: good
0 | POLLIN | POLLOUT
macos: good
0 | POLLIN | POLLOUT
minix: good
0 | POLLIN | POLLOUT
netbsd: good
0 | POLLIN | POLLOUT
omnios: good
0 | POLLIN | POLLOUT
openbsd: good
0 | POLLIN | POLLOUT
solaris: good
0 | POLLIN | POLLOUT
sortix: good
0 | POLLIN | POLLOUT
§ trio-send-wrong-y-connect-send-right-x-recv aix: bad
y
dragonfly: bad
y
freebsd: bad
y
haiku: bad
y
hurd: bad
y
linux: bad
y
macos: bad
y
minix: bad
y
netbsd: bad
y
omnios: bad
y
openbsd: bad
y
solaris: bad
y
sortix: good
x
§ unconnect aix: good
exit: 0
dragonfly: good
exit: 0
freebsd: bad
unconnect: EAFNOSUPPORT
haiku: good
exit: 0
hurd: good
exit: 0
linux: good
exit: 0
macos: bad
unconnect: EAFNOSUPPORT
minix: good
exit: 0
netbsd: bad
unconnect: EAFNOSUPPORT
omnios: bad
unconnect: EINVAL
openbsd: bad
unconnect: EAFNOSUPPORT
solaris: bad
unconnect: EINVAL
sortix: good
exit: 0
§ unconnect-getpeername aix: good
getpeername: ENOTCONN
dragonfly: good
getpeername: ENOTCONN
freebsd: bad
unconnect: EAFNOSUPPORT
haiku: bad
0.0.0.0:0
hurd: good
getpeername: ENOTCONN
linux: good
getpeername: ENOTCONN
macos: bad
unconnect: EAFNOSUPPORT
minix: good
getpeername: ENOTCONN
netbsd: bad
unconnect: EAFNOSUPPORT
omnios: bad
unconnect: EINVAL
openbsd: bad
unconnect: EAFNOSUPPORT
solaris: bad
unconnect: EINVAL
sortix: good
getpeername: ENOTCONN
§ unconnect-getsockname aix: unknown
0.0.0.0:0
dragonfly: unknown
0.0.0.0:non-zero
freebsd: bad
unconnect: EAFNOSUPPORT
haiku: unknown
0.0.0.0:non-zero
hurd: unknown
0.0.0.0:non-zero
linux: unknown
0.0.0.0:0
macos: bad
unconnect: EAFNOSUPPORT
minix: unknown
0.0.0.0:0
netbsd: bad
unconnect: EAFNOSUPPORT
omnios: bad
unconnect: EINVAL
openbsd: bad
unconnect: EAFNOSUPPORT
solaris: bad
unconnect: EINVAL
sortix: unknown
0.0.0.0:0
Copyright 2011-2025 Jonas 'Sortie' Termansen and contributors.
Sortix's source code is free software under the ISC license.
#sortix on irc.sortix.org
@sortix_org