Results for var-ref.test.sh

statusbashosh
pass 84
ok 21
N-I 01
FAIL 04
total1010
casebashoshdescription
0pass pass var ref ${!a}
1pass FAIL var ref: positional params
details
2pass N-I var ref to $? with '?'
details
3pass FAIL indirection, *then* fancy expansion features
details
4pass FAIL indirection *to* an array reference
details
5ok pass indirection to nasty complex array references
details
6ok pass indirection *to* fancy expansion features bash disallows
details
7pass FAIL declare -n and ${!a}
details
8pass ok Bad var ref with ${!a}
details
9pass pass ${!OPTIND} (used by bash completion
12 passed, 3 OK, 1 not implemented, 0 BUG, 4 failed, 0 timeouts, 0 cases skipped
4 failed under osh

Details on runs that didn't PASS

osh1 var ref: positional params

[osh stdout] Expected '|x|\n|x|y|\n|x y|\n', got '|x|\n|x|y|\n|x|y|\n'

stdout:
|x|
|x|y|
|x|y|
stderr:
osh2 var ref to $? with '?'

stdout:
myfunc
stderr:
    echo ${!ref}
            ^~~
[ stdin ]:3: fatal: Bad indirect expansion: '?'
osh3 indirection, *then* fancy expansion features

[osh stdout] Expected 'ok\n', got '${!b[1]} -> expected asdf, got asdf x\n${!y:-foo} -> expected foo, got \n vs foo\n$zz -> expected foo, got \n vs foo\n$zz -> expected foo, got \nbad success: ${!w:?oops}\nbad err msg: ${!w:?oops} -> \n${!x:+foo} -> expected foo, got aaabcc\n${!x:2} -> expected abcc, got aaabcc\n${!x:2:2} -> expected ab, got aaabcc\n${!x#*a} -> expected aabcc, got aaabcc\n${!x%%c*} -> expected aaab, got aaabcc\n${!x/a*b/d} -> expected dcc, got aaabcc\n${!x^a} -> expected Aaabcc, got aaabcc\n${!p@P} -> expected $ , got \\$ \nok\n'

stdout:
${!b[1]} -> expected asdf, got asdf x
${!y:-foo} -> expected foo, got 
 vs foo
$zz -> expected foo, got 
 vs foo
$zz -> expected foo, got 
bad success: ${!w:?oops}
bad err msg: ${!w:?oops} -> 
${!x:+foo} -> expected foo, got aaabcc
${!x:2} -> expected abcc, got aaabcc
${!x:2:2} -> expected ab, got aaabcc
${!x#*a} -> expected aabcc, got aaabcc
${!x%%c*} -> expected aaab, got aaabcc
${!x/a*b/d} -> expected dcc, got aaabcc
${!x^a} -> expected Aaabcc, got aaabcc
${!p@P} -> expected $ , got \$ 
ok
stderr:
osh4 indirection *to* an array reference

[osh stdout] Expected '.\n.x\n.x.y\n.x y\n', got '.\n.x\n.x.y\n.x.y\n'

stdout:
.
.x
.x.y
.x.y
stderr:
bash5 indirection to nasty complex array references

stdout:
1 7 8 9 10 11 end
stderr:
main: line 4: {1,0}: syntax error: operand expected (error token is "{1,0}")
main: line 4: <(echo x): syntax error: operand expected (error token is "<(echo x)")
main: line 4: 1 0: syntax error in expression (error token is "0")
main: line 4: b*: syntax error: operand expected (error token is "*")
main: line 4: a[1"]: bad substitution
bash6 indirection *to* fancy expansion features bash disallows

stdout:
done
stderr:
main: line 2: a[0: bad substitution
main: line 2: aa[k: bad substitution
main: line 2: !x: bad substitution
main: line 2: !a[0]: bad substitution
main: line 2: x:-foo: bad substitution
main: line 2: x:=foo: bad substitution
main: line 2: x:?oops: bad substitution
main: line 2: x:+yy: bad substitution
main: line 2: x:0: bad substitution
main: line 2: x:0:1: bad substitution
main: line 2: !a@: bad substitution
main: line 2: #x: bad substitution
main: line 2: x#y: bad substitution
main: line 2: x/y/foo: bad substitution
main: line 2: x@Q: bad substitution
osh7 declare -n and ${!a}

[osh stdout] Expected 'b c\n', got 'c b\n'

stdout:
c b
stderr:
  declare -n a
          ^~
[ stdin ]:1: 'declare' doesn't accept flag -n
osh8 Bad var ref with ${!a}

stdout:
stderr: 
  echo ref ${!a}
              ^
[ stdin ]:2: fatal: Bad indirect expansion: 'bad var name'