os-test > paths
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.
paths
This suite tests whether common paths exist in the filesystem.
POSIX only requires /, /dev, /dev/console, /dev/null, /dev/tty, and /tmp to exist. All other files and directories are optional and their won't count against your system. Except /bin/sh that everyone really must have as universal de-facto behavior. /usr/bin/env also really needs to exist for compatibility with countless #! scripts. The reality is that there is a lot of paths that are ultimately de-facto and everyone has. Meanwhile there are a lot of paths and devices that are useful but varies between systems. This suite studies what facilities are available on which systems.
| aix AIX 7.3 powerpc |
dragonfly DragonFly 6.4-RELEASE x86_64 |
freebsd FreeBSD 15.0-RELEASE amd64 |
haiku Haiku hrev59326 Jan 20 2026 x86_64 |
hurd GNU 0.9 i686-AT386 |
linux Linux 6.17.13+deb14-amd64 x86_64 |
macos macOS 15.7.1 Darwin 24.6.0 arm64 |
managarm Managarm 0.0.1-rolling x86_64 |
minix Minix 3.4.0 i386 |
musl Linux 6.12.54-0-lts x86_64 |
netbsd NetBSD 10.1 amd64 |
omnios SunOS 5.11 r151056 i386 |
openbsd OpenBSD 7.8 amd64 |
redox Redox 0.5.12 x86_64 |
solaris SunOS 5.11 11.4.89.207.2 sparc |
sortix Sortix 1.1.0-dev Dec 23 2025 x86_64 |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| § bin | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § bin-sh | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § boot | aix: good /boot: ENOENT |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good /boot: ENOENT |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § dev | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § dev-console | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § dev-fd | aix: good /dev/fd: ENOENT |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /dev/fd: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good /dev/fd: ENOENT |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good /dev/fd: ENOENT |
| § dev-full | aix: good /dev/full: ENOENT |
dragonfly: good /dev/full: ENOENT |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good /dev/full: ENOENT |
managarm: none | minix: good /dev/full: ENOENT |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good /dev/full: ENOENT |
redox: none | solaris: good Yes |
sortix: good Yes |
| § dev-null | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § dev-ptc | aix: good Yes |
dragonfly: good /dev/ptc: ENOENT |
freebsd: good /dev/ptc: ENOENT |
haiku: good /dev/ptc: ENOENT |
hurd: good /dev/ptc: ENOENT |
linux: good /dev/ptc: ENOENT |
macos: good /dev/ptc: ENOENT |
managarm: none | minix: good /dev/ptc: ENOENT |
musl: good /dev/ptc: ENOENT |
netbsd: good /dev/ptc: ENOENT |
omnios: good /dev/ptc: ENOENT |
openbsd: good /dev/ptc: ENOENT |
redox: none | solaris: good /dev/ptc: ENOENT |
sortix: good /dev/ptc: ENOENT |
| § dev-ptm | aix: good /dev/ptm: ENOENT |
dragonfly: good /dev/ptm: ENOENT |
freebsd: good /dev/ptm: ENOENT |
haiku: good /dev/ptm: ENOENT |
hurd: good /dev/ptm: ENOENT |
linux: good /dev/ptm: ENOENT |
macos: good /dev/ptm: ENOENT |
managarm: none | minix: good /dev/ptm: ENOENT |
musl: good /dev/ptm: ENOENT |
netbsd: good Yes |
omnios: good /dev/ptm: ENOENT |
openbsd: good Yes |
redox: none | solaris: good /dev/ptm: ENOENT |
sortix: good /dev/ptm: ENOENT |
| § dev-ptmx | aix: good /dev/ptmx: ENOENT |
dragonfly: good Yes |
freebsd: good /dev/ptmx: ENOENT |
haiku: good Yes |
hurd: good /dev/ptmx: ENOENT |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good /dev/ptmx: ENOENT |
redox: none | solaris: good Yes |
sortix: good Yes |
| § dev-pts | aix: good Yes |
dragonfly: good /dev/pts: ENOENT |
freebsd: good Yes |
haiku: good /dev/pts: ENOENT |
hurd: good /dev/pts: ENOENT |
linux: good Yes |
macos: good /dev/pts: ENOENT |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good /dev/pts: ENOENT |
redox: none | solaris: good Yes |
sortix: good Yes |
| § dev-random | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § dev-stderr | aix: good /dev/stderr: ENOENT |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /dev/stderr: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good /dev/stderr: ENOENT |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good /dev/stderr: ENOENT |
| § dev-stdin | aix: good /dev/stdin: ENOENT |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /dev/stdin: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good /dev/stdin: ENOENT |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good /dev/stdin: ENOENT |
| § dev-stdout | aix: good /dev/stdout: ENOENT |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /dev/stdout: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good /dev/stdout: ENOENT |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good /dev/stdout: ENOENT |
| § dev-tty | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § dev-urandom | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § dev-zero | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § etc | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § lib | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /lib: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good /lib: ENOENT |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good /lib: ENOENT |
redox: none | solaris: good Yes |
sortix: good Yes |
| § proc | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /proc: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good /proc: ENOENT |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good /proc: ENOENT |
redox: none | solaris: good Yes |
sortix: good /proc: ENOENT |
| § root | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § run | aix: good /run: ENOENT |
dragonfly: good /run: ENOENT |
freebsd: good /run: ENOENT |
haiku: good /run: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good /run: ENOENT |
managarm: none | minix: good /run: ENOENT |
musl: good Yes |
netbsd: good /run: ENOENT |
omnios: good /run: ENOENT |
openbsd: good /run: ENOENT |
redox: none | solaris: good /run: ENOENT |
sortix: good /run: ENOENT |
| § sbin | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /sbin: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § srv | aix: good /srv: ENOENT |
dragonfly: good /srv: ENOENT |
freebsd: good /srv: ENOENT |
haiku: good /srv: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good /srv: ENOENT |
managarm: none | minix: good /srv: ENOENT |
musl: good Yes |
netbsd: good /srv: ENOENT |
omnios: good /srv: ENOENT |
openbsd: good /srv: ENOENT |
redox: none | solaris: good /srv: ENOENT |
sortix: good /srv: ENOENT |
| § sys | aix: good /sys: ENOENT |
dragonfly: good /sys: ENOENT |
freebsd: good Yes |
haiku: good /sys: ENOENT |
hurd: good /sys: ENOENT |
linux: good Yes |
macos: good /sys: ENOENT |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good /sys: ENOENT |
omnios: good /sys: ENOENT |
openbsd: good /sys: ENOENT |
redox: none | solaris: good /sys: ENOENT |
sortix: good /sys: ENOENT |
| § tmp | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § usr | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /usr: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § usr-bin | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /usr/bin: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § usr-bin-env | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /usr/bin/env: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § usr-games | aix: good /usr/games: ENOENT |
dragonfly: good Yes |
freebsd: good /usr/games: ENOENT |
haiku: good /usr/games: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good /usr/games: ENOENT |
managarm: none | minix: good Yes |
musl: good /usr/games: ENOENT |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good /usr/games: ENOENT |
| § usr-include | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /usr/include: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good /usr/include: ENOENT |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § usr-lib | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /usr/lib: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § usr-libexec | aix: good /usr/libexec: ENOENT |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /usr/libexec: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good /usr/libexec: ENOENT |
sortix: good Yes |
| § usr-man | aix: good Yes |
dragonfly: good /usr/man: ENOENT |
freebsd: good /usr/man: ENOENT |
haiku: good /usr/man: ENOENT |
hurd: good /usr/man: ENOENT |
linux: good /usr/man: ENOENT |
macos: good /usr/man: ENOENT |
managarm: none | minix: good Yes |
musl: good /usr/man: ENOENT |
netbsd: good /usr/man: ENOENT |
omnios: good Yes |
openbsd: good /usr/man: ENOENT |
redox: none | solaris: good Yes |
sortix: good /usr/man: ENOENT |
| § usr-sbin | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /usr/sbin: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § usr-share | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /usr/share: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § usr-share-man | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /usr/share/man: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good /usr/share/man: ENOENT |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § var | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § var-cache | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /var/cache: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good /var/cache: ENOENT |
managarm: none | minix: good /var/cache: ENOENT |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § var-empty | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good /var/empty: ENOENT |
linux: good /var/empty: ENOENT |
macos: good Yes |
managarm: none | minix: good /var/empty: ENOENT |
musl: good Yes |
netbsd: good /var/empty: ENOENT |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § var-lib | aix: good Yes |
dragonfly: good /var/lib: ENOENT |
freebsd: good /var/lib: ENOENT |
haiku: good /var/lib: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good /var/lib: ENOENT |
musl: good Yes |
netbsd: good /var/lib: ENOENT |
omnios: good Yes |
openbsd: good /var/lib: ENOENT |
redox: none | solaris: good Yes |
sortix: good Yes |
| § var-lock | aix: good /var/lock: ENOENT |
dragonfly: good /var/lock: ENOENT |
freebsd: good /var/lock: ENOENT |
haiku: good /var/lock: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good /var/lock: ENOENT |
managarm: none | minix: good /var/lock: ENOENT |
musl: good Yes |
netbsd: good /var/lock: ENOENT |
omnios: good /var/lock: ENOENT |
openbsd: good /var/lock: ENOENT |
redox: none | solaris: good /var/lock: ENOENT |
sortix: good /var/lock: ENOENT |
| § var-log | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good Yes |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § var-run | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /var/run: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good Yes |
| § var-spool | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /var/spool: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good /var/spool: ENOENT |
| § var-tmp | aix: good Yes |
dragonfly: good Yes |
freebsd: good Yes |
haiku: good /var/tmp: ENOENT |
hurd: good Yes |
linux: good Yes |
macos: good Yes |
managarm: none | minix: good Yes |
musl: good Yes |
netbsd: good Yes |
omnios: good Yes |
openbsd: good Yes |
redox: none | solaris: good Yes |
sortix: good /var/tmp: ENOENT |