Results for var-ref.test.sh

casebashoshosh_ALTdescription
0pass pass pass var ref ${!a}
1pass FAIL FAIL var ref: positional params
detailsdetails
2pass N-I N-I var ref to $? with '?'
detailsdetails
3pass FAIL FAIL indirection, *then* fancy expansion features
detailsdetails
4pass FAIL FAIL indirection *to* an array reference
detailsdetails
5ok pass pass indirection to nasty complex array references
details
6ok pass pass indirection *to* fancy expansion features bash disallows
details
7pass FAIL FAIL declare -n and ${!a}
detailsdetails
8pass ok ok Bad var ref with ${!a}
detailsdetails
9pass pass pass ${!OPTIND} (used by bash completion

16 passed, 4 ok, 2 known unimplemented, 0 known bugs, 4 failed, 0 skipped

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:
osh_ALT1 var ref: positional params

[osh_ALT 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: '?'
osh_ALT2 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:
osh_ALT3 indirection, *then* fancy expansion features

[osh_ALT 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:
osh_ALT4 indirection *to* an array reference

[osh_ALT 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:
osh_ALT7 declare -n and ${!a}

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

stdout:
c b
stderr:
osh8 Bad var ref with ${!a}

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

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