Results for sh-options.test.sh

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

108 passed, 9 ok, 16 known unimplemented, 2 known bugs, 5 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:
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:
dash28 SHELLOPTS is updated when options are changed

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

stdout:
1
1
1
stderr:
+ grep -q xtrace
+ echo
+ 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: 
*** Error has no source location info ***
fatal: Can't assign to readonly value 'SHELLOPTS'
osh30 set -o lists options

[osh status] Expected 0, got 1

stdout:
stderr: 
usage error: 'set' Expected argument for option
osh31 set without args lists variables

[osh status] Expected 0, got 1

stdout:
stderr: 
dash32 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
mksh32 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
dash33 shopt -q invalid

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

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

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

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

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