| status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
| pass | 16 | 8 | 8 | 12 | 13 | 13 | 1 | 8 | 11 | 18 | |
| ok | 1 | 2 | 2 | 2 | 3 | 0 | 0 | 0 | 0 | 0 | |
| N-I | 0 | 4 | 4 | 3 | 1 | 0 | 0 | 0 | 0 | 0 | |
| BUG-2 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| BUG | 1 | 3 | 3 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | |
| FAIL | 0 | 0 | 0 | 0 | 0 | 5 | 17 | 10 | 7 | 0 | |
| total | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | |
| case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
| 0 | pass | ok | ok | pass | pass | pass | FAIL | FAIL | FAIL | pass | command -v |
| details | details | details | details | details | |||||||
| 1 | pass | pass | pass | pass | pass | pass | FAIL | FAIL | pass | pass | command -v executable, builtin |
| details | details | ||||||||||
| 2 | BUG | BUG-2 | BUG-2 | pass | ok | FAIL | FAIL | FAIL | FAIL | pass | command -v with multiple names |
| details | details | details | details | details | details | details | details | ||||
| 3 | pass | BUG | BUG | pass | pass | FAIL | FAIL | pass | FAIL | pass | command -v doesn't find non-executable file |
| details | details | details | details | details | |||||||
| 4 | pass | BUG | BUG | pass | BUG | pass | FAIL | FAIL | FAIL | pass | command -v doesn't find executable dir |
| details | details | details | details | details | details | ||||||
| 5 | ok | ok | ok | ok | ok | FAIL | FAIL | FAIL | FAIL | pass | command -V |
| details | details | details | details | details | details | details | details | details | |||
| 6 | pass | BUG | BUG | ok | ok | FAIL | FAIL | pass | pass | pass | command -V nonexistent |
| details | details | details | details | details | details | ||||||
| 7 | pass | pass | pass | pass | pass | pass | FAIL | FAIL | pass | pass | command skips function lookup |
| details | details | ||||||||||
| 8 | pass | pass | pass | N-I | pass | pass | FAIL | pass | pass | pass | command command seq 3 |
| details | details | ||||||||||
| 9 | pass | pass | pass | N-I | pass | pass | FAIL | pass | FAIL | pass | command command -v seq |
| details | details | details | |||||||||
| 10 | pass | pass | pass | pass | pass | pass | FAIL | FAIL | pass | pass | command -p (override existing program) |
| details | details | ||||||||||
| 11 | pass | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | command -p (hide tool in custom path) |
| details | |||||||||||
| 12 | pass | pass | pass | pass | pass | pass | FAIL | FAIL | pass | pass | command -p (find hidden tool in default path) |
| details | details | ||||||||||
| 13 | pass | pass | pass | N-I | N-I | FAIL | FAIL | pass | pass | pass | $(command type ls) |
| details | details | details | details | ||||||||
| 14 | pass | N-I | N-I | pass | pass | pass | FAIL | pass | pass | pass | builtin |
| details | details | details | |||||||||
| 15 | pass | N-I | N-I | pass | pass | pass | FAIL | pass | pass | pass | builtin ls not found |
| details | details | details | |||||||||
| 16 | pass | N-I | N-I | BUG | pass | pass | FAIL | FAIL | FAIL | pass | builtin usage |
| details | details | details | details | details | details | ||||||
| 17 | pass | N-I | N-I | pass | pass | pass | FAIL | pass | pass | pass | builtin command echo hi |
| details | details | details |
108 passed, 10 OK, 12 not implemented, 11 BUG, 39 failed, 0 timeouts, 0 cases skipped
| dash | 0 command -v stdout: echo 0 myfunc 0 nonexistent=127 empty=127 for 0stderr: |
| ash | 0 command -v stdout: echo 0 myfunc 0 nonexistent=127 empty=127 for 0stderr: |
| toysh | 0 command -v [toysh stdout] Expected 'echo\n0\nmyfunc\n0\nnonexistent=1\nempty=1\nfor\n0\n' Got '127\n127\nnonexistent=127\nempty=127\n127\n' stdout: 127 127 nonexistent=127 empty=127 127stderr: sh: command: No such file or directory sh: command: No such file or directory sh: command: No such file or directory sh: command: No such file or directory sh: command: No such file or directory |
| sush | 0 command -v [sush stdout] Expected 'echo\n0\nmyfunc\n0\nnonexistent=1\nempty=1\nfor\n0\n' Got 'echo\n0\nmyfunc\n0\nnonexistent=1\n\nempty=0\nfor\n0\n' stdout: echo 0 myfunc 0 nonexistent=1 empty=0 for 0stderr: |
| brush | 0 command -v [brush stdout] Expected 'echo\n0\nmyfunc\n0\nnonexistent=1\nempty=1\nfor\n0\n' Got 'echo\n0\n1\nnonexistent=1\n/home/andy/git/oils-for-unix/oils/spec/bin/\nempty=0\n1\n' stdout: echo 0 1 nonexistent=1 /home/andy/git/oils-for-unix/oils/spec/bin/ empty=0 1stderr: |
| toysh | 1 command -v executable, builtin [toysh stdout] Expected '/grep\n/ls\n\ntrue\neval\n' Got '\n' [toysh status] Expected 0 Got 127 stdout: stderr: sh: command: No such file or directory sh: command: No such file or directory sh: command: No such file or directory sh: command: No such file or directory |
| sush | 1 command -v executable, builtin [sush stdout] Expected '/grep\n/ls\n\ntrue\neval\n' Got '\ntrue\neval\n' stdout: true evalstderr: |
| bash | 2 command -v with multiple names stdout: echo myfunc for status=0stderr: |
| dash | 2 command -v with multiple names stdout: echo status=0stderr: |
| ash | 2 command -v with multiple names stdout: echo status=0stderr: |
| mksh | 2 command -v with multiple names stdout: echo myfunc status=1stderr: |
| ksh | 2 command -v with multiple names [ksh stdout] Expected 'echo\nmyfunc\nfor\nstatus=1\n' Got 'echo\nmyfunc\nstatus=1\n' stdout: echo myfunc status=1stderr: |
| toysh | 2 command -v with multiple names [toysh stdout] Expected 'echo\nmyfunc\nfor\nstatus=1\n' Got 'status=127\n' stdout: status=127stderr: sh: command: No such file or directory |
| sush | 2 command -v with multiple names [sush stdout] Expected 'echo\nmyfunc\nfor\nstatus=1\n' Got 'echo\nmyfunc\nfor\nstatus=0\n' stdout: echo myfunc for status=0stderr: |
| brush | 2 command -v with multiple names [brush stdout] Expected 'echo\nmyfunc\nfor\nstatus=1\n' Got 'echo\nstatus=0\n' stdout: echo status=0stderr: |
| dash | 3 command -v doesn't find non-executable file stdout: _tmp/non-executable status=0 _tmp/executable status=0stderr: |
| ash | 3 command -v doesn't find non-executable file stdout: _tmp/non-executable status=0 _tmp/executable status=0stderr: |
| ksh | 3 command -v doesn't find non-executable file [ksh stdout] Expected 'status=1\n_tmp/executable\nstatus=0\n' Got 'status=1\n/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-meta.test.sh/03-ksh/_tmp/executable\nstatus=0\n' stdout: status=1 /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-meta.test.sh/03-ksh/_tmp/executable status=0stderr: |
| toysh | 3 command -v doesn't find non-executable file [toysh stdout] Expected 'status=1\n_tmp/executable\nstatus=0\n' Got 'status=127\nstatus=127\n' stdout: status=127 status=127stderr: sh: command: No such file or directory sh: command: No such file or directory |
| brush | 3 command -v doesn't find non-executable file [brush stdout] Expected 'status=1\n_tmp/executable\nstatus=0\n' Got 'status=1\n/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-meta.test.sh/03-brush/_tmp/executable\nstatus=0\n' stdout: status=1 /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-meta.test.sh/03-brush/_tmp/executable status=0stderr: |
| dash | 4 command -v doesn't find executable dir stdout: _tmp/cat status=0 /usr/bin/cat status=0stderr: |
| ash | 4 command -v doesn't find executable dir stdout: _tmp/cat status=0 /usr/bin/cat status=0stderr: |
| mksh | 4 command -v doesn't find executable dir stdout: status=1 cat status=0stderr: |
| toysh | 4 command -v doesn't find executable dir [toysh stdout] Expected 'status=1\n/usr/bin/cat\nstatus=0\n' Got 'status=127\nstatus=127\n' stdout: status=127 status=127stderr: sh: command: No such file or directory sh: command: No such file or directory |
| sush | 4 command -v doesn't find executable dir [sush stdout] Expected 'status=1\n/usr/bin/cat\nstatus=0\n' Got '_tmp/cat\nstatus=0\ncat\nstatus=0\n' stdout: _tmp/cat status=0 cat status=0stderr: |
| brush | 4 command -v doesn't find executable dir [brush stdout] Expected 'status=1\n/usr/bin/cat\nstatus=0\n' Got '/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-meta.test.sh/04-brush/_tmp/cat\nstatus=0\n_tmp/cat\nstatus=0\n' stdout: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-meta.test.sh/04-brush/_tmp/cat status=0 _tmp/cat status=0stderr: |
| bash | 5 command -V stdout: ll is aliased to 'ls -l'
status=0
echo is a shell builtin
status=0
myfunc is a function
myfunc ()
{
echo x
}
status=0
status=1
for is a shell keyword
status=0
stderr: bash: line 16: command: nonexistent: not found |
| dash | 5 command -V stdout: ll is an alias for ls -l status=0 echo is a shell builtin status=0 myfunc is a function status=0 nonexistent: not found status=127 for is a shell keyword status=0stderr: dash: 3: shopt: not found |
| ash | 5 command -V stdout: ll is an alias for ls -l status=0 echo is a shell builtin status=0 myfunc is a function status=0 nonexistent: not found status=127 for is a shell keyword status=0stderr: ash: shopt: not found |
| zsh | 5 command -V stdout: ll is an alias for ls -l status=0 echo is a shell builtin status=0 myfunc is a function status=0 nonexistent not found status=1 for is a reserved word status=0stderr: zsh: command not found: shopt |
| mksh | 5 command -V stdout: ll is an alias for 'ls -l' status=0 echo is a shell builtin status=0 myfunc is a function status=0 nonexistent not found status=1 for is a reserved word status=0stderr: mksh: <stdin>[3]: shopt: not found |
| ksh | 5 command -V [ksh stdout] Expected 'll is an alias for "ls -l"\nstatus=0\necho is a shell builtin\nstatus=0\nmyfunc is a function\nstatus=0\nstatus=1\nfor is a shell keyword\nstatus=0\n' Got "ll is an alias for 'ls -l'\nstatus=0\necho is a shell builtin\nstatus=0\nmyfunc is a function\nstatus=0\nnonexistent not found\nstatus=1\nfor is a reserved word\nstatus=0\n" stdout: ll is an alias for 'ls -l' status=0 echo is a shell builtin status=0 myfunc is a function status=0 nonexistent not found status=1 for is a reserved word status=0stderr: E: ksh: <stdin>[3]: shopt: inaccessible or not found |
| toysh | 5 command -V [toysh stdout] Expected 'll is an alias for "ls -l"\nstatus=0\necho is a shell builtin\nstatus=0\nmyfunc is a function\nstatus=0\nstatus=1\nfor is a shell keyword\nstatus=0\n' Got 'status=0\nstatus=127\nstatus=0\nstatus=127\nstatus=127\n' stdout: status=0 status=127 status=0 status=127 status=127stderr: sh: shopt: No such file or directory sh: alias: No such file or directory sh: command: No such file or directory sh: command: No such file or directory sh: command: No such file or directory sh: command: No such file or directory sh: command: No such file or directory |
| sush | 5 command -V [sush stdout] Expected 'll is an alias for "ls -l"\nstatus=0\necho is a shell builtin\nstatus=0\nmyfunc is a function\nstatus=0\nstatus=1\nfor is a shell keyword\nstatus=0\n' Got "ll is aliased to 'ls -l'\nstatus=0\necho is a shell builtin\nstatus=0\nmyfunc is a function\nmyfunc () \n{ \n echo x\n}\nstatus=0\nstatus=1\nfor is a shell keyword\nstatus=0\n" stdout: ll is aliased to 'ls -l'
status=0
echo is a shell builtin
status=0
myfunc is a function
myfunc ()
{
echo x
}
status=0
status=1
for is a shell keyword
status=0
stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 16: command: nonexistent: not found |
| brush | 5 command -V [brush stdout] Expected 'll is an alias for "ls -l"\nstatus=0\necho is a shell builtin\nstatus=0\nmyfunc is a function\nstatus=0\nstatus=1\nfor is a shell keyword\nstatus=0\n' Got 'status=0\necho is a shell builtin\nstatus=0\nstatus=0\nstatus=1\nstatus=1\n' stdout: status=0 echo is a shell builtin status=0 status=0 status=1 status=1stderr: command: ll: not found command: myfunc: not found command: nonexistent: not found command: for: not found |
| dash | 6 command -V nonexistent stdout: nonexistent: not found status=127stderr: |
| ash | 6 command -V nonexistent stdout: nonexistent: not found status=127stderr: |
| zsh | 6 command -V nonexistent stdout: nonexistent not found status=1stderr: |
| mksh | 6 command -V nonexistent stdout: nonexistent not found status=1stderr: |
| ksh | 6 command -V nonexistent [ksh stdout] Expected 'status=1\nnonexistent: not found\n' Got 'nonexistent not found\nstatus=1\n' stdout: nonexistent not found status=1stderr: |
| toysh | 6 command -V nonexistent [toysh stdout] Expected 'status=1\nnonexistent: not found\n' Got 'status=127\n' stdout: status=127stderr: |
| toysh | 7 command skips function lookup [toysh stdout] Expected '3\n1\n2\n3\n1\n2\n3\n' Got '3\n' [toysh status] Expected 0 Got 127 stdout: 3stderr: sh: command: No such file or directory sh: command: No such file or directory sh: command: No such file or directory |
| sush | 7 command skips function lookup [sush stdout] Expected '3\n1\n2\n3\n1\n2\n3\n' Got '3\n3\n3\n' stdout: 3 3 3stderr: |
| zsh | 8 command command seq 3 stdout: stderr: zsh: command not found: command |
| toysh | 8 command command seq 3 [toysh stdout] Expected '1\n2\n3\n' Got '' [toysh status] Expected 0 Got 127 stdout: stderr: sh: command: No such file or directory |
| zsh | 9 command command -v seq stdout: stderr: zsh: command not found: command |
| toysh | 9 command command -v seq [toysh stdout] Expected 'seq\n' Got '' [toysh status] Expected 0 Got 127 stdout: stderr: sh: command: No such file or directory |
| brush | 9 command command -v seq [brush stdout] Expected 'seq\n' Got '/usr/bin/seq\n' stdout: /usr/bin/seqstderr: |
| toysh | 10 command -p (override existing program) [toysh stdout] Expected 'wrong\nbbb\n' Got 'wrong\n' stdout: wrongstderr: sh: command: No such file or directory |
| sush | 10 command -p (override existing program) [sush stdout] Expected 'wrong\nbbb\n' Got 'wrong\nwrong\n' stdout: wrong wrongstderr: |
| sush | 11 command -p (hide tool in custom path) [sush status] Expected 127 Got 0 stdout: hellostderr: |
| toysh | 12 command -p (find hidden tool in default path) [toysh status] Expected 0 Got 127 stdout: stderr: sh: command: No such file or directory |
| sush | 12 command -p (find hidden tool in default path) [sush status] Expected 0 Got 127 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: ls: command not found |
| zsh | 13 $(command type ls) stdout: FUNCTION status=1stderr: zsh: command not found: type |
| mksh | 13 $(command type ls) stdout: status=1stderr: mksh: <stdin>[3]: type: not found |
| ksh | 13 $(command type ls) [ksh stdout] Expected 'FUNCTION\nstatus=0\n' Got 'status=1\n' stdout: status=1stderr: E: ksh: <stdin>[3]: type: inaccessible or not found |
| toysh | 13 $(command type ls) [toysh stdout] Expected 'FUNCTION\nstatus=0\n' Got 'FUNCTION\nstatus=1\n' stdout: FUNCTION status=1stderr: sh: command: No such file or directory |
| dash | 14 builtin stdout: histderr: dash: 3: builtin: not found |
| ash | 14 builtin stdout: histderr: ash: builtin: not found |
| toysh | 14 builtin [toysh stdout] Expected 'hi\n/\n' Got 'hi\n' stdout: histderr: sh: builtin: No such file or directory |
| dash | 15 builtin ls not found stdout: stderr: dash: 1: builtin: not found |
| ash | 15 builtin ls not found stdout: stderr: ash: builtin: not found |
| toysh | 15 builtin ls not found [toysh status] Expected 1 Got 127 stdout: stderr: sh: builtin: No such file or directory |
| dash | 16 builtin usage stdout: status=127 status=127 status=127stderr: dash: 1: builtin: not found dash: 4: builtin: not found dash: 7: builtin: not found |
| ash | 16 builtin usage stdout: status=127 status=127 status=127stderr: ash: builtin: not found ash: builtin: not found ash: builtin: not found |
| zsh | 16 builtin usage stdout: status=0 status=1 status=1stderr: zsh: no such builtin: -- zsh: no such builtin: -- |
| toysh | 16 builtin usage [toysh stdout] Expected 'status=0\nstatus=0\nstatus=1\n' Got 'status=127\nstatus=127\nstatus=127\n' stdout: status=127 status=127 status=127stderr: sh: builtin: No such file or directory sh: builtin: No such file or directory sh: builtin: No such file or directory |
| sush | 16 builtin usage [sush stdout] Expected 'status=0\nstatus=0\nstatus=1\n' Got 'status=0\nstatus=1\nstatus=1\n' stdout: status=0 status=1 status=1stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: builtin: --: not a shell builtin /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: builtin: --: not a shell builtin |
| brush | 16 builtin usage [brush stdout] Expected 'status=0\nstatus=0\nstatus=1\n' Got 'status=0\nstatus=1\nstatus=1\n' stdout: status=0 status=1 status=1stderr: [31merror:[39m builtin: not a shell builtin: -- [31merror:[39m builtin: not a shell builtin: -- |
| dash | 17 builtin command echo hi stdout: stderr: dash: 1: builtin: not found |
| ash | 17 builtin command echo hi stdout: stderr: ash: builtin: not found |
| toysh | 17 builtin command echo hi [toysh stdout] Expected 'hi\n' Got '' [toysh status] Expected 0 Got 127 stdout: stderr: sh: builtin: No such file or directory |