Results for sh-options.test.sh

statusbashdashmkshosh
pass 2891637
ok 10560
N-I 123171
BUG 0200
FAIL 0001
total39393939
casebashdashmkshoshdescription
0ok pass ok pass $- with -c
detailsdetails
1ok N-I ok pass $- with pipefail
detailsdetailsdetails
2pass N-I pass pass $- and more options
details
3pass pass pass pass $- with interactive shell
4pass pass pass pass pass short options like sh -e
5pass pass pass pass pass long options like sh -o errexit
6pass N-I N-I pass pass shopt options like sh -O nullglob
detailsdetails
7pass pass pass pass set -o vi/emacs
8pass N-I N-I pass vi and emacs are mutually exclusive
detailsdetails
9pass N-I ok pass interactive shell starts with emacs mode on
detailsdetails
10pass ok pass pass nounset
details
11pass ok pass pass -u is nounset
details
12pass pass pass FAIL -n for no execution (useful with --ast-output)
details
13pass N-I pass pass pipefail
details
14pass N-I N-I pass shopt -p -o prints 'set' options
detailsdetails
15pass N-I N-I pass shopt -o prints 'set' options
detailsdetails
16pass N-I N-I pass shopt -p prints 'shopt' options
detailsdetails
17pass N-I N-I pass shopt with no flags prints options
detailsdetails
18pass pass pass pass noclobber off
19pass ok pass pass noclobber on
details
20pass N-I pass pass noclobber on <>
details
21pass pass pass pass noclobber on >>
22pass BUG pass pass noclobber on &> >
details
23pass BUG pass pass noclobber on &>> >>
details
24pass ok ok pass set without args lists variables
detailsdetails
25ok N-I ok pass set without args and array variables
detailsdetailsdetails
26pass N-I N-I N-I set without args and assoc array variables (not in OSH)
detailsdetailsdetails
27pass N-I N-I pass shopt -q
detailsdetails
28ok N-I N-I pass shopt -q invalid
detailsdetailsdetails
29N-I N-I N-I pass shopt -s strict:all
detailsdetailsdetails
30pass N-I N-I pass shopt allows for backward compatibility like bash
detailsdetails
31ok N-I N-I pass shopt -p validates option names
detailsdetailsdetails
32ok N-I N-I pass shopt -p -o validates option names
detailsdetailsdetails
33ok ok ok pass stubbed out bash options
detailsdetailsdetails
34ok N-I N-I pass shopt -s nounset works in YSH, not in bash
detailsdetailsdetails
35ok N-I N-I pass Unimplemented options - print, query, set, unset
detailsdetailsdetails
36pass N-I N-I pass Unimplemented options - OSH shopt -s ignore_shopt_not_impl
detailsdetails
37pass N-I N-I pass shopt -p exit code (regression)
detailsdetails
38ok pass pass pass no-ops not shown by shopt -p
details
90 passed, 21 OK, 42 not implemented, 2 BUG, 1 failed, 0 timeouts, 0 cases skipped
1 failed under osh

Details on runs that didn't PASS

bash0 $- with -c

stdout:
huBc
stderr:
mksh0 $- with -c

stdout:
uhc
stderr:
bash1 $- with pipefail

stdout:
huBs
stderr:
dash1 $- with pipefail

stdout:
stderr: 
dash: 1: set: Illegal option -o pipefail
mksh1 $- with pipefail

stdout:
ush
stderr:
dash2 $- and more options

stdout:
stderr: 
dash: 3: [[: not found
dash6 pass shopt options like sh -O nullglob

stdout:
stderr: 
dash: 0: Illegal option -O
dash: 0: Illegal option -O
mksh6 pass shopt options like sh -O nullglob

stdout:
stderr: 
mksh: mksh: -O: unknown option
mksh: mksh: -O: unknown option
dash8 vi and emacs are mutually exclusive

stdout:
___
___
___
stderr:
dash: 2: shopt: not found
dash: 2: shopt: not found
dash: 2: shopt: not found
mksh8 vi and emacs are mutually exclusive

stdout:
___
___
___
stderr:
mksh: <stdin>[5]: shopt: not found
mksh: <stdin>[8]: shopt: not found
mksh: <stdin>[11]: shopt: not found
dash9 interactive shell starts with emacs mode on

stdout:
stderr: 
mksh9 interactive shell starts with emacs mode on

stdout:
non-interactive
0
1
interactive
0
1
stderr:
mksh: can't find tty fd: No such device or address
mksh: warning: won't have full job control
dash10 nounset

stdout:
[]
stderr:
dash: 3: unset: parameter not set
dash11 -u is nounset

stdout:
[]
stderr:
dash: 3: unset: parameter not set
osh12 -n for no execution (useful with --ast-output)

[osh stdout] Expected '1\n' Got '1\n2\n3\n'

stdout:
1
2
3
stderr:
dash13 pipefail

stdout:
0
stderr:
dash: 3: set: Illegal option -o pipefail
dash14 shopt -p -o prints 'set' options

stdout:
stderr: 
mksh14 shopt -p -o prints 'set' options

stdout:
stderr: 
dash15 shopt -o prints 'set' options

stdout:
stderr: 
mksh15 shopt -o prints 'set' options

stdout:
stderr: 
dash16 shopt -p prints 'shopt' options

stdout:
stderr: 
dash: 1: shopt: not found
dash: 2: shopt: not found
dash: 3: shopt: not found
mksh16 shopt -p prints 'shopt' options

stdout:
stderr: 
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[2]: shopt: not found
mksh: <stdin>[3]: shopt: not found
dash17 shopt with no flags prints options

stdout:
0 one.txt
0
stderr:
dash: 3: shopt: not found
dash: 8: shopt: not found
mksh17 shopt with no flags prints options

stdout:
0 one.txt
0
stderr:
mksh: <stdin>[3]: shopt: not found
mksh: <stdin>[8]: shopt: not found
dash19 noclobber on

stdout:
create=0
overwrite=2
force=0
force
stderr:
dash: 7: cannot create no-clobber: File exists
dash20 noclobber on <>

stdout:
.oo
stderr:
dash: 4: read: Illegal option -n
dash22 noclobber on &> >

stdout:
stderr: 
dash23 noclobber on &>> >>

stdout:
stdout=0
again=0
foo
bar
both=0
baz
again=0
foo
stderr:
dash24 set without args lists variables

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

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

stdout:
__array=([0]="1" [1]="2" [2]="3 4")
stderr:
dash25 set without args and array variables

stdout:
stderr: 
dash: 1: declare: not found
dash: 2: Syntax error: "(" unexpected
mksh25 set without args and array variables

stdout:
__array[0]=1
__array[1]=2
__array[2]='3 4'
stderr:
mksh: <stdin>[1]: declare: not found
dash26 set without args and assoc array variables (not in OSH)

stdout:
stderr: 
dash: 1: typeset: not found
dash: 2: __assoc[k e y]=v a l: not found
dash: 3: __assoc[a]=b: not found
mksh26 set without args and assoc array variables (not in OSH)

stdout:
stderr: 
mksh: <stdin>[1]: typeset: -A: unknown option
mksh: <stdin>[2]: 'k e y': multi-character character constant
osh26 set without args and assoc array variables (not in OSH)

stdout:
stderr: 
  __assoc[a]=b
  ^~~~~~~~
[ stdin ]:3: fatal: Assoc array keys must be strings: $x 'x' "$x" etc. (OILS-ERR-101)
dash27 shopt -q

stdout:
nullglob=127
nullglob=127
nullglob,failglob=127
nullglob,failglob=127
stderr:
dash: 1: shopt: not found
dash: 4: shopt: not found
dash: 6: shopt: not found
dash: 9: shopt: not found
dash: 12: shopt: not found
dash: 13: shopt: not found
mksh27 shopt -q

stdout:
nullglob=127
nullglob=127
nullglob,failglob=127
nullglob,failglob=127
stderr:
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[4]: shopt: not found
mksh: <stdin>[6]: shopt: not found
mksh: <stdin>[9]: shopt: not found
mksh: <stdin>[12]: shopt: not found
mksh: <stdin>[13]: shopt: not found
bash28 shopt -q invalid

stdout:
invalidZZ=1
stderr:
bash: line 1: shopt: invalidZZ: invalid shell option name
dash28 shopt -q invalid

stdout:
invalidZZ=127
stderr:
dash: 1: shopt: not found
mksh28 shopt -q invalid

stdout:
invalidZZ=127
stderr:
mksh: <stdin>[1]: shopt: not found
bash29 shopt -s strict:all

stdout:
-
-
-
stderr:
bash: line 9: shopt: strict:all: invalid shell option name
bash: line 11: shopt: strict_argv: invalid shell option name
dash29 shopt -s strict:all

stdout:
stderr: 
dash: 3: Syntax error: Bad function name
mksh29 shopt -s strict:all

stdout:
-
-
-
stderr:
mksh: <stdin>[8]: shopt: not found
mksh: <stdin>[9]: shopt: not found
mksh: <stdin>[10]: shopt: not found
mksh: <stdin>[11]: shopt: not found
mksh: <stdin>[12]: shopt: not found
dash30 shopt allows for backward compatibility like bash

stdout:
status=0
stderr:
dash: 3: shopt: not found
dash: 8: shopt: not found
mksh30 shopt allows for backward compatibility like bash

stdout:
status=0
stderr:
mksh: <stdin>[3]: shopt: not found
mksh: <stdin>[8]: shopt: not found
bash31 shopt -p validates option names

stdout:
shopt -u nullglob
shopt -u failglob
status=1
nullglob off
failglob off
status=1
stderr:
bash: line 1: shopt: invalid: invalid shell option name
bash: line 3: shopt: invalid: invalid shell option name
dash31 shopt -p validates option names

stdout:
status=127
status=127
stderr:
dash: 1: shopt: not found
dash: 3: shopt: not found
mksh31 shopt -p validates option names

stdout:
status=127
status=127
stderr:
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[3]: shopt: not found
bash32 shopt -p -o validates option names

stdout:
set +o errexit
set +o nounset
status=1
stderr:
bash: line 1: shopt: invalid: invalid option name
dash32 shopt -p -o validates option names

stdout:
status=127
stderr:
dash: 1: shopt: not found
mksh32 shopt -p -o validates option names

stdout:
status=127
stderr:
mksh: <stdin>[1]: shopt: not found
bash33 stubbed out bash options

stdout:
1
0
0
0
stderr:
bash: line 1: shopt: ignore_shopt_not_impl: invalid shell option name
bash: line 3: shopt: foo: invalid shell option name
dash33 stubbed out bash options

stdout:
127
127
127
127
stderr:
dash: 1: shopt: not found
dash: 3: shopt: not found
dash: 3: shopt: not found
dash: 3: shopt: not found
dash: 3: shopt: not found
mksh33 stubbed out bash options

stdout:
127
127
127
127
stderr:
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[5]: shopt: not found
mksh: <stdin>[5]: shopt: not found
mksh: <stdin>[5]: shopt: not found
mksh: <stdin>[5]: shopt: not found
bash34 shopt -s nounset works in YSH, not in bash

stdout:
status=1
nounset off
stderr:
bash: line 7: shopt: nounset: invalid shell option name
dash34 shopt -s nounset works in YSH, not in bash

stdout:
N-I
stderr:
mksh34 shopt -s nounset works in YSH, not in bash

stdout:
N-I
stderr:
bash35 Unimplemented options - print, query, set, unset

stdout:
shopt -u xpg_echo
q=1
shopt -s xpg_echo
shopt -u xpg_echo
p=1
noflag=1
set=1
stderr:
dash35 Unimplemented options - print, query, set, unset

stdout:
stderr: 
mksh35 Unimplemented options - print, query, set, unset

stdout:
stderr: 
dash36 Unimplemented options - OSH shopt -s ignore_shopt_not_impl

stdout:
stderr: 
mksh36 Unimplemented options - OSH shopt -s ignore_shopt_not_impl

stdout:
stderr: 
dash37 shopt -p exit code (regression)

stdout:
stderr: 
mksh37 shopt -p exit code (regression)

stdout:
stderr: 
bash38 no-ops not shown by shopt -p

stdout:
shopt -u xpg_echo
--
stderr: