Results for array-assign.test.sh

statusbashzshmkshashosh
pass 92701
ok 00211
N-I 082100
BUG-2 01000
BUG 20000
FAIL 00009
total1111111111
casebashzshmkshashoshdescription
0pass pass pass N-I pass Indexed LHS without spaces, and +=
details
1pass N-I pass N-I FAIL Indexed LHS with spaces
detailsdetailsdetails
2pass N-I pass N-I FAIL Nested a[i[0]]=0
detailsdetailsdetails
3pass N-I ok N-I FAIL Multiple LHS array words
detailsdetailsdetailsdetails
4pass N-I ok N-I FAIL LHS array is protected with shopt -s eval_unsafe_arith, e.g. 'a[$(echo 2)]'
detailsdetailsdetailsdetails
5pass N-I pass N-I FAIL file named a[ is not executed
detailsdetailsdetails
6BUG BUG-2 pass N-I FAIL More fragments like a[ a[5 a[5 + a[5 + 3]
detailsdetailsdetailsdetails
7BUG pass pass ok FAIL Are quotes allowed?
detailsdetailsdetails
8pass N-I N-I N-I FAIL Tricky parsing - a[ a[0]=1 ]=X a[ a[0]+=1 ]+=X
detailsdetailsdetailsdetails
9pass N-I pass N-I FAIL argv.py a[1 + 2]=
detailsdetailsdetails
10pass N-I N-I N-I ok declare builtin doesn't allow spaces
detailsdetailsdetailsdetails
19 passed, 4 OK, 20 not implemented, 3 BUG, 9 failed, 0 timeouts, 0 cases skipped
9 failed under osh

Details on runs that didn't PASS

ash0 Indexed LHS without spaces, and +=

stdout:
status=127
stderr:
ash: a[1]=x: not found
ash: syntax error: bad substitution
zsh1 Indexed LHS with spaces

stdout:
stderr: 
ash1 Indexed LHS with spaces

stdout:
stderr: 
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)
zsh2 Nested a[i[0]]=0

stdout:
stderr: 
ash2 Nested a[i[0]]=0

stdout:
stderr: 
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)
zsh3 Multiple LHS array words

stdout:
stderr: 
mksh3 Multiple LHS array words

stdout:
set -A a
typeset a[0]=0
typeset a[1]=
typeset a[2]=2
set -A b
typeset b[0]=3
typeset b[1]=4
typeset b[2]=/home/spec-test/src
---
['b[2', '+', '0]=bar']
status=0
set -A a
typeset a[0]=0
typeset a[1]=
typeset a[2]=2
set -A b
typeset b[0]=3
typeset b[1]=4
typeset b[2]=/home/spec-test/src
stderr:
ash3 Multiple LHS array words

stdout:
stderr: 
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)
zsh4 LHS array is protected with shopt -s eval_unsafe_arith, e.g. 'a[$(echo 2)]'

stdout:
stderr: 
mksh4 LHS array is protected with shopt -s eval_unsafe_arith, e.g. 'a[$(echo 2)]'

stdout:
set -A b
typeset b[0]=3
typeset b[1]=4
typeset b[2]=5
get 5
set zzz
set -A b
typeset b[0]=3
typeset b[1]=4
typeset b[2]=zzz
stderr:
ash4 LHS array is protected with shopt -s eval_unsafe_arith, e.g. 'a[$(echo 2)]'

stdout:
stderr: 
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
zsh5 file named a[ is not executed

stdout:
stderr: 
ash5 file named a[ is not executed

stdout:
stderr: 
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:
bash6 More fragments like a[ a[5 a[5 + a[5 + 3]

stdout:
a[ status=2
a[5 status=2
a[5 + status=2
a[5 + 3] status=127
a[5 + 3]= status=0
a[5 + 3]+ status=127
a[5 + 3]+= status=0
stderr:
bash: -c: line 1: unexpected EOF while looking for matching `]'
bash: -c: line 1: unexpected EOF while looking for matching `]'
bash: -c: line 1: unexpected EOF while looking for matching `]'
bash: line 1: a[5 + 3]: command not found
bash: line 1: a[5 + 3]+: command not found
zsh6 More fragments like a[ a[5 a[5 + a[5 + 3]

stdout:
a[ status=1
a[5 status=1
a[5 + status=1
a[5 + 3] status=1
a[5 + 3]= status=1
a[5 + 3]+ status=1
a[5 + 3]+= status=1
stderr:
zsh:1: bad pattern: a[
zsh:1: bad pattern: a[5
zsh:1: bad pattern: a[5
zsh:1: bad pattern: a[5
zsh:1: bad pattern: a[5
zsh:1: bad pattern: a[5
zsh:1: bad pattern: a[5
ash6 More fragments like a[ a[5 a[5 + a[5 + 3]

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:
ash: a[: not found
ash: a[5: not found
ash: a[5: not found
ash: a[5: not found
ash: a[5: not found
ash: a[5: not found
ash: a[5: not found
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)
bash7 Are quotes allowed?

stdout:
status=0 len=1
status=1 len=1
status=0 len=2
status=1 len=2
stderr:
bash: line 4: '2': syntax error: operand expected (error token is "'2'")
bash: line 10: 3 + '4': syntax error: operand expected (error token is "'4'")
ash7 Are quotes allowed?

stdout:
stderr: 
ash: a[1]=2: not found
ash: syntax error: bad substitution
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)
zsh8 Tricky parsing - a[ a[0]=1 ]=X a[ a[0]+=1 ]+=X

stdout:
stderr: 
mksh8 Tricky parsing - a[ a[0]=1 ]=X a[ a[0]+=1 ]+=X

stdout:
stderr: 
ash8 Tricky parsing - a[ a[0]=1 ]=X a[ a[0]+=1 ]+=X

stdout:
stderr: 
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
zsh9 argv.py a[1 + 2]=

stdout:
stderr: 
ash9 argv.py a[1 + 2]=

stdout:
stderr: 
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)
zsh10 declare builtin doesn't allow spaces

stdout:
stderr: 
mksh10 declare builtin doesn't allow spaces

stdout:
stderr: 
ash10 declare builtin doesn't allow spaces

stdout:
stderr: 
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'