Results for errexit-oil.test.sh

statusdashbashmkshashoshosh_ALT
pass 81410122727
ok 303000
N-I 1613141500
total272727272727
casedashbashmkshashoshosh_ALTdescription
0ok pass ok pass pass pass command sub: errexit is NOT inherited and outer shell keeps going
detailsdetails
1pass pass pass N-I pass pass command sub with inherit_errexit only
details
2N-I N-I N-I N-I pass pass strict_errexit with command sub stops program
detailsdetailsdetailsdetails
3N-I N-I N-I N-I pass pass {inherit,strict}_errexit: command sub with a single command
detailsdetailsdetailsdetails
4N-I N-I N-I N-I pass pass strict_errexit with command sub in weird place
detailsdetailsdetailsdetails
5N-I pass pass N-I pass pass strict_errexit allows pipeline because you can set -o pipefail
detailsdetails
6N-I pass N-I pass pass pass command sub with command_sub_errexit only
detailsdetails
7N-I N-I N-I N-I pass pass command sub with inherit_errexit and command_sub_errexit
detailsdetailsdetailsdetails
8pass pass pass pass pass pass command sub: last command fails but keeps going and exit code is 0
9ok pass ok pass pass pass global assignment with command sub: middle command fails
detailsdetails
10pass pass pass pass pass pass global assignment with command sub: last command fails and it aborts
11ok pass ok pass pass pass local: middle command fails and keeps going
detailsdetails
12pass pass pass pass pass pass local: last command fails and also keeps going
13N-I N-I N-I N-I pass pass local and inherit_errexit / command_sub_errexit
detailsdetailsdetailsdetails
14pass pass pass pass pass pass global assignment when last status is failure
15pass pass pass pass pass pass global assignment when last status is failure
16N-I N-I N-I N-I pass pass strict_errexit prevents errexit from being disabled in function
detailsdetailsdetailsdetails
17N-I N-I N-I N-I pass pass strict_errexit prevents errexit from being disabled in brace group
detailsdetailsdetailsdetails
18N-I N-I N-I N-I pass pass strict_errexit prevents errexit from being disabled in subshell
detailsdetailsdetailsdetails
19N-I N-I N-I N-I pass pass strict_errexit and ! && || if while until
detailsdetailsdetailsdetails
20N-I pass pass pass pass pass if pipeline doesn't fail fatally
details
21pass pass pass pass pass pass errexit is silent (verbose_errexit for Oil)
22N-I N-I N-I N-I pass pass command sub errexit preserves exit code
detailsdetailsdetailsdetails
23pass pass pass pass pass pass strict_errexit without errexit
24N-I N-I N-I N-I pass pass What's in strict:all?
detailsdetailsdetailsdetails
25N-I N-I N-I N-I pass pass command_sub_errexit causes local d=$(date %x) to fail
detailsdetailsdetailsdetails
26N-I N-I N-I N-I pass pass command_sub_errexit and command sub in array
detailsdetailsdetailsdetails
98 passed, 6 OK, 58 not implemented, 0 BUG, 0 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

dash0 command sub: errexit is NOT inherited and outer shell keeps going

stdout:
one
parent status=0
stderr:
mksh0 command sub: errexit is NOT inherited and outer shell keeps going

stdout:
one
parent status=0
stderr:
ash1 command sub with inherit_errexit only

stdout:
zero
one two
parent status=0
stderr:
ash: shopt: not found
dash2 strict_errexit with command sub stops program

stdout:
1
A
done
stderr:
dash: 2: shopt: not found
dash: 3: shopt: not found
bash2 strict_errexit with command sub stops program

stdout:
1 2
A
done
stderr:
bash: line 3: shopt: strict_errexit: invalid shell option name
mksh2 strict_errexit with command sub stops program

stdout:
1
A
done
stderr:
mksh: <stdin>[2]: shopt: not found
mksh: <stdin>[3]: shopt: not found
ash2 strict_errexit with command sub stops program

stdout:
1 2
A
done
stderr:
ash: shopt: not found
ash: shopt: not found
dash3 {inherit,strict}_errexit: command sub with a single command

stdout:
A
done
stderr:
dash: 2: shopt: not found
dash: 3: shopt: not found
bash3 {inherit,strict}_errexit: command sub with a single command

stdout:
A
done
stderr:
bash: line 3: shopt: strict_errexit: invalid shell option name
mksh3 {inherit,strict}_errexit: command sub with a single command

stdout:
A
done
stderr:
mksh: <stdin>[2]: shopt: not found
mksh: <stdin>[3]: shopt: not found
ash3 {inherit,strict}_errexit: command sub with a single command

stdout:
A
done
stderr:
ash: shopt: not found
ash: shopt: not found
dash4 strict_errexit with command sub in weird place

stdout:
2
stderr:
dash: 1: shopt: not found
bash4 strict_errexit with command sub in weird place

stdout:
2
stderr:
bash: line 1: shopt: oil:basic: invalid shell option name
mksh4 strict_errexit with command sub in weird place

stdout:
2
stderr:
mksh: <stdin>[1]: shopt: not found
ash4 strict_errexit with command sub in weird place

stdout:
2
stderr:
ash: shopt: not found
dash5 strict_errexit allows pipeline because you can set -o pipefail

stdout:
stderr: 
ash5 strict_errexit allows pipeline because you can set -o pipefail

stdout:
stderr: 
dash6 command sub with command_sub_errexit only

stdout:
zero
one
parent status=0
stderr:
dash: 2: shopt: not found
mksh6 command sub with command_sub_errexit only

stdout:
zero
one
parent status=0
stderr:
mksh: <stdin>[2]: shopt: not found
dash7 command sub with inherit_errexit and command_sub_errexit

stdout:
zero
one
parent status=0
stderr:
dash: 2: shopt: not found
dash: 3: shopt: not found
bash7 command sub with inherit_errexit and command_sub_errexit

stdout:
zero
one
parent status=0
stderr:
bash: line 3: shopt: command_sub_errexit: invalid shell option name
mksh7 command sub with inherit_errexit and command_sub_errexit

stdout:
zero
one
parent status=0
stderr:
mksh: <stdin>[2]: shopt: not found
mksh: <stdin>[3]: shopt: not found
ash7 command sub with inherit_errexit and command_sub_errexit

stdout:
zero
one two
parent status=0
stderr:
ash: shopt: not found
ash: shopt: not found
dash9 global assignment with command sub: middle command fails

stdout:
stderr: 
mksh9 global assignment with command sub: middle command fails

stdout:
stderr: 
dash11 local: middle command fails and keeps going

stdout:
good
status=0
one
stderr:
mksh11 local: middle command fails and keeps going

stdout:
good
status=0
one
stderr:
dash13 local and inherit_errexit / command_sub_errexit

stdout:
good
status=0
one
stderr:
dash: 2: shopt: not found
dash: 3: shopt: not found
bash13 local and inherit_errexit / command_sub_errexit

stdout:
good
status=0
one
stderr:
bash: line 3: shopt: command_sub_errexit: invalid shell option name
mksh13 local and inherit_errexit / command_sub_errexit

stdout:
good
status=0
one
stderr:
mksh: <stdin>[2]: shopt: not found
mksh: <stdin>[3]: shopt: not found
ash13 local and inherit_errexit / command_sub_errexit

stdout:
good
status=0
one two
stderr:
ash: shopt: not found
ash: shopt: not found
dash16 strict_errexit prevents errexit from being disabled in function

stdout:
fun
builtin ok
external ok
fun
stderr:
dash: 4: shopt: not found
bash16 strict_errexit prevents errexit from being disabled in function

stdout:
fun
builtin ok
external ok
fun
stderr:
bash: line 4: shopt: strict_errexit: invalid shell option name
mksh16 strict_errexit prevents errexit from being disabled in function

stdout:
fun
builtin ok
external ok
fun
stderr:
mksh: <stdin>[4]: shopt: not found
ash16 strict_errexit prevents errexit from being disabled in function

stdout:
fun
builtin ok
external ok
fun
stderr:
ash: shopt: not found
dash17 strict_errexit prevents errexit from being disabled in brace group

stdout:
foo
bar
foo
bar
stderr:
dash: 3: shopt: not found
bash17 strict_errexit prevents errexit from being disabled in brace group

stdout:
foo
bar
foo
bar
stderr:
bash: line 3: shopt: strict_errexit: invalid shell option name
mksh17 strict_errexit prevents errexit from being disabled in brace group

stdout:
foo
bar
foo
bar
stderr:
mksh: <stdin>[3]: shopt: not found
ash17 strict_errexit prevents errexit from being disabled in brace group

stdout:
foo
bar
foo
bar
stderr:
ash: shopt: not found
dash18 strict_errexit prevents errexit from being disabled in subshell

stdout:
foo
bar
foo
bar
stderr:
dash: 2: shopt: not found
dash: 4: shopt: not found
bash18 strict_errexit prevents errexit from being disabled in subshell

stdout:
foo
bar
foo
bar
stderr:
bash: line 4: shopt: strict_errexit: invalid shell option name
mksh18 strict_errexit prevents errexit from being disabled in subshell

stdout:
foo
bar
foo
bar
stderr:
mksh: <stdin>[2]: shopt: not found
mksh: <stdin>[4]: shopt: not found
ash18 strict_errexit prevents errexit from being disabled in subshell

stdout:
foo
bar
foo
bar
stderr:
ash: shopt: not found
ash: shopt: not found
dash19 strict_errexit and ! && || if while until

stdout:
fun
should not get here
bang=0
--
fun
or=0
--
fun
and=0
--
fun
if=0
--
fun
while
while=0
--
fun
until=0
--
stderr:
dash: 2: shopt: not found
dash: 2: shopt: not found
dash: 2: shopt: not found
dash: 2: shopt: not found
dash: 2: shopt: not found
dash: 2: shopt: not found
bash19 strict_errexit and ! && || if while until

stdout:
fun
should not get here
bang=0
--
fun
or=0
--
fun
and=0
--
fun
if=0
--
fun
while
while=0
--
fun
until=0
--
stderr:
bash: line 1: shopt: strict_errexit: invalid shell option name
bash: line 1: shopt: strict_errexit: invalid shell option name
bash: line 1: shopt: strict_errexit: invalid shell option name
bash: line 1: shopt: strict_errexit: invalid shell option name
bash: line 1: shopt: strict_errexit: invalid shell option name
bash: line 1: shopt: strict_errexit: invalid shell option name
mksh19 strict_errexit and ! && || if while until

stdout:
fun
should not get here
bang=0
--
fun
or=0
--
fun
and=0
--
fun
if=0
--
fun
while
while=0
--
fun
until=0
--
stderr:
mksh: shopt: not found
mksh: shopt: not found
mksh: shopt: not found
mksh: shopt: not found
mksh: shopt: not found
mksh: shopt: not found
ash19 strict_errexit and ! && || if while until

stdout:
fun
should not get here
bang=0
--
fun
or=0
--
fun
and=0
--
fun
if=0
--
fun
while
while=0
--
fun
until=0
--
stderr:
ash: shopt: not found
ash: shopt: not found
ash: shopt: not found
ash: shopt: not found
ash: shopt: not found
ash: shopt: not found
dash20 if pipeline doesn't fail fatally

stdout:
stderr: 
dash: 2: set: Illegal option -o pipefail
dash22 command sub errexit preserves exit code

stdout:
before

after
stderr:
dash: 2: shopt: not found
bash22 command sub errexit preserves exit code

stdout:
before

after
stderr:
bash: line 2: shopt: command_sub_errexit: invalid shell option name
mksh22 command sub errexit preserves exit code

stdout:
before

after
stderr:
mksh: <stdin>[2]: shopt: not found
ash22 command sub errexit preserves exit code

stdout:
before

after
stderr:
ash: shopt: not found
dash24 What's in strict:all?

stdout:
one
two
should not get here
stderr:
dash: 2: shopt: not found
date: invalid date ‘%x’
bash24 What's in strict:all?

stdout:
one
two
should not get here
stderr:
bash: line 2: shopt: strict:all: invalid shell option name
date: invalid date ‘%x’
mksh24 What's in strict:all?

stdout:
one
two
should not get here
stderr:
mksh: <stdin>[2]: shopt: not found
date: invalid date ‘%x’
ash24 What's in strict:all?

stdout:
one
two
should not get here
stderr:
ash: shopt: not found
date: invalid date ‘%x’
dash25 command_sub_errexit causes local d=$(date %x) to fail

stdout:
hi
stderr:
dash: 2: shopt: not found
dash: 3: shopt: not found
date: invalid date ‘%x’
bash25 command_sub_errexit causes local d=$(date %x) to fail

stdout:
hi
stderr:
bash: line 3: shopt: command_sub_errexit: invalid shell option name
date: invalid date ‘%x’
mksh25 command_sub_errexit causes local d=$(date %x) to fail

stdout:
hi
stderr:
mksh: <stdin>[2]: shopt: not found
mksh: <stdin>[3]: shopt: not found
date: invalid date ‘%x’
ash25 command_sub_errexit causes local d=$(date %x) to fail

stdout:
hi
stderr:
ash: shopt: not found
ash: shopt: not found
date: invalid date ‘%x’
dash26 command_sub_errexit and command sub in array

stdout:
stderr: 
bash26 command_sub_errexit and command sub in array

stdout:
['one', '', 'two']
stderr:
bash: line 4: shopt: command_sub_errexit: invalid shell option name
date: invalid date ‘%x’
mksh26 command_sub_errexit and command sub in array

stdout:
stderr: 
ash26 command_sub_errexit and command sub in array

stdout:
stderr: