Results for nameref.test.sh

statusoshosh_.pyosh_.cc
pass 232222
FAIL 344
total262626
caseoshosh_.pyosh_.ccdescription
0pass pass pass pass array by reference
1pass pass pass mutate array by reference
2pass pass pass pass assoc array by reference
3pass pass pass pass local array by reference, relying on DYNAMIC SCOPING
4pass pass pass flag -n and +n
5pass pass pass mutating through -n
6FAIL FAIL FAIL flag -n combined ${!ref} -- bash INVERTS
detailsdetailsdetails
7pass pass pass named ref with $# doesn't work
8pass pass pass named ref with $# and shopt -s strict_nameref
9pass pass pass named ref with 1 $1 etc.
10pass pass pass assign to invalid ref
11pass pass pass assign to invalid ref with strict_nameref
12pass pass pass name ref on Undef cell
13pass pass pass assign to empty nameref and invalid nameref
14pass pass pass -n attribute before it has a value
15pass pass pass -n attribute on array is hard error, not a warning
16pass FAIL FAIL exported nameref
detailsdetails
17pass pass pass readonly nameref doesn't prevent assigning through it
18pass pass pass readonly var can't be assigned through nameref
19pass pass pass unset nameref
20pass pass pass Chain of namerefs
21pass pass pass Mutually recursive namerefs
22pass pass pass Dynamic scope with namerefs
23pass pass pass change reference itself
24FAIL FAIL FAIL a[2] in nameref
detailsdetailsdetails
25FAIL FAIL FAIL a[expr] in nameref -- DYNAMIC PARSING, don't want this
detailsdetailsdetails
67 passed, 0 OK, 0 not implemented, 0 BUG, 11 failed, 0 timeouts, 0 cases skipped
3 failed under osh

Details on runs that didn't PASS

osh6 flag -n combined ${!ref} -- bash INVERTS

[osh stdout] Expected 'ref=x\n!ref=foo\nNOW A NAMEREF\nref=foo\n!ref=x\n', got 'ref=x\n!ref=foo\nNOW A NAMEREF\nref=foo\n!ref=FOO\n'

stdout:
ref=x
!ref=foo
NOW A NAMEREF
ref=foo
!ref=FOO
stderr:
osh_.py6 flag -n combined ${!ref} -- bash INVERTS

[osh_.py stdout] Expected 'ref=x\n!ref=foo\nNOW A NAMEREF\nref=foo\n!ref=x\n', got 'ref=x\n!ref=foo\nNOW A NAMEREF\nref=foo\n!ref=FOO\n'

stdout:
ref=x
!ref=foo
NOW A NAMEREF
ref=foo
!ref=FOO
stderr:
osh_.cc6 flag -n combined ${!ref} -- bash INVERTS

[osh_.cc stdout] Expected 'ref=x\n!ref=foo\nNOW A NAMEREF\nref=foo\n!ref=x\n', got 'ref=x\n!ref=foo\nNOW A NAMEREF\nref=foo\n!ref=FOO\n'

stdout:
ref=x
!ref=foo
NOW A NAMEREF
ref=foo
!ref=FOO
stderr:
osh_.py16 exported nameref

[osh_.py stdout] Expected 'None\nx\n---\nfoo\nx\n', got '---\n'
[osh_.py status] Expected 0, got 127

stdout:
---
stderr:
  printenv.py x ref
  ^~~~~~~~~~~
[ stdin ]:3: 'printenv.py' not found
  printenv.py x ref
  ^~~~~~~~~~~
[ stdin ]:6: 'printenv.py' not found
osh_.cc16 exported nameref

[osh_.cc stdout] Expected 'None\nx\n---\nfoo\nx\n', got '---\n'
[osh_.cc status] Expected 0, got 127

stdout:
---
stderr:
  printenv.py x ref
  ^~~~~~~~~~~
[ stdin ]:3: 'printenv.py' not found
  printenv.py x ref
  ^~~~~~~~~~~
[ stdin ]:6: 'printenv.py' not found
osh24 a[2] in nameref

[osh stdout] Expected 'ref=two\n', got 'ref=a[2]\n'

stdout:
ref=a[2]
stderr:
osh_.py24 a[2] in nameref

[osh_.py stdout] Expected 'ref=two\n', got 'ref=a[2]\n'

stdout:
ref=a[2]
stderr:
osh_.cc24 a[2] in nameref

[osh_.cc stdout] Expected 'ref=two\n', got 'ref=a[2]\n'

stdout:
ref=a[2]
stderr:
osh25 a[expr] in nameref -- DYNAMIC PARSING, don't want this

[osh stdout] Expected 'ref=three\n', got 'ref=a[$(echo 2) + 1]\n'

stdout:
ref=a[$(echo 2) + 1]
stderr:
osh_.py25 a[expr] in nameref -- DYNAMIC PARSING, don't want this

[osh_.py stdout] Expected 'ref=three\n', got 'ref=a[$(echo 2) + 1]\n'

stdout:
ref=a[$(echo 2) + 1]
stderr:
osh_.cc25 a[expr] in nameref -- DYNAMIC PARSING, don't want this

[osh_.cc stdout] Expected 'ref=three\n', got 'ref=a[$(echo 2) + 1]\n'

stdout:
ref=a[$(echo 2) + 1]
stderr: