Results for assoc.test.sh

statusoshosh_.pyosh_.cc
pass 333320
ok 222
N-I 111
FAIL 2215
total383838
caseoshosh_.pyosh_.ccdescription
0pass pass pass Literal syntax ([x]=y)
1pass pass FAIL set associative array to indexed array literal (very surprising bash behavior)
details
2pass pass pass Can't initialize assoc array with indexed array
3pass pass FAIL Initializing indexed array with assoc array
details
4pass pass FAIL create empty assoc array, put, then get
details
5pass pass FAIL Empty value (doesn't use EmptyWord?)
details
6pass pass FAIL retrieve keys with !
details
7pass pass FAIL retrieve values with ${A[@]}
details
8FAIL FAIL FAIL coerce to string with ${A[*]}, etc.
detailsdetailsdetails
9pass pass FAIL ${A[@]/b/B}
details
10pass pass FAIL ${A[@]#prefix}
details
11ok ok ok ${assoc} disallowed in OSH, like ${assoc[0]} in bash
detailsdetailsdetails
12pass pass pass length ${#a[@]}
13pass pass pass lookup with ${a[0]} -- "0" is a string
14pass pass pass lookup with double quoted strings "mykey"
15pass pass pass lookup with single quoted string
16pass pass pass lookup with unquoted $key and quoted "$i$i"
17pass pass pass lookup by unquoted string doesn't work in OSH because it's a variable
18pass pass pass bash bug: "i+1" and i+1 are the same key
19pass pass FAIL Array stored in associative array gets converted to string (without strict_array)
details
20pass pass FAIL Indexed array as key of associative array coerces to string (without shopt -s strict_array)
details
21pass pass FAIL Append to associative array value A['x']+='suffix'
details
22pass pass pass Slice of associative array doesn't make sense in bash
23N-I N-I N-I bash variable can have an associative array part and a string part
detailsdetailsdetails
24pass pass pass Associative array expressions inside (( )) with keys that look like numbers
25pass pass pass (( A[5] += 42 ))
26pass pass pass (( A[5] += 42 )) with empty cell
27pass pass pass setting key to itself (from bash-bug mailing list)
28ok ok ok readonly associative array can't be modified
detailsdetailsdetails
29pass pass pass associative array and brace expansion
30pass pass pass bash mangles array #1
31pass pass pass bash mangles array and brace #2
32pass pass pass declare -A A=() alowed
33pass pass FAIL unset -v and assoc array
details
34FAIL FAIL FAIL nameref and assoc array
detailsdetailsdetails
35pass pass pass ${!ref} and assoc array
36pass pass pass printf -v and assoc array
37pass pass FAIL bash bug: (( A["$key"] = 1 )) doesn't work
details
86 passed, 6 OK, 3 not implemented, 0 BUG, 19 failed, 0 timeouts, 0 cases skipped
2 failed under osh

Details on runs that didn't PASS

osh_.cc1 set associative array to indexed array literal (very surprising bash behavior)

[osh_.cc stdout] Expected "foo\nspam eggs\nk1\nk2\n['foo', 'spam eggs']\n['0', '1']\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc3 Initializing indexed array with assoc array

[osh_.cc status] Expected 0, got 255

stdout:
status=2
[]
stderr:
  declare -a a=([xx]=1 [yy]=2 [zz]=3)
             ^~
[ stdin ]:1: 'declare' Got -a but RHS isn't an array

dumb_alloc:
	gNumNew = 2112
	gNumDelete = 187
	gMemPos = 72336

	gNumMalloc = 152
	gNumFree = 0
	gMemPos2 = 11040
osh_.cc4 create empty assoc array, put, then get

[osh_.cc stdout] Expected '[]\n[]\nbar\n', got 'bar\n[]\n[]\n'

stdout:
bar
[]
[]
stderr:
dumb_alloc:
	gNumNew = 2187
	gNumDelete = 197
	gMemPos = 74080

	gNumMalloc = 163
	gNumFree = 0
	gMemPos2 = 11184
osh_.cc5 Empty value (doesn't use EmptyWord?)

[osh_.cc status] Expected 0, got 255

stdout:
['']
stderr:
dumb_alloc:
	gNumNew = 1927
	gNumDelete = 157
	gMemPos = 66848

	gNumMalloc = 78
	gNumFree = 0
	gMemPos2 = 9824
osh_.cc6 retrieve keys with !

[osh_.cc stdout] Expected 'a+1\nfoo\nx\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc7 retrieve values with ${A[@]}

[osh_.cc stdout] Expected 'b\nbar\nc\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh8 coerce to string with ${A[*]}, etc.

[osh stdout] Expected "['xx yy']\n['X X Y Y']\n['xx', 'yy']\n['X', 'X', 'Y', 'Y']\n", got "['xx', 'yy']\n['X X Y Y']\n['xx', 'yy']\n['X', 'X', 'Y', 'Y']\n"

stdout:
['xx', 'yy']
['X X Y Y']
['xx', 'yy']
['X', 'X', 'Y', 'Y']
stderr:
osh_.py8 coerce to string with ${A[*]}, etc.

[osh_.py stdout] Expected "['xx yy']\n['X X Y Y']\n['xx', 'yy']\n['X', 'X', 'Y', 'Y']\n", got "['xx', 'yy']\n['X X Y Y']\n['xx', 'yy']\n['X', 'X', 'Y', 'Y']\n"

stdout:
['xx', 'yy']
['X X Y Y']
['xx', 'yy']
['X', 'X', 'Y', 'Y']
stderr:
osh_.cc8 coerce to string with ${A[*]}, etc.

[osh_.cc stdout] Expected "['xx yy']\n['X X Y Y']\n['xx', 'yy']\n['X', 'X', 'Y', 'Y']\n", got "['xx', 'yy']\n['X X Y Y']\n['xx', 'yy']\n['X', 'X', 'Y', 'Y']\n"
[osh_.cc status] Expected 0, got 255

stdout:
['xx', 'yy']
['X X Y Y']
['xx', 'yy']
['X', 'X', 'Y', 'Y']
stderr:
dumb_alloc:
	gNumNew = 2382
	gNumDelete = 249
	gMemPos = 80512

	gNumMalloc = 235
	gNumFree = 0
	gMemPos2 = 12336
osh_.cc9 ${A[@]/b/B}

[osh_.cc stdout] Expected 'BBB\nccc\nddd\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc10 ${A[@]#prefix}

[osh_.cc stdout] Expected 'hree\none\nwo\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh11 ${assoc} disallowed in OSH, like ${assoc[0]} in bash

stdout:
stderr: 
  echo "${a}"
        ^~
[ stdin ]:3: fatal: Array 'a' can't be referred to as a scalar (without @ or *)
osh_.py11 ${assoc} disallowed in OSH, like ${assoc[0]} in bash

stdout:
stderr: 
  echo "${a}"
        ^~
[ stdin ]:3: fatal: Array 'a' can't be referred to as a scalar (without @ or *)
osh_.cc11 ${assoc} disallowed in OSH, like ${assoc[0]} in bash

stdout:
stderr: 
  echo "${a}"
  ^~~~
[ stdin ]:3: fatal: Array 'a' can't be referred to as a scalar (without @ or *)

dumb_alloc:
	gNumNew = 1961
	gNumDelete = 160
	gMemPos = 67840

	gNumMalloc = 84
	gNumFree = 0
	gMemPos2 = 9920
osh_.cc19 Array stored in associative array gets converted to string (without strict_array)

[osh_.cc status] Expected 0, got 255

stdout:
['1 2 3']
stderr:
dumb_alloc:
	gNumNew = 2075
	gNumDelete = 181
	gMemPos = 70800

	gNumMalloc = 113
	gNumFree = 0
	gMemPos2 = 10384
osh_.cc20 Indexed array as key of associative array coerces to string (without shopt -s strict_array)

[osh_.cc stdout] Expected 'foo\n1 2 3\n42\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc21 Append to associative array value A['x']+='suffix'

[osh_.cc status] Expected 0, got 255

stdout:
['foobarbar']
stderr:
dumb_alloc:
	gNumNew = 2122
	gNumDelete = 188
	gMemPos = 72064

	gNumMalloc = 131
	gNumFree = 0
	gMemPos2 = 10672
osh23 bash variable can have an associative array part and a string part

stdout:
stderr: 
  echo ${assoc[1]} ${assoc[2]} ${assoc}
                               ^~
[ stdin ]:4: fatal: Array 'assoc' can't be referred to as a scalar (without @ or *)
osh_.py23 bash variable can have an associative array part and a string part

stdout:
stderr: 
  echo ${assoc[1]} ${assoc[2]} ${assoc}
                               ^~
[ stdin ]:4: fatal: Array 'assoc' can't be referred to as a scalar (without @ or *)
osh_.cc23 bash variable can have an associative array part and a string part

stdout:
stderr: 
  echo ${assoc[1]} ${assoc[2]} ${assoc}
  ^~~~
[ stdin ]:4: fatal: Array 'assoc' can't be referred to as a scalar (without @ or *)

dumb_alloc:
	gNumNew = 2019
	gNumDelete = 164
	gMemPos = 69312

	gNumMalloc = 106
	gNumFree = 0
	gMemPos2 = 10304
osh28 readonly associative array can't be modified

stdout:
stderr: 
  A['x']=1
  ^~
[ stdin ]:2: fatal: Can't assign to readonly associative array
osh_.py28 readonly associative array can't be modified

stdout:
stderr: 
  A['x']=1
  ^~
[ stdin ]:2: fatal: Can't assign to readonly associative array
osh_.cc28 readonly associative array can't be modified

stdout:
stderr: 
  A['x']=1
  ^~
[ stdin ]:2: fatal: Can't assign to readonly associative array

dumb_alloc:
	gNumNew = 1836
	gNumDelete = 139
	gMemPos = 64272

	gNumMalloc = 48
	gNumFree = 0
	gMemPos2 = 9344
osh_.cc33 unset -v and assoc array

[osh_.cc stdout] Expected 'len=1\nlen=0\nlen=1\nlen=0\nlen=1\nlen=0\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh34 nameref and assoc array

[osh stdout] Expected 'values: val\nbefore val\nafter val2\nvalues: val2\n---\nbefore val2\nafter val3\nvalues: val3\n', got 'values: val\nbefore A["K"]\nafter val2\nvalues: val\n---\nbefore A[$key]\nafter val3\nvalues: val\n'

stdout:
values: val
before A["K"]
after val2
values: val
---
before A[$key]
after val3
values: val
stderr:
osh_.py34 nameref and assoc array

[osh_.py stdout] Expected 'values: val\nbefore val\nafter val2\nvalues: val2\n---\nbefore val2\nafter val3\nvalues: val3\n', got 'values: val\nbefore A["K"]\nafter val2\nvalues: val\n---\nbefore A[$key]\nafter val3\nvalues: val\n'

stdout:
values: val
before A["K"]
after val2
values: val
---
before A[$key]
after val3
values: val
stderr:
osh_.cc34 nameref and assoc array

[osh_.cc stdout] Expected 'values: val\nbefore val\nafter val2\nvalues: val2\n---\nbefore val2\nafter val3\nvalues: val3\n', got 'values: val\nbefore A["K"]\nafter val2\nvalues: val\n---\nbefore A[$key]\nafter val3\nvalues: val\n'

stdout:
values: val
before A["K"]
after val2
values: val
---
before A[$key]
after val3
values: val
stderr:
dumb_alloc:
	gNumNew = 3710
	gNumDelete = 447
	gMemPos = 116912

	gNumMalloc = 654
	gNumFree = 0
	gMemPos2 = 19088
osh_.cc37 bash bug: (( A["$key"] = 1 )) doesn't work

[osh_.cc status] Expected 0, got 255

stdout:
['\\']
['42']
stderr:
dumb_alloc:
	gNumNew = 2090
	gNumDelete = 185
	gMemPos = 71824

	gNumMalloc = 123
	gNumFree = 0
	gMemPos2 = 10544