spec test index / oilshell.org
status | dash | bash | mksh | zsh | osh | osh_ALT | |
pass | 27 | 32 | 27 | 30 | 33 | 33 | |
ok | 3 | 2 | 4 | 0 | 0 | 0 | |
BUG | 5 | 1 | 4 | 5 | 0 | 0 | |
FAIL | 0 | 0 | 0 | 0 | 2 | 2 | |
total | 35 | 35 | 35 | 35 | 35 | 35 | |
case | dash | bash | mksh | zsh | osh | osh_ALT | description |
0 | pass | pass | pass | pass | pass | pass | exec builtin |
1 | pass | pass | pass | pass | pass | pass | exec builtin with redirects |
2 | pass | pass | pass | pass | pass | pass | exec builtin with here doc |
3 | BUG | pass | pass | pass | pass | pass | exec builtin accepts -- |
details | |||||||
4 | BUG | pass | BUG | pass | pass | pass | exec -- 2>&1 |
details | details | ||||||
5 | pass | pass | pass | pass | pass | pass | cd and $PWD |
6 | BUG | pass | BUG | pass | FAIL | FAIL | cd BAD/.. |
details | details | details | details | ||||
7 | pass | pass | BUG | BUG | pass | pass | $OLDPWD |
details | details | ||||||
8 | pass | pass | pass | pass | pass | pass | pwd |
9 | pass | pass | pass | pass | pass | pass | pwd after cd .. |
10 | pass | pass | pass | pass | pass | pass | pwd with symlink and -P |
11 | pass | pass | pass | pass | pass | pass | setting $PWD doesn't affect the value of 'pwd' builtin |
12 | pass | pass | pass | pass | pass | pass | unset PWD; then pwd |
13 | pass | pass | pass | pass | pass | pass | 'unset PWD; pwd' before any cd (tickles a rare corner case) |
14 | pass | pass | pass | pass | pass | pass | lie about PWD; pwd before any cd |
15 | pass | pass | ok | pass | pass | pass | remove pwd dir |
details | |||||||
16 | pass | pass | ok | pass | pass | pass | pwd in symlinked dir on shell initialization |
details | |||||||
17 | pass | pass | pass | pass | pass | pass | Test the current directory after 'cd ..' involving symlinks |
18 | pass | pass | pass | pass | pass | pass | cd with no arguments |
19 | ok | pass | ok | pass | pass | pass | cd to nonexistent dir |
details | details | ||||||
20 | pass | pass | pass | pass | pass | pass | cd away from dir that was deleted |
21 | pass | pass | pass | pass | pass | pass | cd permits double bare dash |
22 | pass | pass | pass | pass | pass | pass | cd to symlink with -L and -P |
23 | pass | pass | pass | pass | pass | pass | cd to relative path with -L and -P |
24 | pass | pass | pass | pass | pass | pass | Exit out of function |
25 | ok | ok | pass | BUG | pass | pass | Exit builtin with invalid arg |
details | details | details | |||||
26 | BUG | BUG | ok | BUG | pass | pass | Exit builtin with too many args |
details | details | details | details | ||||
27 | BUG | pass | pass | BUG | pass | pass | time block |
details | details | ||||||
28 | pass | pass | pass | pass | pass | pass | time pipeline |
29 | pass | pass | pass | pass | pass | pass | shift |
30 | ok | pass | pass | pass | pass | pass | Shifting too far |
details | |||||||
31 | pass | ok | BUG | BUG | pass | pass | Invalid shift argument |
details | details | details | |||||
32 | pass | pass | pass | pass | pass | pass | get umask |
33 | pass | pass | pass | pass | pass | pass | set umask in octal |
34 | pass | pass | pass | pass | FAIL | FAIL | set umask symbolically |
details | details |
182 passed, 9 OK, 0 not implemented, 15 BUG, 2 failed, 0 timeouts, 0 cases skipped 2 failed under osh
dash | 3 exec builtin accepts -- stdout: stderr: dash: 1: exec: --: not found |
dash | 4 exec -- 2>&1 stdout: stderr: dash: 1: exec: --: not found |
mksh | 4 exec -- 2>&1 stdout: stderr: |
dash | 6 cd BAD/.. stdout: status=0stderr: |
mksh | 6 cd BAD/.. stdout: status=0stderr: |
osh | 6 cd BAD/.. [osh stdout] Expected 'status=1\n', got 'status=0\n' stdout: status=0stderr: |
osh_ALT | 6 cd BAD/.. [osh_ALT stdout] Expected 'status=1\n', got 'status=0\n' stdout: status=0stderr: |
mksh | 7 $OLDPWD stdout: old: / /stderr: |
zsh | 7 $OLDPWD stdout: old: / OLDPWD=/stderr: |
mksh | 15 remove pwd dir stdout: /tmp/oil-spec-test/pwd status=0 status=1stderr: mksh: <stdin>[7]: pwd: can't determine current directory: No such file or directory |
mksh | 16 pwd in symlinked dir on shell initialization stdout: target targetstderr: |
dash | 19 cd to nonexistent dir stdout: status=2stderr: dash: 1: cd: can't cd to /nonexistent/dir |
mksh | 19 cd to nonexistent dir stdout: status=2stderr: mksh: <stdin>[1]: cd: /nonexistent/dir: No such file or directory |
dash | 25 Exit builtin with invalid arg stdout: stderr: dash: 1: exit: Illegal number: invalid |
bash | 25 Exit builtin with invalid arg stdout: stderr: bash: line 1: exit: invalid: numeric argument required |
zsh | 25 Exit builtin with invalid arg stdout: stderr: |
dash | 26 Exit builtin with too many args stdout: stderr: |
bash | 26 Exit builtin with too many args stdout: status=1stderr: bash: line 1: exit: too many arguments |
mksh | 26 Exit builtin with too many args stdout: stderr: mksh: <stdin>[1]: exit: too many arguments |
zsh | 26 Exit builtin with too many args stdout: status=1stderr: exit: too many arguments |
dash | 27 time block stdout: stderr: time: cannot run {: No such file or directory Command exited with non-zero status 127 0.00user 0.00system 0:00.00elapsed ?%CPU (0avgtext+0avgdata 1176maxresident)k 0inputs+0outputs (0major+28minor)pagefaults 0swaps dash: 7: Syntax error: "}" unexpected |
zsh | 27 time block stdout: stderr: |
dash | 30 Shifting too far stdout: stderr: dash: 2: shift: can't shift that many |
bash | 31 Invalid shift argument stdout: stderr: bash: line 1: shift: ZZZ: numeric argument required |
mksh | 31 Invalid shift argument stdout: stderr: |
zsh | 31 Invalid shift argument stdout: stderr: |
osh | 34 set umask symbolically [osh stdout] Expected '664\n644\n', got '664\n664\n' [osh stderr] Expected u'', got "osh warning: umask with symbolic input isn't implemented\n" stdout: 664 664stderr: osh warning: umask with symbolic input isn't implemented |
osh_ALT | 34 set umask symbolically [osh_ALT stdout] Expected '664\n644\n', got '664\n664\n' [osh_ALT stderr] Expected u'', got "osh warning: umask with symbolic input isn't implemented\n" stdout: 664 664stderr: osh warning: umask with symbolic input isn't implemented |