Results for assign-extended.test.sh

statusbash-4mkshosh
pass 23736
ok 942
N-I 4260
BUG 320
FAIL 001
total393939
casebash-4mkshoshdescription
0pass N-I pass local -a
details
1pass N-I pass declare -a
details
2pass N-I pass declare -f exit code indicates function existence
details
3pass N-I pass declare -F prints function names
details
4pass N-I pass declare -F with shopt -s extdebug prints more info
details
5pass N-I pass declare -F with shopt -s extdebug and main file
details
6pass N-I pass declare -p var (exit status)
details
7ok N-I pass declare
detailsdetails
8BUG N-I pass declare -p
detailsdetails
9N-I N-I pass declare -p doesn't print binary data, but can be loaded into bash
detailsdetails
10BUG N-I pass declare -p var
detailsdetails
11ok N-I pass declare -p arr
detailsdetails
12pass N-I pass declare -p foo=bar doesn't make sense
details
13ok N-I pass declare -pnrx
detailsdetails
14ok N-I pass declare -paA
detailsdetails
15N-I N-I pass declare -pnrx var
detailsdetails
16N-I N-I pass declare -pg
detailsdetails
17N-I N-I pass declare -pg var
detailsdetails
18pass N-I pass ble.sh: eval -- "$(declare -p var arr)"
details
19pass N-I FAIL declare -p and value.Undef
detailsdetails
20pass N-I pass eval -- "$(declare -p arr)" (restore arrays w/ unset elements)
details
21pass N-I ok declare -p UNDEF (and typeset) -- prints something to stderr
detailsdetails
22pass pass pass typeset -f
23pass BUG pass typeset -p
details
24ok ok pass typeset -r makes a string readonly
detailsdetails
25ok N-I pass typeset -ar makes it readonly
detailsdetails
26pass pass pass typeset -x makes it exported
27pass pass pass Multiple assignments / array assignments on a line
28ok BUG pass Env bindings shouldn't contain array assignments
detailsdetails
29BUG ok pass syntax error in array assignment
detailsdetails
30pass N-I pass declare -g (bash-specific; bash-completion uses it)
details
31pass pass ok myvar=typeset (another form of dynamic assignment)
details
32ok ok pass dynamic array parsing is not allowed
detailsdetails
33pass pass pass dynamic flag in array in assign builtin
34pass pass pass typeset +x
35ok ok pass typeset +r removes read-only attribute (TODO: documented in bash to do nothing)
detailsdetails
36pass N-I pass function name with /
details
37pass pass pass invalid var name
38pass N-I pass unset and shell funcs
details
66 passed, 15 OK, 30 not implemented, 5 BUG, 1 failed, 0 timeouts, 0 cases skipped
1 failed under osh

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
mksh2 declare -f exit code indicates function existence

stdout:
127
127
127
stderr:
mksh: <stdin>[2]: declare: not found
mksh: <stdin>[6]: declare: not found
mksh: <stdin>[10]: declare: not found
mksh3 declare -F prints function names

stdout:
stderr: 
mksh: <stdin>[7]: declare: not found
mksh4 declare -F with shopt -s extdebug prints more info

stdout:
stderr: 
mksh5 declare -F with shopt -s extdebug and main file

stdout:
stderr: 
mksh6 declare -p var (exit status)

stdout:
127
127
127
stderr:
mksh: <stdin>[2]: declare: not found
mksh: <stdin>[6]: declare: not found
mksh: <stdin>[10]: declare: not found
bash-47 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:
mksh7 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
bash-48 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:
mksh8 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
bash-49 declare -p doesn't print binary data, but can be loaded into bash

stdout:
stderr: 
mksh9 declare -p doesn't print binary data, but can be loaded into bash

stdout:
stderr: 
bash-410 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
mksh10 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
bash-411 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:
mksh11 declare -p arr

stdout:
stderr: 
mksh: <stdin>[2]: syntax error: '(' unexpected
mksh12 declare -p foo=bar doesn't make sense

stdout:
stderr: 
bash-413 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:
mksh13 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
bash-414 declare -paA

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

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: '(' unexpected
bash-415 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
mksh15 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
bash-416 declare -pg

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

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

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

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

stdout:
stderr: 
mksh: <stdin>[3]: syntax error: '(' unexpected
mksh19 declare -p and value.Undef

stdout:
stderr: 
mksh: <stdin>[1]: declare: not found
mksh: <stdin>[2]: declare: not found
f: <stdin>[6]: declare: not found
osh19 declare -p and value.Undef

[osh stdout] Expected 'declare -- x\ndeclare -- x\n', got ''
[osh status] Expected 0, got 1

stdout:
stderr: 
mksh20 eval -- "$(declare -p arr)" (restore arrays w/ unset elements)

stdout:
stderr: 
mksh: <stdin>[2]: declare: not found
mksh: <stdin>[5]: {0..4}: unexpected '{'
mksh21 declare -p UNDEF (and typeset) -- prints something to stderr

stdout:
typeset -x -r x=42
 1 de
 0 ty
 1 total
stderr:
osh21 declare -p UNDEF (and typeset) -- prints something to stderr

stdout:
declare -rx x=42
declare -rx x=42
  2 de
  2 ty
  4 total
stderr:
mksh23 typeset -p

stdout:
0
0
0
stderr:
bash-424 typeset -r makes a string readonly

stdout:
status=1
status=1
status=1
status=1
status=1
status=1
stderr:
bash-4.4: line 4: s1: readonly variable
bash-4.4: line 6: s2: readonly variable
bash-4.4: line 9: s1: readonly variable
bash-4.4: line 11: s2: readonly variable
bash-4.4: line 14: unset: s1: cannot unset: readonly variable
bash-4.4: line 16: unset: s2: cannot unset: readonly variable
mksh24 typeset -r makes a string readonly

stdout:
stderr: 
mksh: <stdin>[4]: read-only: s1
bash-425 typeset -ar makes it readonly

stdout:
status=1
status=1
status=1
status=1
status=1
status=1
stderr:
bash-4.4: line 4: array1: readonly variable
bash-4.4: line 6: array2: readonly variable
bash-4.4: line 9: array1: readonly variable
bash-4.4: line 11: array2: readonly variable
bash-4.4: line 14: unset: array1: cannot unset: readonly variable
bash-4.4: line 16: unset: array2: cannot unset: readonly variable
mksh25 typeset -ar makes it readonly

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

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

stdout:
1
2
3
stderr:
bash-429 syntax error in array assignment

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

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

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

stdout:
a b
stderr:
bash-432 dynamic array parsing is not allowed

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

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

stdout:
r=r1
r=r1
r=r1
stderr:
bash-4.4: line 4: typeset: r: readonly variable
bash-4.4: line 7: r: readonly variable
mksh35 typeset +r removes read-only attribute (TODO: documented in bash to do nothing)

stdout:
r=r1
stderr:
mksh: <stdin>[4]: read-only: r
mksh36 function name with /

stdout:
status=127
stderr:
mksh: <stdin>[2]: declare: not found
mksh38 unset and shell funcs

stdout:
bar
bar
stderr:
mksh: <stdin>[7]: declare: not found
mksh: <stdin>[9]: declare: not found