strict-options () { run-file strict-options "$@" } run-file () { local spec_name=$1; shift; sh-spec spec/$spec_name.test.sh --compare-shells --oils-bin-dir $PWD/bin "$@" } strict-options: spec test case results

Results for strict-options.test.sh

statusdashbash-4mkshosh
pass 76915
ok 0410
N-I 8550
total15151515
casedashbash-4mkshoshdescription
0N-I N-I N-I pass strict_arith option
detailsdetailsdetails
1pass pass pass pass Sourcing a script that returns at the top level
2pass ok pass pass top level control flow
details
3pass ok pass pass errexit and top-level control flow
details
4N-I N-I N-I pass shopt -s strict_control_flow
detailsdetailsdetails
5pass ok pass pass return at top level is an error
details
6pass pass pass pass continue at top level is NOT an error
7pass pass pass pass break at top level is NOT an error
8pass pass pass pass empty argv WITHOUT strict_argv
9N-I N-I N-I pass empty argv WITH strict_argv
detailsdetailsdetails
10N-I ok ok pass Arrays are incorrectly compared, but strict_array prevents it
detailsdetailsdetails
11N-I pass pass pass automatically creating arrays WITHOUT strict_array
details
12N-I pass pass pass automatically creating arrays are INDEXED, not associative
details
13N-I N-I N-I pass simple_eval_builtin
detailsdetailsdetails
14N-I N-I N-I pass strict_parse_slice means you need explicit length
detailsdetailsdetails
37 passed, 5 OK, 18 not implemented, 0 BUG, 0 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

dash0 strict_arith option

stdout:
stderr: 
dash: 1: shopt: not found
bash-40 strict_arith option

stdout:
stderr: 
bash-4.4: line 1: shopt: strict_arith: invalid shell option name
mksh0 strict_arith option

stdout:
stderr: 
mksh: <stdin>[1]: shopt: not found
bash-42 top level control flow

stdout:
SUBSHELL
BREAK
CONTINUE
RETURN
DONE
stderr:
/home/uke/oil/test/../spec/testdata/top-level-control-flow.sh: line 14: return: can only `return' from a function or sourced script
/home/uke/oil/test/../spec/testdata/top-level-control-flow.sh: line 17: break: only meaningful in a `for', `while', or `until' loop
/home/uke/oil/test/../spec/testdata/top-level-control-flow.sh: line 19: continue: only meaningful in a `for', `while', or `until' loop
/home/uke/oil/test/../spec/testdata/top-level-control-flow.sh: line 24: return: can only `return' from a function or sourced script
bash-43 errexit and top-level control flow

stdout:
SUBSHELL
stderr:
/home/uke/oil/test/../spec/testdata/top-level-control-flow.sh: line 14: return: can only `return' from a function or sourced script
dash4 shopt -s strict_control_flow

stdout:
break
hi
stderr:
dash: 1: shopt: not found
bash-44 shopt -s strict_control_flow

stdout:
break
hi
stderr:
bash-4.4: line 1: shopt: strict_control_flow: invalid shell option name
bash-4.4: line 3: break: only meaningful in a `for', `while', or `until' loop
mksh4 shopt -s strict_control_flow

stdout:
break
hi
stderr:
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[3]: break: can't break
bash-45 return at top level is an error

stdout:
status=1
stderr:
bash-4.4: line 1: return: can only `return' from a function or sourced script
dash9 empty argv WITH strict_argv

stdout:
empty
status=0
stderr:
dash: 1: shopt: not found
bash-49 empty argv WITH strict_argv

stdout:
empty
status=0
stderr:
bash-4.4: line 1: shopt: strict_argv: invalid shell option name
mksh9 empty argv WITH strict_argv

stdout:
empty
status=0
stderr:
mksh: <stdin>[1]: shopt: not found
dash10 Arrays are incorrectly compared, but strict_array prevents it

stdout:
stderr: 
dash: 1: Syntax error: "(" unexpected
bash-410 Arrays are incorrectly compared, but strict_array prevents it

stdout:
2
4
EQUAL
EQUAL
stderr:
bash-4.4: line 7: shopt: strict_array: invalid shell option name
mksh10 Arrays are incorrectly compared, but strict_array prevents it

stdout:
2
4
EQUAL
EQUAL
stderr:
mksh: <stdin>[7]: shopt: not found
dash11 automatically creating arrays WITHOUT strict_array

stdout:
stderr: 
dash: 1: undef[2]=x: not found
dash: 2: undef[3]=y: not found
dash: 3: Bad substitution
dash12 automatically creating arrays are INDEXED, not associative

stdout:
stderr: 
dash: 1: shopt: not found
dash: 3: undef[2]=x: not found
dash: 4: undef[3]=y: not found
dash: 7: undef[bad]=zzz: not found
dash: 8: Bad substitution
dash13 simple_eval_builtin

stdout:
status=0
one
status=0
two
status=0
---
status=0
one
status=0
two
status=0
---
stderr:
dash: 8: shopt: not found
dash: 8: shopt: not found
bash-413 simple_eval_builtin

stdout:
status=0
one
status=0
two
status=0
---
status=0
one
status=0
two
status=0
---
stderr:
bash-4.4: line 8: shopt: simple_eval_builtin: invalid shell option name
bash-4.4: line 8: shopt: simple_eval_builtin: invalid shell option name
mksh13 simple_eval_builtin

stdout:
status=0
one
status=0
two
status=0
---
status=0
one
status=0
two
status=0
---
stderr:
mksh: <stdin>[10]: shopt: not found
mksh: <stdin>[10]: shopt: not found
dash14 strict_parse_slice means you need explicit length

stdout:
stderr: 
bash-414 strict_parse_slice means you need explicit length

stdout:
stderr: 
mksh14 strict_parse_slice means you need explicit length

stdout:
stderr: