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