spec test index / oilshell.org
| status | bash | dash | mksh | zsh | osh | |
| pass | 12 | 10 | 9 | 12 | 12 | |
| ok | 0 | 1 | 1 | 0 | 0 | |
| N-I | 1 | 2 | 3 | 1 | 0 | |
| FAIL | 0 | 0 | 0 | 0 | 1 | |
| total | 13 | 13 | 13 | 13 | 13 | |
| case | bash | dash | mksh | zsh | osh | description |
| 0 | pass | pass | pass | pass | pass | sh -c |
| 1 | pass | pass | pass | pass | pass | empty -c input |
| 2 | pass | pass | N-I | pass | pass | sh +c is accepted |
| details | ||||||
| 3 | pass | pass | pass | pass | pass | empty stdin |
| 4 | pass | N-I | N-I | pass | FAIL | shell obeys --help (regression for OSH) |
| details | details | details | ||||
| 5 | pass | pass | pass | pass | pass | args are passed |
| 6 | pass | pass | pass | pass | pass | args that look like flags are passed after script |
| 7 | pass | pass | pass | pass | pass | args that look like flags are passed after -c |
| 8 | pass | pass | pass | pass | pass | exit with explicit arg |
| 9 | pass | pass | pass | pass | pass | exit with no args |
| 10 | N-I | N-I | N-I | N-I | pass | --rcfile in non-interactive shell prints warnings |
| details | details | details | details | |||
| 11 | pass | pass | pass | pass | pass | accepts -l flag |
| 12 | pass | ok | ok | pass | pass | accepts --login flag (dash and mksh don't accept long flags) |
| details | details |
55 passed, 2 OK, 7 not implemented, 0 BUG, 1 failed, 0 timeouts, 0 cases skipped 1 failed under osh
| mksh | 2 sh +c is accepted stdout: stderr: mksh: echo hi: No such file or directory |
| dash | 4 shell obeys --help (regression for OSH) stdout: stderr: dash: 0: Illegal option -- |
| mksh | 4 shell obeys --help (regression for OSH) stdout: stderr: mksh: mksh: --: unknown option |
| osh | 4 shell obeys --help (regression for OSH) [osh stderr] Found 'Traceback (most recent' stdout: yesstderr: Traceback (most recent call last):
File "/home/uke/oil/bin/oils_for_unix.py", line 198, in <module>
sys.exit(main(sys.argv))
File "/home/uke/oil/bin/oils_for_unix.py", line 170, in main
return AppBundleMain(argv)
File "/home/uke/oil/bin/oils_for_unix.py", line 140, in AppBundleMain
return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
File "/home/uke/oil/core/shell.py", line 320, in Main
util.HelpFlag(loader, '%s-usage' % lang, mylib.Stdout())
File "/home/uke/oil/core/util.py", line 161, in HelpFlag
assert found, 'Missing %s' % topic_id
AssertionError: Missing osh-usage
|
| bash | 10 --rcfile in non-interactive shell prints warnings stdout: rc ==> interactive.txt <== bash: cannot set terminal process group (2381): Inappropriate ioctl for device bash: no job control in this shell bash-5.2$ exit ==> non-interactive.txt <==stderr: warned=1 warned=1 |
| dash | 10 --rcfile in non-interactive shell prints warnings stdout: ==> interactive.txt <== dash: 0: Illegal option -- ==> non-interactive.txt <== dash: 0: Illegal option --stderr: warned=1 warned=1 |
| mksh | 10 --rcfile in non-interactive shell prints warnings stdout: ==> interactive.txt <== mksh: mksh: --: unknown option ==> non-interactive.txt <== mksh: mksh: --: unknown optionstderr: warned=1 warned=1 |
| zsh | 10 --rcfile in non-interactive shell prints warnings stdout: ==> interactive.txt <== zsh: no such option: rcfile ==> non-interactive.txt <== zsh: no such option: rcfilestderr: warned=1 warned=1 |
| dash | 12 accepts --login flag (dash and mksh don't accept long flags) stdout: stderr: dash: 0: Illegal option -- |
| mksh | 12 accepts --login flag (dash and mksh don't accept long flags) stdout: stderr: mksh: mksh: --: unknown option |