Results for nameref.test.sh

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

Details on runs that didn't PASS

mksh2 pass assoc array by reference

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

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

stdout:
ref=x
!ref=ref
NOW A NAMEREF
ref=foo
!ref=x
stderr:
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_ALT6 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:
mksh7 named ref with $# doesn't work

stdout:
ref=#
ref=3
stderr:
bash8 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
mksh8 named ref with $# and shopt -s strict_nameref

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

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

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

stdout:
stderr: 
mksh11 assign to invalid ref with strict_nameref

stdout:
stderr: 
mksh12 name ref on Undef cell

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

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

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

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

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

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

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

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

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

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

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

[osh_ALT 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_ALT25 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:
mksh26 Unquoted assoc reference on RHS

stdout:
stderr: 
mksh: <stdin>[1]: typeset: -A: unknown option
mksh: <stdin>[2]: 'foo': multi-character character constant
osh26 Unquoted assoc reference on RHS

[osh stdout] Expected "['bar']\n", got "['bashup_ev_r[foo]']\n"

stdout:
['bashup_ev_r[foo]']
stderr:
osh_ALT26 Unquoted assoc reference on RHS

[osh_ALT stdout] Expected "['bar']\n", got "['bashup_ev_r[foo]']\n"

stdout:
['bashup_ev_r[foo]']
stderr: