spec test index / oilshell.org
| case | dash | bash | mksh | osh | description | 
| 0 | pass | pass | pass | pass | Sourcing a script that returns at the top level | 
| 1 | pass | ok | pass | pass | top level control flow | 
| details | |||||
| 2 | pass | ok | pass | pass | errexit and top-level control flow | 
| details | |||||
| 3 | N-I | N-I | N-I | pass | set -o strict-control-flow | 
| details | details | details | |||
| 4 | pass | ok | pass | pass | return at top level is an error | 
| details | |||||
| 5 | pass | pass | pass | pass | continue at top level is NOT an error | 
| 6 | pass | pass | pass | pass | break at top level is NOT an error | 
| 7 | pass | pass | pass | pass | empty argv WITHOUT strict-argv | 
| 8 | pass | pass | pass | FAIL | strict-argv: no first word but exit code | 
| details | |||||
| 9 | N-I | N-I | N-I | pass | empty argv WITH strict-argv | 
| details | details | details | |||
| 10 | N-I | BUG | BUG | FAIL | Arrays should not be incorrectly compared like bash/mksh | 
| details | details | details | details | ||
| 11 | N-I | pass | pass | pass | automatically creating arrays WITHOUT strict-array | 
| details | |||||
| 12 | N-I | pass | pass | pass | automatically creating arrays are INDEXED, not associative | 
| details | 
36 passed, 3 ok, 9 known unimplemented, 2 known bugs, 2 failed, 0 skipped
| bash | 1 top level control flow stdout: SUBSHELL BREAK CONTINUE RETURN DONEstderr: spec/testdata/top-level-control-flow.sh: line 14: return: can only `return' from a function or sourced script spec/testdata/top-level-control-flow.sh: line 17: break: only meaningful in a `for', `while', or `until' loop spec/testdata/top-level-control-flow.sh: line 19: continue: only meaningful in a `for', `while', or `until' loop spec/testdata/top-level-control-flow.sh: line 24: return: can only `return' from a function or sourced script | 
| bash | 2 errexit and top-level control flow stdout: SUBSHELLstderr: spec/testdata/top-level-control-flow.sh: line 14: return: can only `return' from a function or sourced script | 
| dash | 3 set -o strict-control-flow stdout: stderr: _tmp/spec-bin/dash: 0: Illegal option -o strict-control-flow | 
| bash | 3 set -o strict-control-flow stdout: stderr: _tmp/spec-bin/bash: line 0: _tmp/spec-bin/bash: strict-control-flow: invalid option name | 
| mksh | 3 set -o strict-control-flow stdout: stderr: _tmp/spec-bin/mksh: strict-control-flow: bad option | 
| bash | 4 return at top level is an error stdout: status=1stderr: _tmp/spec-bin/bash: line 1: return: can only `return' from a function or sourced script | 
| osh | 8 strict-argv: no first word but exit code [osh stdout] Expected 'FALSE\n', got 'TRUE\n' stdout: TRUEstderr: | 
| dash | 9 empty argv WITH strict-argv stdout: stderr: _tmp/spec-bin/dash: 1: set: Illegal option -o strict-argv | 
| bash | 9 empty argv WITH strict-argv stdout: empty status=0stderr: _tmp/spec-bin/bash: line 1: set: strict-argv: invalid option name | 
| mksh | 9 empty argv WITH strict-argv stdout: stderr: _tmp/spec-bin/mksh: <stdin>[1]: set: strict-argv: bad option | 
| dash | 10 Arrays should not be incorrectly compared like bash/mksh stdout: stderr: _tmp/spec-bin/dash: 1: Syntax error: "(" unexpected
 | 
| bash | 10 Arrays should not be incorrectly compared like bash/mksh stdout: 2 4 EQUALstderr: | 
| mksh | 10 Arrays should not be incorrectly compared like bash/mksh stdout: 2 4 EQUALstderr: | 
| osh | 10 Arrays should not be incorrectly compared like bash/mksh [osh stdout] Expected '2\n4\n', got '2\n4\nEQUAL\n' [osh status] Expected 1, got 0 stdout: 2 4 EQUALstderr: | 
| dash | 11 automatically creating arrays WITHOUT strict-array stdout: stderr: _tmp/spec-bin/dash: 1: undef[2]=x: not found _tmp/spec-bin/dash: 2: undef[3]=y: not found _tmp/spec-bin/dash: 3: Bad substitution | 
| dash | 12 automatically creating arrays are INDEXED, not associative stdout: stderr: _tmp/spec-bin/dash: 1: undef[2]=x: not found _tmp/spec-bin/dash: 2: undef[3]=y: not found _tmp/spec-bin/dash: 4: undef[bad]=zzz: not found _tmp/spec-bin/dash: 5: Bad substitution |