Results for sh-options.test.sh

casedashbashmkshoshosh_ALTdescription
0pass ok ok pass pass $- with -c
detailsdetails
1N-I ok ok pass pass $- with pipefail
detailsdetailsdetails
2pass pass pass pass pass $- with interactive shell
3pass pass pass pass pass sh -c
4pass pass pass pass pass empty -c input
5pass pass pass pass pass empty stdin
6pass pass pass pass pass args are passed
7pass pass pass pass pass args that look like flags are passed after script
8pass pass pass pass pass args that look like flags are passed after -c
9pass pass pass pass pass pass short options on command line
10pass pass pass pass pass pass long options on command line
11BUG pass BUG pass pass can continue after unknown option
detailsdetails
12pass pass pass pass pass set with both options and argv
13pass pass pass pass pass set -o vi/emacs
14ok pass pass pass pass nounset
details
15ok pass pass pass pass -u is nounset
details
16pass pass pass pass pass nounset with "$@"
17pass pass pass pass pass set -u -- clears argv
18pass pass pass pass pass set -u -- x y z
19pass pass pass pass pass reset option with long flag
20pass pass pass pass pass reset option with short flag
21ok pass pass pass pass set -eu (flag parsing)
details
22pass pass pass FAIL FAIL -n for no execution (useful with --ast-output)
detailsdetails
23N-I pass pass pass pass pipefail
details
24N-I pass N-I pass pass shopt -p -o
detailsdetails
25N-I pass N-I pass pass shopt -p
detailsdetails
26pass pass pass pass pass noclobber off
27ok pass pass FAIL FAIL noclobber on
detailsdetailsdetails
28N-I pass N-I pass pass SHELLOPTS is updated when options are changed
detailsdetails
29N-I pass N-I FAIL FAIL SHELLOPTS is readonly
detailsdetailsdetailsdetails
30pass pass pass FAIL FAIL set -o lists options
detailsdetails
31pass ok ok pass pass set without args lists variables
detailsdetails
32pass pass pass pass pass 'set' and 'eval' round trip
33N-I pass ok FAIL FAIL set without args lists array variables
detailsdetailsdetailsdetails
34N-I pass N-I FAIL FAIL set without args lists assoc array variables
detailsdetailsdetailsdetails
35N-I pass N-I pass pass shopt -q
detailsdetails
36N-I ok N-I pass pass shopt -q invalid
detailsdetailsdetails
37N-I pass N-I pass pass sh -i loads rcfile (when combined with -c)
detailsdetails

145 passed, 12 ok, 19 known unimplemented, 2 known bugs, 6 failed, 0 skipped

Details on runs that didn't PASS

bash0 $- with -c

stdout:
huBc
stderr:
mksh0 $- with -c

stdout:
uhc
stderr:
dash1 $- with pipefail

stdout:
stderr: 
_tmp/spec-bin/dash: 1: set: Illegal option -o pipefail
bash1 $- with pipefail

stdout:
huBs
stderr:
mksh1 $- with pipefail

stdout:
ush
stderr:
dash11 can continue after unknown option

stdout:
stderr: 
_tmp/spec-bin/dash: 2: set: Illegal option -o STRICT
mksh11 can continue after unknown option

stdout:
stderr: 
_tmp/spec-bin/mksh: <stdin>[2]: set: STRICT: bad option
dash14 nounset

stdout:
[]
stderr:
_tmp/spec-bin/dash: 3: unset: parameter not set
dash15 -u is nounset

stdout:
[]
stderr:
_tmp/spec-bin/dash: 3: unset: parameter not set
dash21 set -eu (flag parsing)

stdout:
stderr: 
_tmp/spec-bin/dash: 2: unset: parameter not set
osh22 -n for no execution (useful with --ast-output)

[osh stdout] Expected u'1\n', got '1\n2\n3\n'

stdout:
1
2
3
stderr:
osh_ALT22 -n for no execution (useful with --ast-output)

[osh_ALT stdout] Expected u'1\n', got '1\n2\n3\n'

stdout:
1
2
3
stderr:
dash23 pipefail

stdout:
0
stderr:
_tmp/spec-bin/dash: 3: set: Illegal option -o pipefail
dash24 shopt -p -o

stdout:
stderr: 
_tmp/spec-bin/dash: 1: shopt: not found
_tmp/spec-bin/dash: 3: shopt: not found
mksh24 shopt -p -o

stdout:
stderr: 
_tmp/spec-bin/mksh: <stdin>[1]: shopt: not found
_tmp/spec-bin/mksh: <stdin>[3]: shopt: not found
dash25 shopt -p

stdout:
stderr: 
_tmp/spec-bin/dash: 1: shopt: not found
_tmp/spec-bin/dash: 2: shopt: not found
_tmp/spec-bin/dash: 3: shopt: not found
mksh25 shopt -p

stdout:
stderr: 
_tmp/spec-bin/mksh: <stdin>[1]: shopt: not found
_tmp/spec-bin/mksh: <stdin>[2]: shopt: not found
_tmp/spec-bin/mksh: <stdin>[3]: shopt: not found
dash27 noclobber on

stdout:
0
2
stderr:
_tmp/spec-bin/dash: 5: cannot create /home/andy/git/oilshell/oil/_tmp/spec-tmp/sh-options.test.sh/no-clobber: File exists
osh27 noclobber on

[osh stdout] Expected u'0\n1\n', got '0\n0\n'

stdout:
0
0
stderr:
osh_ALT27 noclobber on

[osh_ALT stdout] Expected u'0\n1\n', got '0\n0\n'

stdout:
0
0
stderr:
dash28 SHELLOPTS is updated when options are changed

stdout:
1
1
1
stderr:
+ echo
+ grep -q xtrace
+ echo 1
+ set +x
mksh28 SHELLOPTS is updated when options are changed

stdout:
1
1
1
stderr:
+ echo
+ grep -q xtrace
+ echo 1
+ set +x
dash29 SHELLOPTS is readonly

stdout:
status=0
stderr:
mksh29 SHELLOPTS is readonly

stdout:
status=0
stderr:
osh29 SHELLOPTS is readonly

[osh stdout] Expected 'status=1\n', got ''
[osh status] Expected 0, got 1

stdout:
stderr: 
  SHELLOPTS=x
  ^~~~~~~~~~
[ stdin ]:1: fatal: Can't assign to readonly value 'SHELLOPTS'
osh_ALT29 SHELLOPTS is readonly

[osh_ALT stdout] Expected 'status=1\n', got ''
[osh_ALT status] Expected 0, got 1

stdout:
stderr: 
  SHELLOPTS=x
  ^~~~~~~~~~
[ stdin ]:1: fatal: Can't assign to readonly value 'SHELLOPTS'
osh30 set -o lists options

[osh stdout] Expected 'errexit\n', got 'errexit\nerrexit\n'

stdout:
errexit
errexit
stderr:
osh_ALT30 set -o lists options

[osh_ALT stdout] Expected 'errexit\n', got 'errexit\nerrexit\n'

stdout:
errexit
errexit
stderr:
bash31 set without args lists variables

stdout:
__GLOBAL=mutated
__OTHERLOCAL=L
__mylocal=L
__var_in_parent_scope=D
stderr:
mksh31 set without args lists variables

stdout:
__GLOBAL=mutated
__var_in_parent_scope=D
__OTHERLOCAL=L
__mylocal=L
stderr:
dash33 set without args lists array variables

stdout:
stderr: 
_tmp/spec-bin/dash: 1: declare: not found
_tmp/spec-bin/dash: 2: Syntax error: "(" unexpected
mksh33 set without args lists array variables

stdout:
__array[0]=1
__array[1]=2
__array[2]='3 4'
stderr:
_tmp/spec-bin/mksh: <stdin>[1]: declare: not found
osh33 set without args lists array variables

[osh stdout] Expected '__array=([0]="1" [1]="2" [2]="3 4")\n', got ''
[osh status] Expected 0, got 1

stdout:
stderr: 
osh_ALT33 set without args lists array variables

[osh_ALT stdout] Expected '__array=([0]="1" [1]="2" [2]="3 4")\n', got ''
[osh_ALT status] Expected 0, got 1

stdout:
stderr: 
dash34 set without args lists assoc array variables

stdout:
stderr: 
_tmp/spec-bin/dash: 1: typeset: not found
_tmp/spec-bin/dash: 2: __assoc[k e y]=v a l: not found
_tmp/spec-bin/dash: 3: __assoc[a]=b: not found
mksh34 set without args lists assoc array variables

stdout:
stderr: 
_tmp/spec-bin/mksh: <stdin>[1]: typeset: -A: unknown option
_tmp/spec-bin/mksh: <stdin>[2]: 'k e y': multi-character character constant
osh34 set without args lists assoc array variables

[osh stdout] Expected '__assoc=(["k e y"]="v a l" [a]="b" )\n', got ''
[osh status] Expected 0, got 1

stdout:
stderr: 
osh_ALT34 set without args lists assoc array variables

[osh_ALT stdout] Expected '__assoc=(["k e y"]="v a l" [a]="b" )\n', got ''
[osh_ALT status] Expected 0, got 1

stdout:
stderr: 
dash35 shopt -q

stdout:
nullglob=127
nullglob=127
nullglob,failglob=127
nullglob,failglob=127
stderr:
_tmp/spec-bin/dash: 1: shopt: not found
_tmp/spec-bin/dash: 3: shopt: not found
_tmp/spec-bin/dash: 4: shopt: not found
_tmp/spec-bin/dash: 6: shopt: not found
_tmp/spec-bin/dash: 8: shopt: not found
_tmp/spec-bin/dash: 9: shopt: not found
mksh35 shopt -q

stdout:
nullglob=127
nullglob=127
nullglob,failglob=127
nullglob,failglob=127
stderr:
_tmp/spec-bin/mksh: <stdin>[1]: shopt: not found
_tmp/spec-bin/mksh: <stdin>[3]: shopt: not found
_tmp/spec-bin/mksh: <stdin>[4]: shopt: not found
_tmp/spec-bin/mksh: <stdin>[6]: shopt: not found
_tmp/spec-bin/mksh: <stdin>[8]: shopt: not found
_tmp/spec-bin/mksh: <stdin>[9]: shopt: not found
dash36 shopt -q invalid

stdout:
invalidZZ=127
stderr:
_tmp/spec-bin/dash: 1: shopt: not found
bash36 shopt -q invalid

stdout:
invalidZZ=1
stderr:
_tmp/spec-bin/bash: line 1: shopt: invalidZZ: invalid shell option name
mksh36 shopt -q invalid

stdout:
invalidZZ=127
stderr:
_tmp/spec-bin/mksh: <stdin>[1]: shopt: not found
dash37 sh -i loads rcfile (when combined with -c)

stdout:
1
stderr:
_tmp/spec-bin/dash: 0: Illegal option --
mksh37 sh -i loads rcfile (when combined with -c)

stdout:
1
stderr:
_tmp/spec-bin/mksh: _tmp/spec-bin/mksh: --: unknown option