Results for array-assign.test.sh

statusoshosh-cpp
pass 11
ok 11
FAIL 99
total1111
caseoshosh-cppdescription
0pass pass Indexed LHS without spaces, and +=
1FAIL FAIL Indexed LHS with spaces
detailsdetails
2FAIL FAIL Nested a[i[0]]=0
detailsdetails
3FAIL FAIL Multiple LHS array words
detailsdetails
4FAIL FAIL LHS array is protected with shopt -s eval_unsafe_arith, e.g. 'a[$(echo 2)]'
detailsdetails
5FAIL FAIL file named a[ is not executed
detailsdetails
6FAIL FAIL More fragments like a[ a[5 a[5 + a[5 + 3]
detailsdetails
7FAIL FAIL Are quotes allowed?
detailsdetails
8FAIL FAIL Tricky parsing - a[ a[0]=1 ]=X a[ a[0]+=1 ]+=X
detailsdetails
9FAIL FAIL argv.py a[1 + 2]=
detailsdetails
10ok ok declare builtin doesn't allow spaces
detailsdetails
2 passed, 2 OK, 0 not implemented, 0 BUG, 9 failed, 0 timeouts, 0 cases skipped
9 failed under osh

Details on runs that didn't PASS

osh1 Indexed LHS with spaces

[osh stdout] Expected "status=0\n['x', 'z']\n", got 'status=127\n[]\n'

stdout:
status=127
[]
stderr:
  a[1 * 1]=x
  ^~
[ stdin ]:3: Command 'a[1' not found (OILS-ERR-100)
  a[ 1 + 2 ]=z
  ^~
[ stdin ]:4: Command 'a[' not found (OILS-ERR-100)
osh-cpp1 Indexed LHS with spaces

[osh-cpp stdout] Expected "status=0\n['x', 'z']\n", got 'status=127\n[]\n'

stdout:
status=127
[]
stderr:
  a[1 * 1]=x
  ^~
[ stdin ]:3: Command 'a[1' not found (OILS-ERR-100)
  a[ 1 + 2 ]=z
  ^~
[ stdin ]:4: Command 'a[' not found (OILS-ERR-100)
osh2 Nested a[i[0]]=0

[osh stdout] Expected "['0', '1', '2', '3']\n", got "['0']\n"

stdout:
['0']
stderr:
  a[ i[1] ]=1
  ^~
[ stdin ]:6: Command 'a[' not found (OILS-ERR-100)
  a[ i[2] ]=2
  ^~
[ stdin ]:7: Command 'a[' not found (OILS-ERR-100)
  a[ i[1]+i[2] ]=3
  ^~
[ stdin ]:8: Command 'a[' not found (OILS-ERR-100)
osh-cpp2 Nested a[i[0]]=0

[osh-cpp stdout] Expected "['0', '1', '2', '3']\n", got "['0']\n"

stdout:
['0']
stderr:
  a[ i[1] ]=1
  ^~
[ stdin ]:6: Command 'a[' not found (OILS-ERR-100)
  a[ i[2] ]=2
  ^~
[ stdin ]:7: Command 'a[' not found (OILS-ERR-100)
  a[ i[1]+i[2] ]=3
  ^~
[ stdin ]:8: Command 'a[' not found (OILS-ERR-100)
osh3 Multiple LHS array words

[osh stdout] Expected 'declare -a a=([0]="0" [1]="" [2]="2")\ndeclare -a b=([0]="3" [1]="4" [2]="/home/spec-test/src")\n---\n[\'b[2\', \'+\', \'0]=bar\']\nstatus=0\ndeclare -a a=([0]="0" [1]="" [2]="2")\ndeclare -a b=([0]="3" [1]="4" [2]="/home/spec-test/src")\n' Got 'declare -a a=(0 1 2)\ndeclare -a b=(3 4 5)\n---\nstatus=127\ndeclare -a a=(0 1 2)\ndeclare -a b=(3 4 5)\n'

stdout:
declare -a a=(0 1 2)
declare -a b=(3 4 5)
---
status=127
declare -a a=(0 1 2)
declare -a b=(3 4 5)
stderr:
  a[0 + 1]=  b[2 + 0]=~/src
  ^~
[ stdin ]:9: Command 'a[0' not found (OILS-ERR-100)
  a[0 + 1]='foo' argv.py b[2 + 0]='bar'
  ^~
[ stdin ]:15: Command 'a[0' not found (OILS-ERR-100)
osh-cpp3 Multiple LHS array words

[osh-cpp stdout] Expected 'declare -a a=([0]="0" [1]="" [2]="2")\ndeclare -a b=([0]="3" [1]="4" [2]="/home/spec-test/src")\n---\n[\'b[2\', \'+\', \'0]=bar\']\nstatus=0\ndeclare -a a=([0]="0" [1]="" [2]="2")\ndeclare -a b=([0]="3" [1]="4" [2]="/home/spec-test/src")\n' Got 'declare -a a=(0 1 2)\ndeclare -a b=(3 4 5)\n---\nstatus=127\ndeclare -a a=(0 1 2)\ndeclare -a b=(3 4 5)\n'

stdout:
declare -a a=(0 1 2)
declare -a b=(3 4 5)
---
status=127
declare -a a=(0 1 2)
declare -a b=(3 4 5)
stderr:
  a[0 + 1]=  b[2 + 0]=~/src
  ^~
[ stdin ]:9: Command 'a[0' not found (OILS-ERR-100)
  a[0 + 1]='foo' argv.py b[2 + 0]='bar'
  ^~
[ stdin ]:15: Command 'a[0' not found (OILS-ERR-100)
osh4 LHS array is protected with shopt -s eval_unsafe_arith, e.g. 'a[$(echo 2)]'

[osh stdout] Expected 'declare -a b=([0]="3" [1]="4" [2]="5")\nget 5\nset zzz\ndeclare -a b=([0]="3" [1]="4" [2]="zzz")\n' Got 'declare -a b=(3 4 5)\n'
[osh status] Expected 0, got 1

stdout:
declare -a b=(3 4 5)
stderr:
  a[$(echo 2)]
    ^~
[ stdin ]:1: fatal: Command subs not allowed here because eval_unsafe_arith is off
osh-cpp4 LHS array is protected with shopt -s eval_unsafe_arith, e.g. 'a[$(echo 2)]'

[osh-cpp stdout] Expected 'declare -a b=([0]="3" [1]="4" [2]="5")\nget 5\nset zzz\ndeclare -a b=([0]="3" [1]="4" [2]="zzz")\n' Got 'declare -a b=(3 4 5)\n'
[osh-cpp status] Expected 0, got 1

stdout:
declare -a b=(3 4 5)
stderr:
  a[$(echo 2)]
    ^~
[ stdin ]:1: fatal: Command subs not allowed here because eval_unsafe_arith is off
osh5 file named a[ is not executed

[osh stdout] Expected 'len=2\n', got 'hi from a[5: 2 args: + 1]=\nhi from a[5: 2 args: / 1]=y\nlen=0\nhi from a[5: 0 args:\n'
[osh status] Expected 1, got 0

stdout:
hi from a[5: 2 args: + 1]=
hi from a[5: 2 args: / 1]=y
len=0
hi from a[5: 0 args:
stderr:
osh-cpp5 file named a[ is not executed

[osh-cpp stdout] Expected 'len=2\n', got 'hi from a[5: 2 args: + 1]=\nhi from a[5: 2 args: / 1]=y\nlen=0\nhi from a[5: 0 args:\n'
[osh-cpp status] Expected 1, got 0

stdout:
hi from a[5: 2 args: + 1]=
hi from a[5: 2 args: / 1]=y
len=0
hi from a[5: 0 args:
stderr:
osh6 More fragments like a[ a[5 a[5 + a[5 + 3]

[osh stdout] Expected 'a[ status=127\na[5 status=127\na[5 + status=127\na[5 + 3] status=127\na[5 + 3]= status=0\na[5 + 3]+ status=127\na[5 + 3]+= status=0\n' Got 'a[ status=127\na[5 status=127\na[5 + status=127\na[5 + 3] status=127\na[5 + 3]= status=127\na[5 + 3]+ status=127\na[5 + 3]+= status=127\n'

stdout:
a[ status=127
a[5 status=127
a[5 + status=127
a[5 + 3] status=127
a[5 + 3]= status=127
a[5 + 3]+ status=127
a[5 + 3]+= status=127
stderr:
  a[
  ^~
[ -c flag ]:1: Command 'a[' not found (OILS-ERR-100)
  a[5
  ^~
[ -c flag ]:1: Command 'a[5' not found (OILS-ERR-100)
  a[5 +
  ^~
[ -c flag ]:1: Command 'a[5' not found (OILS-ERR-100)
  a[5 + 3]
  ^~
[ -c flag ]:1: Command 'a[5' not found (OILS-ERR-100)
  a[5 + 3]=
  ^~
[ -c flag ]:1: Command 'a[5' not found (OILS-ERR-100)
  a[5 + 3]+
  ^~
[ -c flag ]:1: Command 'a[5' not found (OILS-ERR-100)
  a[5 + 3]+=
  ^~
[ -c flag ]:1: Command 'a[5' not found (OILS-ERR-100)
osh-cpp6 More fragments like a[ a[5 a[5 + a[5 + 3]

[osh-cpp stdout] Expected 'a[ status=127\na[5 status=127\na[5 + status=127\na[5 + 3] status=127\na[5 + 3]= status=0\na[5 + 3]+ status=127\na[5 + 3]+= status=0\n' Got 'a[ status=127\na[5 status=127\na[5 + status=127\na[5 + 3] status=127\na[5 + 3]= status=127\na[5 + 3]+ status=127\na[5 + 3]+= status=127\n'

stdout:
a[ status=127
a[5 status=127
a[5 + status=127
a[5 + 3] status=127
a[5 + 3]= status=127
a[5 + 3]+ status=127
a[5 + 3]+= status=127
stderr:
  a[
  ^~
[ -c flag ]:1: Command 'a[' not found (OILS-ERR-100)
  a[5
  ^~
[ -c flag ]:1: Command 'a[5' not found (OILS-ERR-100)
  a[5 +
  ^~
[ -c flag ]:1: Command 'a[5' not found (OILS-ERR-100)
  a[5 + 3]
  ^~
[ -c flag ]:1: Command 'a[5' not found (OILS-ERR-100)
  a[5 + 3]=
  ^~
[ -c flag ]:1: Command 'a[5' not found (OILS-ERR-100)
  a[5 + 3]+
  ^~
[ -c flag ]:1: Command 'a[5' not found (OILS-ERR-100)
  a[5 + 3]+=
  ^~
[ -c flag ]:1: Command 'a[5' not found (OILS-ERR-100)
osh7 Are quotes allowed?

[osh stdout] Expected '', got 'status=0 len=1\nstatus=0 len=2\nstatus=127 len=2\nstatus=127 len=2\n'
[osh status] Expected 1, got 0

stdout:
status=0 len=1
status=0 len=2
status=127 len=2
status=127 len=2
stderr:
  a[2 + "3"]=5
  ^~
[ stdin ]:7: Command 'a[2' not found (OILS-ERR-100)
  a[3 + '4']=5
  ^~
[ stdin ]:10: Command 'a[3' not found (OILS-ERR-100)
osh-cpp7 Are quotes allowed?

[osh-cpp stdout] Expected '', got 'status=0 len=1\nstatus=0 len=2\nstatus=127 len=2\nstatus=127 len=2\n'
[osh-cpp status] Expected 1, got 0

stdout:
status=0 len=1
status=0 len=2
status=127 len=2
status=127 len=2
stderr:
  a[2 + "3"]=5
  ^~
[ stdin ]:7: Command 'a[2' not found (OILS-ERR-100)
  a[3 + '4']=5
  ^~
[ stdin ]:10: Command 'a[3' not found (OILS-ERR-100)
osh8 Tricky parsing - a[ a[0]=1 ]=X a[ a[0]+=1 ]+=X

[osh stdout] Expected 'assign=42\ndeclare -a a=([0]="1" [1]="X")\ndeclare -a a=([0]="1" [1]="X" [2]="3" [3]="Y")\n---\ndeclare -a a=([0]="2" [1]="X" [2]="3X" [3]="Y")\n' Got 'assign=42\n'
[osh status] Expected 0, got 2

stdout:
assign=42
stderr:
  a[a[0]=1]=X
       ^
[ array LHS in [ stdin ] ]:6: Parser expected Id.Arith_RBracket, got Id.Eof_Real
osh-cpp8 Tricky parsing - a[ a[0]=1 ]=X a[ a[0]+=1 ]+=X

[osh-cpp stdout] Expected 'assign=42\ndeclare -a a=([0]="1" [1]="X")\ndeclare -a a=([0]="1" [1]="X" [2]="3" [3]="Y")\n---\ndeclare -a a=([0]="2" [1]="X" [2]="3X" [3]="Y")\n' Got 'assign=42\n'
[osh-cpp status] Expected 0, got 2

stdout:
assign=42
stderr:
  a[a[0]=1]=X
       ^
[ array LHS in [ stdin ] ]:6: Parser expected Id.Arith_RBracket, got Id.Eof_Real
osh9 argv.py a[1 + 2]=

[osh stdout] Expected "['a[1', '+', '2]=']\nstatus=0\n['a[1', '+', '2]+=']\nstatus=0\n['a[3', '+', '4]=']\n['a[3', '+', '4]+=']\n" Got "status=127\nstatus=127\n['a[3', '+', '4]=']\n['a[3', '+', '4]+=']\n"

stdout:
status=127
status=127
['a[3', '+', '4]=']
['a[3', '+', '4]+=']
stderr:
  a[1 + 2]= argv.py a[1 + 2]=
  ^~
[ stdin ]:4: Command 'a[1' not found (OILS-ERR-100)
  a[1 + 2]+= argv.py a[1 + 2]+=
  ^~
[ stdin ]:7: Command 'a[1' not found (OILS-ERR-100)
osh-cpp9 argv.py a[1 + 2]=

[osh-cpp stdout] Expected "['a[1', '+', '2]=']\nstatus=0\n['a[1', '+', '2]+=']\nstatus=0\n['a[3', '+', '4]=']\n['a[3', '+', '4]+=']\n" Got "status=127\nstatus=127\n['a[3', '+', '4]=']\n['a[3', '+', '4]+=']\n"

stdout:
status=127
status=127
['a[3', '+', '4]=']
['a[3', '+', '4]+=']
stderr:
  a[1 + 2]= argv.py a[1 + 2]=
  ^~
[ stdin ]:4: Command 'a[1' not found (OILS-ERR-100)
  a[1 + 2]+= argv.py a[1 + 2]+=
  ^~
[ stdin ]:7: Command 'a[1' not found (OILS-ERR-100)
osh10 declare builtin doesn't allow spaces

stdout:
stderr: 
  declare a[a[0]=1]=X
          ^~
[ stdin ]:3: fatal: Assignment builtin expected NAME=value, got 'a[a[0]=1]=X'
osh-cpp10 declare builtin doesn't allow spaces

stdout:
stderr: 
  declare a[a[0]=1]=X
          ^~
[ stdin ]:3: fatal: Assignment builtin expected NAME=value, got 'a[a[0]=1]=X'