Results for nameref.test.sh

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

Details on runs that didn't PASS

mksh1 pass assoc array by reference

stdout:
[monday]=eggs
stderr:
mksh2 pass local array by reference, relying on DYNAMIC SCOPING

stdout:
stderr: 
mksh: <stdin>[7]: syntax error: '(' unexpected
mksh5 flag -n combined ${!ref} -- bash INVERTS

stdout:
ref=x
!ref=ref
NOW A NAMEREF
ref=foo
!ref=x
stderr:
osh5 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_ALT5 flag -n combined ${!ref} -- bash INVERTS

[osh_ALT 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:
mksh6 named ref with $# doesn't work

stdout:
ref=#
ref=3
stderr:
bash7 named ref with $# and shopt -s strict_nameref

stdout:
ref=#
ref=#
stderr:
bash: line 1: shopt: strict_nameref: invalid shell option name
bash: line 4: typeset: `#': invalid variable name for name reference
mksh7 named ref with $# and shopt -s strict_nameref

stdout:
ref=#
ref=0
stderr:
mksh: <stdin>[1]: shopt: not found
mksh8 named ref with 1 $1 etc.

stdout:
ref=1
ref=one
ref2=$1
stderr:
mksh: <stdin>[9]: ref2: empty nameref target
mksh9 assign to invalid ref

stdout:
ref=1
ref=
stderr:
mksh: <stdin>[5]: read-only: ref
bash10 assign to invalid ref with strict_nameref

stdout:
stderr: 
mksh10 assign to invalid ref with strict_nameref

stdout:
stderr: 
mksh11 name ref on Undef cell

stdout:
stderr: 
mksh: <stdin>[1]: ref: empty nameref target
mksh12 assign to empty nameref and invalid nameref

stdout:
stderr: 
mksh: <stdin>[1]: ref: empty nameref target
mksh13 -n attribute before it has a value

stdout:
stderr: 
mksh: <stdin>[1]: ref: empty nameref target
bash14 -n attribute on array is hard error, not a warning

stdout:
hi
ref=x
stderr:
bash: line 4: warning: ref: removing nameref attribute
mksh14 -n attribute on array is hard error, not a warning

stdout:
stderr: 
mksh: <stdin>[2]: ref: empty nameref target
mksh15 exported nameref

stdout:
None
None
---
foo
None
stderr:
bash17 readonly var can't be assigned through nameref

stdout:
ref=X
ref=XX
ref=XX
x=XX
stderr:
bash: line 7: x: readonly variable
mksh17 readonly var can't be assigned through nameref

stdout:
ref=X
ref=XX
stderr:
mksh: <stdin>[7]: read-only: ref
bash20 Mutually recursive namerefs

stdout:
defined
ref1=
ref2=
stderr:
bash: line 4: warning: ref1: circular name reference
bash: line 5: warning: ref1: circular name reference
osh23 a[2] in nameref

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

stdout:
ref=a[2]
stderr:
osh_ALT23 a[2] in nameref

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

stdout:
ref=a[2]
stderr:
osh24 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_ALT24 a[expr] in nameref -- DYNAMIC PARSING, don't want this

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

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