Results for strict-options.test.sh

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

47 passed, 3 ok, 9 known unimplemented, 2 known bugs, 2 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
osh8 strict-argv: no first word but exit code

[osh stdout] Expected 'FALSE\n', got 'TRUE\n'

stdout:
TRUE
stderr:
osh_ALT8 strict-argv: no first word but exit code

[osh_ALT stdout] Expected 'FALSE\n', got 'TRUE\n'

stdout:
TRUE
stderr:
dash9 empty argv WITH strict-argv

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

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

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

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

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

stdout:
2
4
EQUAL
stderr:
osh10 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_ALT10 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:
dash11 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
dash12 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