Results for var-op-test.test.sh

statusbashdashmkshzshosh
pass 2616221925
ok 03133
N-I 08220
BUG 21340
total2828282828
casebashdashmkshzshoshdescription
0pass N-I pass pass pass Lazy Evaluation of Alternative
details
1pass pass pass pass pass Default value when empty
2pass pass pass pass pass Default value when unset
3pass pass pass ok ok Unquoted with array as default value
detailsdetails
4BUG pass pass pass ok Quoted with array as default value
detailsdetails
5pass pass pass ok ok Assign default with array
detailsdetails
6pass pass pass pass pass Assign default value when empty
7pass pass pass pass pass Assign default value when unset
8pass pass pass pass pass ${v:+foo} Alternative value when empty
9pass pass pass pass pass ${v+foo} Alternative value when unset
10pass pass pass pass pass "${x+foo}" quoted (regression)
11pass pass pass pass pass ${s+foo} and ${s:+foo} when set -u
12BUG N-I BUG pass pass "${array[@]} with set -u (bash is outlier)
detailsdetailsdetails
13pass N-I pass pass pass "${undefined[@]+foo}" and "${undefined[@]:+foo}", with set -u
details
14pass N-I BUG BUG pass "${a[@]+foo}" and "${a[@]:+foo}" - operators are equivalent on arrays?
detailsdetailsdetails
15pass ok ok ok pass Nix idiom ${!hooksSlice+"${!hooksSlice}"} - was workaround for obsolete bash 4.3 bug
detailsdetailsdetails
16pass pass pass pass pass ${v-foo} and ${v:-foo} when set -u
17pass N-I pass N-I pass array and - and +
detailsdetails
18pass BUG pass BUG pass $@ and - and +
detailsdetails
19pass N-I N-I BUG pass assoc array and - and +
detailsdetailsdetails
20pass ok pass pass pass Error when empty
details
21pass ok pass pass pass Error when unset
details
22pass pass pass pass pass Error when unset
23pass pass pass pass pass ${var=x} dynamic scope
24pass N-I pass N-I pass array ${arr[0]=x}
detailsdetails
25pass N-I N-I pass pass assoc array ${arr["k"]=x}
detailsdetails
26pass pass pass pass pass "\z" as arg
27pass pass BUG BUG pass "\e" as arg
detailsdetails
108 passed, 10 OK, 12 not implemented, 10 BUG, 0 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

dash0 Lazy Evaluation of Alternative

stdout:
x
0
stderr:
dash: 5: arithmetic expression: expecting primary: "i++"
zsh3 Unquoted with array as default value

stdout:
['Xx1 2 3 4xX']
['Xx1 2 3 4xX']
stderr:
osh3 Unquoted with array as default value

stdout:
['Xx1 2', '3 4xX']
['Xx1', '2', '3', '4xX']
stderr:
bash4 Quoted with array as default value

stdout:
['Xx1', '2', '3', '4xX']
['Xx1 2 3 4xX']
stderr:
osh4 Quoted with array as default value

stdout:
['Xx1 2', '3 4xX']
['Xx1 2 3 4xX']
stderr:
zsh5 Assign default with array

stdout:
['Xx1 2 3 4xX']
['x1 2 3 4x']
stderr:
osh5 Assign default with array

stdout:
['Xx1 2', '3 4xX']
['x1 2 3 4x']
stderr:
bash12 "${array[@]} with set -u (bash is outlier)

stdout:
empty //
undefined //
stderr:
dash12 "${array[@]} with set -u (bash is outlier)

stdout:
stderr: 
mksh12 "${array[@]} with set -u (bash is outlier)

stdout:
stderr: 
mksh: <stdin>[8]: empty[@]: parameter not set
dash13 "${undefined[@]+foo}" and "${undefined[@]:+foo}", with set -u

stdout:
stderr: 
dash14 "${a[@]+foo}" and "${a[@]:+foo}" - operators are equivalent on arrays?

stdout:
stderr: 
mksh14 "${a[@]+foo}" and "${a[@]:+foo}" - operators are equivalent on arrays?

stdout:
+  //
+: //

+  //
+: //

+  /foo/
+: //

+  /foo/
+: /foo/

stderr:
zsh14 "${a[@]+foo}" and "${a[@]:+foo}" - operators are equivalent on arrays?

stdout:
+  //
+: //

+  /foo/
+: //

+  /foo/
+: /foo/

+  /foo/
+: /foo/

stderr:
dash15 Nix idiom ${!hooksSlice+"${!hooksSlice}"} - was workaround for obsolete bash 4.3 bug

stdout:
stderr: 
mksh15 Nix idiom ${!hooksSlice+"${!hooksSlice}"} - was workaround for obsolete bash 4.3 bug

stdout:
stderr: 
zsh15 Nix idiom ${!hooksSlice+"${!hooksSlice}"} - was workaround for obsolete bash 4.3 bug

stdout:
stderr: 
dash17 array and - and +

stdout:
stderr: 
zsh17 array and - and +

stdout:
empty=
a1=
stderr:
zsh: command not found: shopt
zsh: no matches found: a1[0]=minus
dash18 $@ and - and +

stdout:
argv=
argv=plus
argv=minus
argv=
stderr:
zsh18 $@ and - and +

stdout:
argv=
argv=plus
argv=minus
argv=
stderr:
dash19 assoc array and - and +

stdout:
stderr: 
mksh19 assoc array and - and +

stdout:
stderr: 
zsh19 assoc array and - and +

stdout:
empty=
empty=plus
assoc=minus
assoc=
---
empty=minus
empty=
assoc=minus
assoc=
stderr:
zsh: no matches found: [k]=v
dash20 Error when empty

stdout:
stderr: 
dash: 2: empty: is empty
dash21 Error when unset

stdout:
stderr: 
dash: 1: unset: is empty
dash24 array ${arr[0]=x}

stdout:
stderr: 
dash: 1: Syntax error: "(" unexpected
zsh24 array ${arr[0]=x}

stdout:
0
stderr:
zsh: arr: assignment to invalid subscript range
dash25 assoc array ${arr["k"]=x}

stdout:
stderr: 
dash: 1: Syntax error: "(" unexpected
mksh25 assoc array ${arr["k"]=x}

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: '(' unexpected
mksh27 "\e" as arg

stdout:

stderr:
zsh27 "\e" as arg

stdout:

stderr: