Results for var-op-test.test.sh

statusoshosh_.pyosh_.cc
pass 211919
ok 300
FAIL 055
total242424
caseoshosh_.pyosh_.ccdescription
0pass pass pass Lazy Evaluation of Alternative
1pass pass pass Default value when empty
2pass pass pass Default value when unset
3ok FAIL FAIL Unquoted with array as default value
detailsdetailsdetails
4ok FAIL FAIL Quoted with array as default value
detailsdetailsdetails
5ok FAIL FAIL Assign default with array
detailsdetailsdetails
6pass pass pass Assign default value when empty
7pass pass pass Assign default value when unset
8pass pass pass ${v:+foo} Alternative value when empty
9pass pass pass ${v+foo} Alternative value when unset
10pass FAIL FAIL "${x+foo}" quoted (regression)
detailsdetails
11pass pass pass ${v+foo} and ${v:+foo} when set -u
12pass pass pass ${v-foo} and ${v:-foo} when set -u
13pass FAIL FAIL array and - and +
detailsdetails
14pass pass pass $@ and - and +
15pass pass pass assoc array and - and +
16pass pass pass Error when empty
17pass pass pass Error when unset
18pass pass pass Error when unset
19pass pass pass ${var=x} dynamic scope
20pass pass pass array ${arr[0]=x}
21pass pass pass assoc array ${arr["k"]=x}
22pass pass pass "\z" as arg
23pass pass pass "\e" as arg
59 passed, 3 OK, 0 not implemented, 0 BUG, 10 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

osh3 Unquoted with array as default value

stdout:
['Xx1 2', '3 4xX']
['Xx1', '2', '3', '4xX']
stderr:
osh_.py3 Unquoted with array as default value

[osh_.py stdout] Expected "['Xx1 2', '3 4xX']\n['Xx1', '2', '3', '4xX']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py X${unset=x"$@"x}X
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
  argv.py X${unset=x$@x}X  # If you want OSH to split, write this
  ^~~~~~~
[ stdin ]:3: 'argv.py' not found
osh_.cc3 Unquoted with array as default value

[osh_.cc stdout] Expected "['Xx1 2', '3 4xX']\n['Xx1', '2', '3', '4xX']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py X${unset=x"$@"x}X
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
  argv.py X${unset=x$@x}X  # If you want OSH to split, write this
  ^~~~~~~
[ stdin ]:3: 'argv.py' not found
osh4 Quoted with array as default value

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

[osh_.py stdout] Expected "['Xx1 2', '3 4xX']\n['Xx1 2 3 4xX']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "X${unset=x"$@"x}X"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
  argv.py "X${unset=x$@x}X"  # OSH is the same here
  ^~~~~~~
[ stdin ]:3: 'argv.py' not found
osh_.cc4 Quoted with array as default value

[osh_.cc stdout] Expected "['Xx1 2', '3 4xX']\n['Xx1 2 3 4xX']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "X${unset=x"$@"x}X"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
  argv.py "X${unset=x$@x}X"  # OSH is the same here
  ^~~~~~~
[ stdin ]:3: 'argv.py' not found
osh5 Assign default with array

stdout:
['Xx1 2', '3 4xX']
['x1 2 3 4x']
stderr:
osh_.py5 Assign default with array

[osh_.py stdout] Expected "['Xx1 2', '3 4xX']\n['x1 2 3 4x']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py X${unset=x"$@"x}X
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
  argv.py "$unset"
  ^~~~~~~
[ stdin ]:3: 'argv.py' not found
osh_.cc5 Assign default with array

[osh_.cc stdout] Expected "['Xx1 2', '3 4xX']\n['x1 2 3 4x']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py X${unset=x"$@"x}X
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
  argv.py "$unset"
  ^~~~~~~
[ stdin ]:3: 'argv.py' not found
osh_.py10 "${x+foo}" quoted (regression)

[osh_.py stdout] Expected "['', '=', 'set']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${with_icc+set}" = set
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc10 "${x+foo}" quoted (regression)

[osh_.cc stdout] Expected "['', '=', 'set']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${with_icc+set}" = set
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py13 array and - and +

[osh_.py stdout] Expected "empty=minus\na1=\na1[0]=\na2= x\na3=3 4\n---\nempty=\na1=plus\na1[0]=plus\na2=plus\na3=plus\n---\nempty=\na1=plus\na2=plus\na3=plus\n---\n['minus']\n[]\n['']\n['plus']\n['']\n['plus']\n['', 'x']\n['plus']\n['3', '4']\n['plus']\n", got 'empty=minus\na1=\na1[0]=\na2= x\na3=3 4\n---\nempty=\na1=plus\na1[0]=plus\na2=plus\na3=plus\n---\nempty=\na1=plus\na2=plus\na3=plus\n---\n'
[osh_.py status] Expected 0, got 127

stdout:
empty=minus
a1=
a1[0]=
a2= x
a3=3 4
---
empty=
a1=plus
a1[0]=plus
a2=plus
a3=plus
---
empty=
a1=plus
a2=plus
a3=plus
---
stderr:
  argv.py "${empty[@]-minus}"
  ^~~~~~~
[ stdin ]:24: 'argv.py' not found
  argv.py "${empty[@]+plus}"
  ^~~~~~~
[ stdin ]:25: 'argv.py' not found
  argv.py "${a1[@]-minus}"
  ^~~~~~~
[ stdin ]:26: 'argv.py' not found
  argv.py "${a1[@]+plus}"
  ^~~~~~~
[ stdin ]:27: 'argv.py' not found
  argv.py "${a1[0]-minus}"
  ^~~~~~~
[ stdin ]:28: 'argv.py' not found
  argv.py "${a1[0]+plus}"
  ^~~~~~~
[ stdin ]:29: 'argv.py' not found
  argv.py "${a2[@]-minus}"
  ^~~~~~~
[ stdin ]:30: 'argv.py' not found
  argv.py "${a2[@]+plus}"
  ^~~~~~~
[ stdin ]:31: 'argv.py' not found
  argv.py "${a3[@]-minus}"
  ^~~~~~~
[ stdin ]:32: 'argv.py' not found
  argv.py "${a3[@]+plus}"
  ^~~~~~~
[ stdin ]:33: 'argv.py' not found
osh_.cc13 array and - and +

[osh_.cc stdout] Expected "empty=minus\na1=\na1[0]=\na2= x\na3=3 4\n---\nempty=\na1=plus\na1[0]=plus\na2=plus\na3=plus\n---\nempty=\na1=plus\na2=plus\na3=plus\n---\n['minus']\n[]\n['']\n['plus']\n['']\n['plus']\n['', 'x']\n['plus']\n['3', '4']\n['plus']\n", got 'empty=minus\na1=\na1[0]=\na2= x\na3=3 4\n---\nempty=\na1=plus\na1[0]=plus\na2=plus\na3=plus\n---\nempty=\na1=plus\na2=plus\na3=plus\n---\n'
[osh_.cc status] Expected 0, got 127

stdout:
empty=minus
a1=
a1[0]=
a2= x
a3=3 4
---
empty=
a1=plus
a1[0]=plus
a2=plus
a3=plus
---
empty=
a1=plus
a2=plus
a3=plus
---
stderr:
  argv.py "${empty[@]-minus}"
  ^~~~~~~
[ stdin ]:24: 'argv.py' not found
  argv.py "${empty[@]+plus}"
  ^~~~~~~
[ stdin ]:25: 'argv.py' not found
  argv.py "${a1[@]-minus}"
  ^~~~~~~
[ stdin ]:26: 'argv.py' not found
  argv.py "${a1[@]+plus}"
  ^~~~~~~
[ stdin ]:27: 'argv.py' not found
  argv.py "${a1[0]-minus}"
  ^~~~~~~
[ stdin ]:28: 'argv.py' not found
  argv.py "${a1[0]+plus}"
  ^~~~~~~
[ stdin ]:29: 'argv.py' not found
  argv.py "${a2[@]-minus}"
  ^~~~~~~
[ stdin ]:30: 'argv.py' not found
  argv.py "${a2[@]+plus}"
  ^~~~~~~
[ stdin ]:31: 'argv.py' not found
  argv.py "${a3[@]-minus}"
  ^~~~~~~
[ stdin ]:32: 'argv.py' not found
  argv.py "${a3[@]+plus}"
  ^~~~~~~
[ stdin ]:33: 'argv.py' not found