spec test index / oilshell.org
| status | bash | dash | mksh | zsh | osh | |
| pass | 5 | 5 | 7 | 5 | 4 | |
| ok | 0 | 2 | 0 | 0 | 0 | |
| N-I | 0 | 1 | 0 | 0 | 0 | |
| BUG | 3 | 0 | 1 | 3 | 0 | |
| FAIL | 0 | 0 | 0 | 0 | 4 | |
| total | 8 | 8 | 8 | 8 | 8 | |
| case | bash | dash | mksh | zsh | osh | description |
| 0 | pass | pass | pass | BUG | FAIL | : is special and prefix assignments persist after special builtins |
| details | details | |||||
| 1 | BUG | pass | pass | pass | pass | readonly is special and prefix assignments persist |
| details | ||||||
| 2 | pass | pass | pass | pass | pass | true is not special |
| 3 | BUG | ok | pass | BUG | FAIL | Shift is special and the whole script exits if it returns non-zero |
| details | details | details | details | |||
| 4 | BUG | ok | pass | pass | FAIL | set is special and fails, even if using || true |
| details | details | details | ||||
| 5 | pass | pass | BUG | BUG | FAIL | Special builtins can't be redefined as functions |
| details | details | details | ||||
| 6 | pass | pass | pass | pass | pass | Non-special builtins CAN be redefined as functions |
| 7 | pass | N-I | pass | pass | pass | command, builtin - both can be redefined, not special (regression) |
| details |
26 passed, 2 OK, 1 not implemented, 7 BUG, 4 failed, 0 timeouts, 0 cases skipped 4 failed under osh
| zsh | 0 : is special and prefix assignments persist after special builtins stdout: foo=stderr: |
| osh | 0 : is special and prefix assignments persist after special builtins [osh stdout] Expected 'foo=bar\n', got 'foo=\n' stdout: foo=stderr: |
| bash | 1 readonly is special and prefix assignments persist stdout: foo=bar spam=eggs bar Nonestderr: |
| bash | 3 Shift is special and the whole script exits if it returns non-zero stdout: status=1stderr: bash: line 3: shift: 3: shift count out of range |
| dash | 3 Shift is special and the whole script exits if it returns non-zero stdout: stderr: dash: 3: shift: can't shift that many |
| zsh | 3 Shift is special and the whole script exits if it returns non-zero stdout: status=1stderr: shift: shift count must be <= $# |
| osh | 3 Shift is special and the whole script exits if it returns non-zero [osh stdout] Expected u'', got 'status=1\n' [osh status] Expected 1, got 0 stdout: status=1stderr: |
| bash | 4 set is special and fails, even if using || true stdout: ok should not get herestderr: bash: line 1: shopt: invalid_: invalid shell option name bash: line 3: set: invalid_: invalid option name |
| dash | 4 set is special and fails, even if using || true stdout: okstderr: dash: 1: shopt: not found dash: 3: set: Illegal option -o invalid_ |
| osh | 4 set is special and fails, even if using || true [osh stdout] Expected 'ok\n', got 'ok\nshould not get here\n' [osh status] Expected 1, got 0 stdout: ok should not get herestderr: shopt -s invalid_ || true ^~~~~ [ stdin ]:1: 'shopt' got invalid option 'invalid_' set -o invalid_ || true ^~~ [ stdin ]:3: 'set' got invalid option 'invalid_' |
| mksh | 5 Special builtins can't be redefined as functions stdout: status=0stderr: |
| zsh | 5 Special builtins can't be redefined as functions stdout: status=0stderr: |
| osh | 5 Special builtins can't be redefined as functions [osh status] Expected 2, got 0 stdout: status=0stderr: |
| dash | 7 command, builtin - both can be redefined, not special (regression) stdout: stderr: |