Results for assign-extended.test.sh

statusbashmkshoshosh_ALT
pass 1672929
ok 9511
N-I 31811
BUG 3100
total31313131
casebashmkshoshosh_ALTdescription
0pass N-I pass pass local -a
details
1pass N-I pass pass declare -a
details
2pass pass N-I N-I indexed LHS with spaces (not allowed in OSH)
detailsdetails
3pass N-I pass pass declare -f exit code indicates function existence
details
4pass N-I pass pass declare -F prints function names
details
5pass N-I pass pass declare -p var (exit status)
details
6ok N-I pass pass declare
detailsdetails
7BUG N-I pass pass declare -p
detailsdetails
8BUG N-I pass pass declare -p var
detailsdetails
9ok N-I pass pass declare -p arr
detailsdetails
10ok N-I pass pass declare -pnrx
detailsdetails
11ok N-I pass pass declare -paA
detailsdetails
12N-I N-I pass pass declare -pnrx var
detailsdetails
13N-I N-I pass pass declare -pg
detailsdetails
14N-I N-I pass pass declare -pg var
detailsdetails
15pass N-I pass pass ble.sh: eval -- "$(declare -p var arr)"
details
16pass N-I pass pass eval -- "$(declare -p arr)" (restore arrays w/ unset elements)
details
17pass pass pass pass typeset -f
18pass BUG pass pass typeset -p
details
19ok ok pass pass typeset -r makes a string readonly
detailsdetails
20ok N-I pass pass typeset -ar makes it readonly
detailsdetails
21pass pass pass pass typeset -x makes it exported
22pass pass pass pass Multiple assignments / array assignments on a line
23ok ok pass pass Env bindings shouldn't contain array assignments
detailsdetails
24BUG ok pass pass syntax error in array assignment
detailsdetails
25pass N-I pass pass declare -g (bash-specific; bash-completion uses it)
details
26pass pass ok ok myvar=typeset (another form of dynamic assignment)
detailsdetails
27ok ok pass pass dynamic array parsing is not allowed
detailsdetails
28pass pass pass pass dynamic flag in array in assign builtin
29pass pass pass pass typeset +x
30ok ok pass pass typeset +r removes read-only attribute (TODO: documented in bash to do nothing)
detailsdetails
81 passed, 16 OK, 23 not implemented, 4 BUG, 0 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

mksh0 local -a

stdout:
stderr: 
mksh: <stdin>[2]: syntax error: '(' unexpected
mksh1 declare -a

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: '(' unexpected
osh2 indexed LHS with spaces (not allowed in OSH)

stdout:
status=127
[]
stderr:
  a[1 * 1]=x a[ 1 + 2 ]=z
  ^~
[ stdin ]:1: 'a[1' not found
osh_ALT2 indexed LHS with spaces (not allowed in OSH)

stdout:
status=127
[]
stderr:
  a[1 * 1]=x a[ 1 + 2 ]=z
  ^~
[ stdin ]:1: 'a[1' not found
mksh3 declare -f exit code indicates function existence

stdout:
127
127
127
stderr:
mksh: <stdin>[2]: declare: not found
mksh: <stdin>[5]: declare: not found
mksh: <stdin>[8]: declare: not found
mksh4 declare -F prints function names

stdout:
stderr: 
mksh: <stdin>[6]: declare: not found
mksh5 declare -p var (exit status)

stdout:
127
127
127
stderr:
mksh: <stdin>[2]: declare: not found
mksh: <stdin>[5]: declare: not found
mksh: <stdin>[8]: declare: not found
bash6 declare

stdout:
[declare]
test_var1=111
test_var2=222
test_var3=333
test_var4=test_var1
test_var5=555
[readonly]
declare -r test_var2="222"
[export]
declare -x test_var3="333"
[local]
test_var5=555
stderr:
mksh6 declare

stdout:
[declare]
[readonly]
test_var2
[export]
test_var3
[local]
typeset test_var1
typeset -r test_var2
typeset -x test_var3
typeset test_var5
stderr:
mksh: <stdin>[4]: declare: not found
mksh: <stdin>[18]: declare: not found
bash7 declare -p

stdout:
[declare]
declare -- test_var1="111"
declare -r test_var2="222"
declare -x test_var3="333"
declare -n test_var4="test_var1"
declare -- test_var5="555"
[readonly]
declare -r test_var2="222"
[export]
declare -x test_var3="333"
[local]
test_var5=555
stderr:
mksh7 declare -p

stdout:
[declare]
[readonly]
readonly test_var2=222
[export]
export test_var3=333
[local]
typeset test_var1=111
typeset -r test_var2=222
typeset -x test_var3=333
typeset test_var5=555
stderr:
mksh: <stdin>[4]: declare: not found
mksh: <stdin>[18]: declare: not found
bash8 declare -p var

stdout:
[declare]
declare -- test_var1="111"
declare -r test_var2="222"
declare -x test_var3="333"
declare -n test_var4="test_var1"
declare -- test_var5="555"
[readonly]
[export]
[local]
stderr:
main: line 9: declare: test_var0: not found
main: line 15: local: test_var0: readonly variable
main: line 15: local: test_var1: readonly variable
main: line 15: local: test_var2: readonly variable
main: line 15: local: test_var3: readonly variable
mksh8 declare -p var

stdout:
[declare]
[readonly]
stderr:
mksh: <stdin>[4]: declare: not found
mksh: <stdin>[18]: declare: not found
mksh: <stdin>[18]: readonly: test_var{0..5}: is not an identifier
bash9 declare -p arr

stdout:
declare -a test_arr1=()
declare -a test_arr2=()
declare -A test_arr3=()
declare -a test_arr4=([0]="1" [1]="2" [2]="3")
declare -a test_arr5=([0]="1" [1]="2" [2]="3")
declare -A test_arr6=([a]="1" [b]="2" [c]="3" )
declare -a test_arr7=([3]="foo")
stderr:
mksh9 declare -p arr

stdout:
stderr: 
mksh: <stdin>[2]: syntax error: '(' unexpected
bash10 declare -pnrx

stdout:
[declare -pn]
declare -n test_var4="test_var1"
[declare -pr]
declare -r test_var2="222"
[declare -px]
declare -x test_var3="333"
stderr:
mksh10 declare -pnrx

stdout:
[declare -pn]
[declare -pr]
[declare -px]
stderr:
mksh: <stdin>[4]: declare: not found
mksh: <stdin>[16]: declare: not found
mksh: <stdin>[16]: declare: not found
mksh: <stdin>[16]: declare: not found
bash11 declare -paA

stdout:
[declare -pa]
declare -a test_var6=()
[declare -pA]
declare -A test_var7=()
stderr:
mksh11 declare -paA

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: '(' unexpected
bash12 declare -pnrx var

stdout:
[declare -pn]
declare -- test_var1="111"
declare -r test_var2="222"
declare -x test_var3="333"
declare -n test_var4="test_var1"
declare -- test_var5="555"
[declare -pr]
declare -- test_var1="111"
declare -r test_var2="222"
declare -x test_var3="333"
declare -n test_var4="test_var1"
declare -- test_var5="555"
[declare -px]
declare -- test_var1="111"
declare -r test_var2="222"
declare -x test_var3="333"
declare -n test_var4="test_var1"
declare -- test_var5="555"
stderr:
main: line 9: declare: test_var0: not found
main: line 11: declare: test_var0: not found
main: line 13: declare: test_var0: not found
mksh12 declare -pnrx var

stdout:
[declare -pn]
[declare -pr]
[declare -px]
stderr:
mksh: <stdin>[4]: declare: not found
mksh: <stdin>[16]: declare: not found
mksh: <stdin>[16]: declare: not found
mksh: <stdin>[16]: declare: not found
bash13 declare -pg

stdout:
declare -- test_var1="local"
stderr:
mksh13 declare -pg

stdout:
stderr: 
mksh: <stdin>[8]: declare: not found
bash14 declare -pg var

stdout:
declare -- test_var1="local"
stderr:
mksh14 declare -pg var

stdout:
stderr: 
mksh: <stdin>[8]: declare: not found
mksh15 ble.sh: eval -- "$(declare -p var arr)"

stdout:
stderr: 
mksh: <stdin>[3]: syntax error: '(' unexpected
mksh16 eval -- "$(declare -p arr)" (restore arrays w/ unset elements)

stdout:
stderr: 
mksh: <stdin>[2]: declare: not found
mksh: <stdin>[5]: {0..4}: unexpected '{'
mksh18 typeset -p

stdout:
0
0
0
stderr:
bash19 typeset -r makes a string readonly

stdout:
status=1
status=1
status=1
status=1
status=1
status=1
stderr:
bash: line 3: s1: readonly variable
bash: line 5: s2: readonly variable
bash: line 7: s1: readonly variable
bash: line 9: s2: readonly variable
bash: line 11: unset: s1: cannot unset: readonly variable
bash: line 13: unset: s2: cannot unset: readonly variable
mksh19 typeset -r makes a string readonly

stdout:
stderr: 
mksh: <stdin>[3]: read-only: s1
bash20 typeset -ar makes it readonly

stdout:
status=1
status=1
status=1
status=1
status=1
status=1
stderr:
bash: line 3: array1: readonly variable
bash: line 5: array2: readonly variable
bash: line 7: array1: readonly variable
bash: line 9: array2: readonly variable
bash: line 11: unset: array1: cannot unset: readonly variable
bash: line 13: unset: array2: cannot unset: readonly variable
mksh20 typeset -ar makes it readonly

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: '(' unexpected
bash23 Env bindings shouldn't contain array assignments

stdout:
1
None
3
stderr:
mksh23 Env bindings shouldn't contain array assignments

stdout:
1
2
3
stderr:
bash24 syntax error in array assignment

stdout:
x
stderr:
bash: line 1: 0+: syntax error: operand expected (error token is "+")
mksh24 syntax error in array assignment

stdout:
stderr: 
mksh: <stdin>[1]: 0+: unexpected 'end of expression'
mksh25 declare -g (bash-specific; bash-completion uses it)

stdout:
['', '']
stderr:
mksh: <stdin>[11]: declare: not found
mksh: <stdin>[11]: declare: not found
mksh: <stdin>[11]: declare: not found
mksh: <stdin>[11]: "foo": unexpected '"'
mksh: <stdin>[13]: "foo": unexpected '"'
osh26 myvar=typeset (another form of dynamic assignment)

stdout:
a b
stderr:
osh_ALT26 myvar=typeset (another form of dynamic assignment)

stdout:
a b
stderr:
bash27 dynamic array parsing is not allowed

stdout:
status=0
['1']
stderr:
mksh27 dynamic array parsing is not allowed

stdout:
status=0
['(1 2 3)']
stderr:
bash30 typeset +r removes read-only attribute (TODO: documented in bash to do nothing)

stdout:
r=r1
r=r1
r=r1
stderr:
bash: line 3: typeset: r: readonly variable
bash: line 5: r: readonly variable
mksh30 typeset +r removes read-only attribute (TODO: documented in bash to do nothing)

stdout:
r=r1
stderr:
mksh: <stdin>[3]: read-only: r