Results for strict-options.test.sh

casedashbashmkshoshosh_ALTosh-byterundescription
0pass pass pass pass pass pass Sourcing a script that returns at the top level
1pass ok pass pass pass pass top level control flow
details
2pass ok pass pass pass pass errexit and top-level control flow
details
3N-I N-I N-I pass pass pass set -o strict-control-flow
detailsdetailsdetails
4pass ok pass pass pass pass return at top level is an error
details
5pass pass pass pass pass pass continue at top level is NOT an error
6pass pass pass pass pass pass break at top level is NOT an error
7pass pass pass pass pass pass empty argv WITHOUT strict-argv
8N-I N-I N-I pass pass pass empty argv WITH strict-argv
detailsdetailsdetails
9N-I BUG BUG FAIL FAIL FAIL Arrays should not be incorrectly compared like bash/mksh
detailsdetailsdetailsdetailsdetailsdetails
10N-I pass pass pass pass pass automatically creating arrays WITHOUT strict-array
details
11N-I pass pass pass pass pass automatically creating arrays are INDEXED, not associative
details

55 passed, 3 ok, 9 known unimplemented, 2 known bugs, 1 failed, 0 skipped

Details on runs that didn't PASS

bash1 top level control flow

stdout:
SUBSHELL
BREAK
CONTINUE
RETURN
DONE
stderr:
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
bash2 errexit and top-level control flow

stdout:
SUBSHELL
stderr:
spec/testdata/top-level-control-flow.sh: line 14: return: can only `return' from a function or sourced script
dash3 set -o strict-control-flow

stdout:
stderr: 
_tmp/spec-bin/dash: 0: Illegal option -o strict-control-flow
bash3 set -o strict-control-flow

stdout:
stderr: 
_tmp/spec-bin/bash: line 0: _tmp/spec-bin/bash: strict-control-flow: invalid option name
mksh3 set -o strict-control-flow

stdout:
stderr: 
_tmp/spec-bin/mksh: strict-control-flow: bad option
bash4 return at top level is an error

stdout:
status=1
stderr:
_tmp/spec-bin/bash: line 1: return: can only `return' from a function or sourced script
dash8 empty argv WITH strict-argv

stdout:
stderr: 
_tmp/spec-bin/dash: 1: set: Illegal option -o strict-argv
bash8 empty argv WITH strict-argv

stdout:
empty
status=0
stderr:
_tmp/spec-bin/bash: line 1: set: strict-argv: invalid option name
mksh8 empty argv WITH strict-argv

stdout:
stderr: 
_tmp/spec-bin/mksh: <stdin>[1]: set: strict-argv: bad option
dash9 Arrays should not be incorrectly compared like bash/mksh

stdout:
stderr: 
_tmp/spec-bin/dash: 1: Syntax error: "(" unexpected
bash9 Arrays should not be incorrectly compared like bash/mksh

stdout:
2
4
EQUAL
stderr:
mksh9 Arrays should not be incorrectly compared like bash/mksh

stdout:
2
4
EQUAL
stderr:
osh9 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
EQUAL
stderr:
osh_ALT9 Arrays should not be incorrectly compared like bash/mksh

[osh_ALT stdout] Expected '2\n4\n', got '2\n4\nEQUAL\n'
[osh_ALT status] Expected 1, got 0

stdout:
2
4
EQUAL
stderr:
osh-byterun9 Arrays should not be incorrectly compared like bash/mksh

[osh-byterun stdout] Expected '2\n4\n', got '2\n4\nEQUAL\n'
[osh-byterun status] Expected 1, got 0

stdout:
2
4
EQUAL
stderr:
dash10 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
dash11 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