status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
pass | 12 | 13 | 14 | 12 | 12 | 12 | 9 | 10 | 11 | 14 | |
ok | 2 | 1 | 0 | 3 | 2 | 0 | 0 | 0 | 0 | 1 | |
BUG | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
FAIL | 0 | 0 | 1 | 0 | 0 | 3 | 6 | 5 | 4 | 0 | |
total | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | |
case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
0 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Command block |
1 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Permission denied |
details | |||||||||||
2 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Not a dir |
3 | ok | ok | pass | pass | pass | pass | pass | pass | FAIL | pass | Name too long |
details | details | details | |||||||||
4 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | External programs don't have _OVM in environment |
5 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | File with no shebang is executed |
6 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | File with relative path and no shebang is executed |
7 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | File in relative subdirectory and no shebang is executed |
8 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | $PATH lookup |
9 | pass | pass | pass | ok | pass | pass | FAIL | FAIL | pass | pass | filling $PATH cache, then insert the same command earlier in cache |
details | details | details | |||||||||
10 | pass | pass | pass | ok | ok | FAIL | FAIL | FAIL | pass | pass | filling $PATH cache, then deleting command |
details | details | details | details | details | |||||||
11 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Non-executable on $PATH |
12 | ok | pass | pass | ok | ok | FAIL | FAIL | FAIL | FAIL | pass | hash without args prints the cache |
details | details | details | details | details | details | details | |||||
13 | pass | pass | pass | pass | BUG | FAIL | FAIL | FAIL | FAIL | pass | hash with args |
details | details | details | details | details | |||||||
14 | BUG | BUG | FAIL | pass | pass | pass | FAIL | FAIL | FAIL | ok | hash -r doesn't allow additional args |
details | details | details | details | details | details | details |
119 passed, 9 OK, 0 not implemented, 3 BUG, 19 failed, 0 timeouts, 0 cases skipped
toysh | 1 Permission denied [toysh status] Expected 126, got 127 stdout: stderr: sh: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/command_.test.sh/01-toysh/text-file: Permission denied |
bash | 3 Name too long stdout: stderr: bash: line 1: ./0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789: File name too long |
dash | 3 Name too long stdout: stderr: dash: 1: ./0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789: File name too long |
brush | 3 Name too long [brush status] Expected 127, got 126 stdout: stderr: [31mERROR[0m File name too long (os error 36) |
zsh | 9 filling $PATH cache, then insert the same command earlier in cache stdout: two one onestderr: zsh: no matches found: one/* |
toysh | 9 filling $PATH cache, then insert the same command earlier in cache [toysh stdout] Expected 'two\ntwo\none\n', got 'two\none\none\n' stdout: two one onestderr: sh: hash: No such file or directory |
sush | 9 filling $PATH cache, then insert the same command earlier in cache [sush stdout] Expected 'two\ntwo\none\n', got 'two\none\none\n' stdout: two one onestderr: |
zsh | 10 filling $PATH cache, then deleting command stdout: two status=0 one status=0stderr: |
mksh | 10 filling $PATH cache, then deleting command stdout: two status=0 one status=0stderr: |
ksh | 10 filling $PATH cache, then deleting command [ksh stdout] Expected 'two\nstatus=0\nstatus=127\n', got 'two\nstatus=0\none\nstatus=0\n' stdout: two status=0 one status=0stderr: |
toysh | 10 filling $PATH cache, then deleting command [toysh stdout] Expected 'two\nstatus=0\nstatus=127\n', got 'two\nstatus=0\none\nstatus=0\n' stdout: two status=0 one status=0stderr: |
sush | 10 filling $PATH cache, then deleting command [sush stdout] Expected 'two\nstatus=0\nstatus=127\n', got 'two\nstatus=0\none\nstatus=0\n' stdout: two status=0 one status=0stderr: |
bash | 12 hash without args prints the cache stdout: hits command 1 /usr/bin/whoami status=0stderr: |
zsh | 12 hash without args prints the cache stdout: whoami=/usr/bin/whoami status=0stderr: |
mksh | 12 hash without args prints the cache stdout: whoami=/usr/bin/whoami status=0stderr: |
ksh | 12 hash without args prints the cache [ksh stdout] Expected '/usr/bin/whoami\nstatus=0\n', got 'whoami=/usr/bin/whoami\nstatus=0\n' stdout: whoami=/usr/bin/whoami status=0stderr: |
toysh | 12 hash without args prints the cache [toysh stdout] Expected '/usr/bin/whoami\nstatus=0\n', got 'status=127\n' stdout: status=127stderr: sh: hash: No such file or directory |
sush | 12 hash without args prints the cache [sush stdout] Expected '/usr/bin/whoami\nstatus=0\n', got 'hits\tcommand\n 1\t/usr/bin/whoami\nstatus=0\n' stdout: hits command 1 /usr/bin/whoami status=0stderr: |
brush | 12 hash without args prints the cache [brush stdout] Expected '/usr/bin/whoami\nstatus=0\n', got 'status=0\n' stdout: status=0stderr: |
mksh | 13 hash with args stdout: status=0 /whoami status=0stderr: |
ksh | 13 hash with args [ksh stdout] Expected 'status=0\n/whoami\nstatus=1\n', got 'status=0\n/whoami\nstatus=0\n' stdout: status=0 /whoami status=0stderr: |
toysh | 13 hash with args [toysh stdout] Expected 'status=0\n/whoami\nstatus=1\n', got 'status=127\nstatus=127\n' stdout: status=127 status=127stderr: sh: hash: No such file or directory sh: hash: No such file or directory sh: hash: No such file or directory |
sush | 13 hash with args [sush stdout] Expected 'status=0\n/whoami\nstatus=1\n', got 'status=0\nstatus=0\n' stdout: status=0 status=0stderr: |
brush | 13 hash with args [brush stdout] Expected 'status=0\n/whoami\nstatus=1\n', got 'status=0\nstatus=1\n' stdout: status=0 status=1stderr: _nonexistent_: not found |
bash | 14 hash -r doesn't allow additional args stdout: status=0stderr: |
dash | 14 hash -r doesn't allow additional args stdout: status=0stderr: |
ash | 14 hash -r doesn't allow additional args [ash stdout] Expected 'status=1\n', got 'status=0\n' stdout: status=0stderr: |
toysh | 14 hash -r doesn't allow additional args [toysh stdout] Expected 'status=1\n', got 'status=127\n' stdout: status=127stderr: sh: hash: No such file or directory |
sush | 14 hash -r doesn't allow additional args [sush stdout] Expected 'status=1\n', got 'status=0\n' stdout: status=0stderr: |
brush | 14 hash -r doesn't allow additional args [brush stdout] Expected 'status=1\n', got 'status=0\n' stdout: status=0stderr: |
osh | 14 hash -r doesn't allow additional args stdout: status=2stderr: hash -r whoami >/dev/null # avoid weird output with mksh ^~~~ [ stdin ]:1: 'hash' got extra arguments after -r |