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 1180maxresident)k
0inputs+0outputs (0major+29minor)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 |