Results for var-ref.test.sh

statusbashoshosh_ALT
pass 131111
ok 211
N-I 011
BUG 100
FAIL 033
total161616
casebashoshosh_ALTdescription
0pass pass pass var ref ${!a}
1pass pass pass ${!ref-default}
2pass pass pass ${!undef:-}
3pass pass pass comparison to ${!array[@]} keys (similar SYNTAX)
4BUG pass pass ${!a[@]-'default'} is illegal
details
5pass pass pass ref to $@ with @
6pass pass pass ref to $1 and $2 with 1 and 2
7pass FAIL FAIL var ref with 1 and @ and *
detailsdetails
8pass pass pass var ref to special var BASH_SOURCE
9pass N-I N-I var ref to $? with '?' (not in Oil)
detailsdetails
10pass FAIL FAIL indirection, *then* fancy expansion features
detailsdetails
11pass FAIL FAIL indirection *to* an array reference
detailsdetails
12ok pass pass indirection to nasty complex array references
details
13ok pass pass indirection *to* fancy expansion features bash disallows
details
14pass ok ok Bad var ref with ${!a}
detailsdetails
15pass pass pass ${!OPTIND} (used by bash completion
35 passed, 4 OK, 2 not implemented, 1 BUG, 3 failed, 0 timeouts, 0 cases skipped
3 failed under osh

Details on runs that didn't PASS

bash4 ${!a[@]-'default'} is illegal

stdout:
['default']
status=0
status=1
stderr:
bash: line 4: x y z: bad substitution
osh7 var ref with 1 and @ and *

[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_ALT7 var ref with 1 and @ and *

[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:
osh9 var ref to $? with '?' (not in Oil)

stdout:
myfunc
stderr:
    echo ${!ref}
            ^~~
[ stdin ]:3: fatal: Bad indirect expansion: '?'
osh_ALT9 var ref to $? with '?' (not in Oil)

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

[osh stdout] Expected 'ok\n', got "${!b[1]} -> expected asdf, got asdf x\n$zz -> expected foo, got \nbar vs foo\n$zz -> expected foo, got \nbad err msg: ${!w:?oops} -> ${!w:?oops}\n ^\n[ eval at line 10 of (source.Stdin comment:'') ]:10: fatal: unset variable 'oops'\n${!x^a} -> expected Aaabcc, got \nok\n"

stdout:
${!b[1]} -> expected asdf, got asdf x
$zz -> expected foo, got 
bar vs foo
$zz -> expected foo, got 
bad err msg: ${!w:?oops} ->   ${!w:?oops}
     ^
[ eval at line 10 of (source.Stdin comment:'') ]:10: fatal: unset variable 'oops'
${!x^a} -> expected Aaabcc, got 
ok
stderr:
  echo "${!x^a}"
            ^
[ eval at line 5 of (source.Stdin comment:'') ]:5: fatal: Id.VOp1_Caret can't have an argument
osh_ALT10 indirection, *then* fancy expansion features

[osh_ALT stdout] Expected 'ok\n', got "${!b[1]} -> expected asdf, got asdf x\n$zz -> expected foo, got \nbar vs foo\n$zz -> expected foo, got \nbad err msg: ${!w:?oops} -> ${!w:?oops}\n ^\n[ eval at line 10 of (source.Stdin comment:'') ]:10: fatal: unset variable 'oops'\n${!x^a} -> expected Aaabcc, got \nok\n"

stdout:
${!b[1]} -> expected asdf, got asdf x
$zz -> expected foo, got 
bar vs foo
$zz -> expected foo, got 
bad err msg: ${!w:?oops} ->   ${!w:?oops}
     ^
[ eval at line 10 of (source.Stdin comment:'') ]:10: fatal: unset variable 'oops'
${!x^a} -> expected Aaabcc, got 
ok
stderr:
  echo "${!x^a}"
            ^
[ eval at line 5 of (source.Stdin comment:'') ]:5: fatal: Id.VOp1_Caret can't have an argument
osh11 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_ALT11 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:
bash12 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
bash13 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
osh14 Bad var ref with ${!a}

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

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