spec test index / oilshell.org
| status | dash | bash | mksh | zsh | osh | |
| pass | 13 | 13 | 14 | 13 | 17 | |
| ok | 2 | 4 | 1 | 2 | 1 | |
| N-I | 1 | 0 | 0 | 0 | 0 | |
| BUG | 2 | 1 | 3 | 3 | 0 | |
| total | 18 | 18 | 18 | 18 | 18 | |
| case | dash | bash | mksh | zsh | osh | description |
| 0 | pass | pass | pass | pass | pass | implicit for loop |
| 1 | pass | pass | pass | pass | pass | empty for loop (has "in") |
| 2 | pass | ok | ok | BUG | pass | for loop with invalid identifier |
| details | details | details | ||||
| 3 | pass | pass | pass | pass | pass | Tilde expansion within for loop |
| 4 | N-I | pass | pass | pass | pass | Brace Expansion within Array |
| details | ||||||
| 5 | pass | pass | pass | pass | pass | using loop var outside loop |
| 6 | pass | pass | pass | pass | pass | continue |
| 7 | pass | pass | pass | pass | pass | break |
| 8 | pass | pass | pass | pass | ok | dynamic control flow (KNOWN INCOMPATIBILITY) |
| details | ||||||
| 9 | pass | pass | pass | pass | pass | while in while condition |
| 10 | pass | pass | pass | pass | pass | while in pipe |
| 11 | pass | pass | pass | pass | pass | while in pipe with subshell |
| 12 | pass | pass | pass | pass | pass | until loop |
| 13 | pass | pass | pass | ok | pass | continue at top level |
| details | ||||||
| 14 | ok | ok | BUG | ok | pass | continue in subshell |
| details | details | details | details | |||
| 15 | BUG | BUG | BUG | BUG | pass | continue in subshell aborts with errexit |
| details | details | details | details | |||
| 16 | ok | ok | pass | pass | pass | bad arg to break |
| details | details | |||||
| 17 | BUG | ok | BUG | BUG | pass | too many args to continue |
| details | details | details | details |
70 passed, 10 OK, 1 not implemented, 9 BUG, 0 failed, 0 timeouts, 0 cases skipped
| bash | 2 for loop with invalid identifier stdout: stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 3: `-': not a valid identifier |
| mksh | 2 for loop with invalid identifier stdout: stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[1]: for: bad identifier |
| zsh | 2 for loop with invalid identifier stdout: histderr: zsh: parse error near `-' zsh: parse error near `done' |
| dash | 4 Brace Expansion within Array stdout: -{a,b}
{c,d}-
stderr: |
| osh | 8 dynamic control flow (KNOWN INCOMPATIBILITY) stdout: 1 2 3stderr: $b
^~
[ stdin ]:4: 'break' not found
$b
^~
[ stdin ]:4: 'break' not found
$b
^~
[ stdin ]:4: 'break' not found
|
| zsh | 13 continue at top level stdout: onestderr: continue: not in while, until, select, or repeat loop |
| dash | 14 continue in subshell stdout: > 1 subshell status=0 . 1 > 2 subshell status=0 . 2stderr: |
| bash | 14 continue in subshell stdout: > 1 subshell status=0 . 1 > 2 subshell status=0 . 2stderr: |
| mksh | 14 continue in subshell stdout: > 1 Should not print subshell status=0 . 1 > 2 Should not print subshell status=0 . 2stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[6]: continue: can't continue /home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[6]: continue: can't continue |
| zsh | 14 continue in subshell stdout: > 1 subshell status=0 . 1 > 2 subshell status=0 . 2stderr: |
| dash | 15 continue in subshell aborts with errexit stdout: > 1 should fail after subshell . 1 > 2 should fail after subshell . 2stderr: |
| bash | 15 continue in subshell aborts with errexit stdout: > 1 should fail after subshell . 1 > 2 should fail after subshell . 2stderr: |
| mksh | 15 continue in subshell aborts with errexit stdout: > 1 Should not print should fail after subshell . 1 > 2 Should not print should fail after subshell . 2stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[7]: continue: can't continue /home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[7]: continue: can't continue |
| zsh | 15 continue in subshell aborts with errexit stdout: > 1 should fail after subshell . 1 > 2 should fail after subshell . 2stderr: |
| dash | 16 bad arg to break stdout: histderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 4: break: Illegal number: oops |
| bash | 16 bad arg to break stdout: histderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 4: break: oops: numeric argument required |
| dash | 17 too many args to continue stdout: a b c --stderr: |
| bash | 17 too many args to continue stdout: a --stderr: /home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 3: continue: too many arguments |
| mksh | 17 too many args to continue stdout: a b c --stderr: |
| zsh | 17 too many args to continue stdout: a b c --stderr: continue: too many arguments continue: too many arguments continue: too many arguments |