Results for assign-extended.test.sh

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

[ksh stdout] Expected "['x', 'y', 'z']\n", got ''
[ksh status] Expected 0, got 1

stdout:
stderr: 
E: ksh: <stdin>[2]: syntax error: unexpected '('
toysh0 local -a

[toysh stdout] Expected "['x', 'y', 'z']\n", got ''
[toysh status] Expected 0, got 2

stdout:
stderr: 
main: line 1: sh: syntax error: )
mksh1 declare -a

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

[ksh stdout] Expected "['x', 'y', 'z']\n", got ''
[ksh status] Expected 0, got 1

stdout:
stderr: 
E: ksh: <stdin>[1]: syntax error: unexpected '('
toysh1 declare -a

[toysh stdout] Expected "['x', 'y', 'z']\n", got ''
[toysh status] Expected 0, got 2

stdout:
stderr: 
main: line 1: sh: syntax error: )
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
ksh2 declare -f exit code indicates function existence

[ksh stdout] Expected '1\n1\n0\n', got '127\n127\n127\n'

stdout:
127
127
127
stderr:
E: ksh: <stdin>[2]: declare: inaccessible or not found
E: ksh: <stdin>[6]: declare: inaccessible or not found
E: ksh: <stdin>[10]: declare: inaccessible or not found
toysh2 declare -f exit code indicates function existence

[toysh stdout] Expected '1\n1\n0\n', got '1\n1\n1\n'

stdout:
1
1
1
stderr:
declare: Unknown option 'f' (see "declare --help")
declare: Unknown option 'f' (see "declare --help")
declare: Unknown option 'f' (see "declare --help")
sush2 declare -f exit code indicates function existence

[sush stdout] Expected '1\n1\n0\n', got '0\n0\n0\n'

stdout:
0
0
0
stderr:
mksh3 declare -F prints function names

stdout:
stderr: 
mksh: <stdin>[7]: declare: not found
ksh3 declare -F prints function names

[ksh stdout] Expected 'declare -f __ec\ndeclare -f _ab\ndeclare -f add\ndeclare -f div\ndeclare -f ek\n' Got ''
[ksh status] Expected 0, got 127

stdout:
stderr: 
E: ksh: <stdin>[7]: declare: inaccessible or not found
toysh3 declare -F prints function names

[toysh stdout] Expected 'declare -f __ec\ndeclare -f _ab\ndeclare -f add\ndeclare -f div\ndeclare -f ek\n' Got ''
[toysh status] Expected 0, got 1

stdout:
stderr: 
declare: Unknown option 'F' (see "declare --help")
sush3 declare -F prints function names

[sush stdout] Expected 'declare -f __ec\ndeclare -f _ab\ndeclare -f add\ndeclare -f div\ndeclare -f ek\n' Got 'declare - $="3645993"\ndeclare - BASHPID="3645993"\ndeclare - BASH_ARGC=()\ndeclare - BASH_ARGV=()\ndeclare - BASH_CMDS\ndeclare - BASH_COMMAND="declare -F"\ndeclare - BASH_LINENO=()\ndeclare - BASH_SOURCE=()\ndeclare - BASH_SUBSHELL="0"\ndeclare -r BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")\ndeclare - BASH_VERSION="1.1.8(rusty_bash)-release"\ndeclare - DIRSTACK=()\ndeclare - EPOCHREALTIME\ndeclare - EPOCHSECONDS\ndeclare - FUNCNAME\ndeclare - HISTFILE="//.sush_history"\ndeclare - HISTFILESIZE="2000"\ndeclare - HOME="/"\ndeclare - HOSTTYPE="x86_64"\ndeclare - IFS="$\' \t\\n\'"\ndeclare - LINENO="7"\ndeclare - MACHTYPE="x86_64-unknown-linux"\ndeclare - OPTIND="1"\ndeclare - OSTYPE="linux"\ndeclare - PS4="+ "\ndeclare - RANDOM\ndeclare - SECONDS\ndeclare - SRANDOM\ndeclare -r UID="1000"\ndeclare - __ec () { echo hi; }\ndeclare - _ab () { expr 10 % 3; }\ndeclare - add () { expr 4 + 4; }\ndeclare - div () { expr 6 / 2; }\ndeclare - ek () { echo hello; }\n'

stdout:
declare - $="3645993"
declare - BASHPID="3645993"
declare - BASH_ARGC=()
declare - BASH_ARGV=()
declare - BASH_CMDS
declare - BASH_COMMAND="declare -F"
declare - BASH_LINENO=()
declare - BASH_SOURCE=()
declare - BASH_SUBSHELL="0"
declare -r BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")
declare - BASH_VERSION="1.1.8(rusty_bash)-release"
declare - DIRSTACK=()
declare - EPOCHREALTIME
declare - EPOCHSECONDS
declare - FUNCNAME
declare - HISTFILE="//.sush_history"
declare - HISTFILESIZE="2000"
declare - HOME="/"
declare - HOSTTYPE="x86_64"
declare - IFS="$' 	\n'"
declare - LINENO="7"
declare - MACHTYPE="x86_64-unknown-linux"
declare - OPTIND="1"
declare - OSTYPE="linux"
declare - PS4="+ "
declare - RANDOM
declare - SECONDS
declare - SRANDOM
declare -r UID="1000"
declare - __ec () { echo hi; }
declare - _ab () { expr 10 % 3; }
declare - add () { expr 4 + 4; }
declare - div () { expr 6 / 2; }
declare - ek () { echo hello; }
stderr:
mksh4 declare -F with shopt -s extdebug prints more info

stdout:
stderr: 
ksh4 declare -F with shopt -s extdebug prints more info

[ksh stdout] Expected 'declare -f add\ndeclare -f g\n\nadd 7 main\ng 3 ROOT/spec/testdata/bash-source-2.sh\n' Got '\n'

stdout:
stderr: 
E: ksh: <stdin>[5]: shopt: inaccessible or not found
E: ksh: <stdin>[9]: declare: inaccessible or not found
E: ksh: <stdin>[12]: declare: inaccessible or not found
E: ksh: <stdin>[13]: declare: inaccessible or not found
toysh4 declare -F with shopt -s extdebug prints more info

[toysh stdout] Expected 'declare -f add\ndeclare -f g\n\nadd 7 main\ng 3 ROOT/spec/testdata/bash-source-2.sh\n' Got ''
[toysh status] Expected 0, got -6

stdout:
stderr: 
munmap_chunk(): invalid pointer
sush4 declare -F with shopt -s extdebug prints more info

[sush stdout] Expected 'declare -f add\ndeclare -f g\n\nadd 7 main\ng 3 ROOT/spec/testdata/bash-source-2.sh\n' Got 'declare - $="3646121"\ndeclare - BASHPID="3646121"\ndeclare - BASH_ARGC=()\ndeclare - BASH_ARGV=()\ndeclare - BASH_CMDS\ndeclare - BASH_COMMAND="declare -F "\ndeclare - BASH_LINENO=()\ndeclare - BASH_SOURCE=()\ndeclare - BASH_SUBSHELL="0"\ndeclare -r BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")\ndeclare - BASH_VERSION="1.1.8(rusty_bash)-release"\ndeclare - DIRSTACK=()\ndeclare - EPOCHREALTIME\ndeclare - EPOCHSECONDS\ndeclare - FUNCNAME\ndeclare - HISTFILE="//.sush_history"\ndeclare - HISTFILESIZE="2000"\ndeclare - HOME="/"\ndeclare - HOSTTYPE="x86_64"\ndeclare - IFS="$\' \t\\n\'"\ndeclare - LINENO="9"\ndeclare - MACHTYPE="x86_64-unknown-linux"\ndeclare - OPTIND="1"\ndeclare - OSTYPE="linux"\ndeclare - PS4="+ "\ndeclare - RANDOM\ndeclare - REPO_ROOT="/home/andy/git/oils-for-unix/oils"\ndeclare - SECONDS\ndeclare - SH="/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush"\ndeclare - SRANDOM\ndeclare -r UID="1000"\ndeclare - add () { expr 4 + 4; }\ndeclare - g() {\n argv \'G funcs\' "${FUNCNAME[@]}" \n argv \'G files\' "${BASH_SOURCE[@]}"\n argv \'G lines\' "${BASH_LINENO[@]}" \n}\n\n'

stdout:
declare - $="3646121"
declare - BASHPID="3646121"
declare - BASH_ARGC=()
declare - BASH_ARGV=()
declare - BASH_CMDS
declare - BASH_COMMAND="declare -F "
declare - BASH_LINENO=()
declare - BASH_SOURCE=()
declare - BASH_SUBSHELL="0"
declare -r BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")
declare - BASH_VERSION="1.1.8(rusty_bash)-release"
declare - DIRSTACK=()
declare - EPOCHREALTIME
declare - EPOCHSECONDS
declare - FUNCNAME
declare - HISTFILE="//.sush_history"
declare - HISTFILESIZE="2000"
declare - HOME="/"
declare - HOSTTYPE="x86_64"
declare - IFS="$' 	\n'"
declare - LINENO="9"
declare - MACHTYPE="x86_64-unknown-linux"
declare - OPTIND="1"
declare - OSTYPE="linux"
declare - PS4="+ "
declare - RANDOM
declare - REPO_ROOT="/home/andy/git/oils-for-unix/oils"
declare - SECONDS
declare - SH="/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush"
declare - SRANDOM
declare -r UID="1000"
declare - add () { expr 4 + 4; }
declare - g() {
  argv 'G funcs' "${FUNCNAME[@]}" 
  argv 'G files' "${BASH_SOURCE[@]}"
  argv 'G lines' "${BASH_LINENO[@]}" 
}

stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: shopt: extdebug: not supported yet
brush4 declare -F with shopt -s extdebug prints more info

[brush stdout] Expected 'declare -f add\ndeclare -f g\n\nadd 7 main\ng 3 ROOT/spec/testdata/bash-source-2.sh\n' Got 'declare -f add\ndeclare -f g\n\nadd\ng\n'

stdout:
declare -f add
declare -f g

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

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

[ksh stdout] Expected 'declare -f add\ndeclare -f g\n\nadd 5 ROOT/spec/testdata/extdebug.sh\ng 3 ROOT/spec/testdata/bash-source-2.sh\n' Got '\n'

stdout:
stderr: 
E: /home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh[3]: shopt: inaccessible or not found
E: /home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh[7]: declare: inaccessible or not found
E: /home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh[10]: declare: inaccessible or not found
E: /home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh[12]: declare: inaccessible or not found
toysh5 declare -F with shopt -s extdebug and main file

[toysh stdout] Expected 'declare -f add\ndeclare -f g\n\nadd 5 ROOT/spec/testdata/extdebug.sh\ng 3 ROOT/spec/testdata/bash-source-2.sh\n' Got ''
[toysh status] Expected 0, got -6

stdout:
stderr: 
munmap_chunk(): invalid pointer
sush5 declare -F with shopt -s extdebug and main file

[sush stdout] Expected 'declare -f add\ndeclare -f g\n\nadd 5 ROOT/spec/testdata/extdebug.sh\ng 3 ROOT/spec/testdata/bash-source-2.sh\n' Got 'declare - $="3646412"\ndeclare - BASHPID="3646412"\ndeclare - BASH_ARGC=()\ndeclare - BASH_ARGV=()\ndeclare - BASH_CMDS\ndeclare - BASH_COMMAND="declare -F "\ndeclare - BASH_LINENO=()\ndeclare - BASH_SOURCE=()\ndeclare - BASH_SUBSHELL="0"\ndeclare -r BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")\ndeclare - BASH_VERSION="1.1.8(rusty_bash)-release"\ndeclare - DIRSTACK=()\ndeclare - EPOCHREALTIME\ndeclare - EPOCHSECONDS\ndeclare - FUNCNAME\ndeclare - HISTFILE="//.sush_history"\ndeclare - HISTFILESIZE="2000"\ndeclare - HOME="/"\ndeclare - HOSTTYPE="x86_64"\ndeclare - IFS="$\' \t\\n\'"\ndeclare - LINENO="7"\ndeclare - MACHTYPE="x86_64-unknown-linux"\ndeclare - OPTIND="1"\ndeclare - OSTYPE="linux"\ndeclare - PS4="+ "\ndeclare - RANDOM\ndeclare - REPO_ROOT="ROOT"\ndeclare - SECONDS\ndeclare - SRANDOM\ndeclare -r UID="1000"\ndeclare - add () { expr 4 + 4; }\ndeclare - g() {\n argv \'G funcs\' "${FUNCNAME[@]}" \n argv \'G files\' "${BASH_SOURCE[@]}"\n argv \'G lines\' "${BASH_LINENO[@]}" \n}\n\n'

stdout:
declare - $="3646412"
declare - BASHPID="3646412"
declare - BASH_ARGC=()
declare - BASH_ARGV=()
declare - BASH_CMDS
declare - BASH_COMMAND="declare -F "
declare - BASH_LINENO=()
declare - BASH_SOURCE=()
declare - BASH_SUBSHELL="0"
declare -r BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")
declare - BASH_VERSION="1.1.8(rusty_bash)-release"
declare - DIRSTACK=()
declare - EPOCHREALTIME
declare - EPOCHSECONDS
declare - FUNCNAME
declare - HISTFILE="//.sush_history"
declare - HISTFILESIZE="2000"
declare - HOME="/"
declare - HOSTTYPE="x86_64"
declare - IFS="$' 	\n'"
declare - LINENO="7"
declare - MACHTYPE="x86_64-unknown-linux"
declare - OPTIND="1"
declare - OSTYPE="linux"
declare - PS4="+ "
declare - RANDOM
declare - REPO_ROOT="ROOT"
declare - SECONDS
declare - SRANDOM
declare -r UID="1000"
declare - add () { expr 4 + 4; }
declare - g() {
  argv 'G funcs' "${FUNCNAME[@]}" 
  argv 'G files' "${BASH_SOURCE[@]}"
  argv 'G lines' "${BASH_LINENO[@]}" 
}

stderr:
/home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: line 3: shopt: extdebug: not supported yet
brush5 declare -F with shopt -s extdebug and main file

[brush stdout] Expected 'declare -f add\ndeclare -f g\n\nadd 5 ROOT/spec/testdata/extdebug.sh\ng 3 ROOT/spec/testdata/bash-source-2.sh\n' Got 'declare -f add\ndeclare -f g\n\nadd\ng\n'

stdout:
declare -f add
declare -f g

add
g
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
ksh6 declare -p var (exit status)

[ksh stdout] Expected '1\n1\n0\n', got '127\n127\n127\n'

stdout:
127
127
127
stderr:
E: ksh: <stdin>[2]: declare: inaccessible or not found
E: ksh: <stdin>[6]: declare: inaccessible or not found
E: ksh: <stdin>[10]: declare: inaccessible or not found
bash7 declare

[bash stdout] Expected '[declare]\ntest_var1=111\ntest_var2=222\ntest_var3=333\ntest_var4=test_var1\ntest_var5=555\n[readonly]\ndeclare -r test_var2="222"\n[export]\ndeclare -x test_var3="333"\n[local]\ntest_var5=555\n' Got '[declare]\ntest_var1=111\ntest_var2=222\ntest_var3=333\ntest_var4=test_var1\ntest_var5=555\n[readonly]\ndeclare -r test_var2="222"\n[export]\ndeclare -x test_var3="333"\n[local]\ndeclare -- test_var5="555"\n'

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]
declare -- 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
ksh7 declare

[ksh stdout] Expected '[declare]\ntest_var1=111\ntest_var2=222\ntest_var3=333\ntest_var4=test_var1\ntest_var5=555\n[readonly]\ndeclare -r test_var2=222\n[export]\ndeclare -x test_var3=333\n[local]\ntest_var5=555\n' Got '[declare]\n[readonly]\ntest_var2\n[export]\ntest_var3\n[local]\ntypeset test_var1\ntypeset -r test_var2\ntypeset -x test_var3\ntypeset test_var5\n'

stdout:
[declare]
[readonly]
test_var2
[export]
test_var3
[local]
typeset test_var1
typeset -r test_var2
typeset -x test_var3
typeset test_var5
stderr:
E: ksh: <stdin>[4]: declare: inaccessible or not found
E: ksh: <stdin>[18]: declare: inaccessible or not found
toysh7 declare

[toysh stdout] Expected '[declare]\ntest_var1=111\ntest_var2=222\ntest_var3=333\ntest_var4=test_var1\ntest_var5=555\n[readonly]\ndeclare -r test_var2=222\n[export]\ndeclare -x test_var3=333\n[local]\ntest_var5=555\n' Got '[declare]\ndeclare -- test_var5="555"\ndeclare -n test_var4="test_var1"\ndeclare -x test_var3="333"\ndeclare -- test_var1="111"\n[readonly]\n[export]\ndeclare -x test_var3="333"\n[local]\ntest_var5=555\n'

stdout:
[declare]
declare -- test_var5="555"
declare -n test_var4="test_var1"
declare -x test_var3="333"
declare -- test_var1="111"
[readonly]
[export]
declare -x test_var3="333"
[local]
test_var5=555
stderr:
sh: readonly: No such file or directory
sh: readonly: No such file or directory
sush7 declare

[sush stdout] Expected '[declare]\ntest_var1=111\ntest_var2=222\ntest_var3=333\ntest_var4=test_var1\ntest_var5=555\n[readonly]\ndeclare -r test_var2=222\n[export]\ndeclare -x test_var3=333\n[local]\ntest_var5=555\n' Got '[declare]\ntest_var1=111\ntest_var2=222\ntest_var3=333\ntest_var4=test_var1\ntest_var5=555\n[readonly]\ndeclare -r test_var2=222\n[export]\n[local]\n'

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]
[local]
stderr:
brush7 declare

[brush stdout] Expected '[declare]\ntest_var1=111\ntest_var2=222\ntest_var3=333\ntest_var4=test_var1\ntest_var5=555\n[readonly]\ndeclare -r test_var2=222\n[export]\ndeclare -x test_var3=333\n[local]\ntest_var5=555\n' Got '[declare]\ntest_var1=111\ntest_var2=222\ntest_var3=333\ntest_var4=test_var1\ntest_var5=555\n[readonly]\ntest_var2=222\n[export]\ndeclare -x test_var3="333"\n[local]\ntest_var5=555\n'

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

[bash stdout] Expected '[declare]\ndeclare -- test_var1="111"\ndeclare -r test_var2="222"\ndeclare -x test_var3="333"\ndeclare -n test_var4="test_var1"\ndeclare -- test_var5="555"\n[readonly]\ndeclare -r test_var2="222"\n[export]\ndeclare -x test_var3="333"\n[local]\ntest_var5=555\n' Got '[declare]\ndeclare -- test_var1="111"\ndeclare -r test_var2="222"\ndeclare -x test_var3="333"\ndeclare -n test_var4="test_var1"\ndeclare -- test_var5="555"\n[readonly]\ndeclare -r test_var2="222"\n[export]\ndeclare -x test_var3="333"\n[local]\ndeclare -- test_var5="555"\n'

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]
declare -- 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
ksh8 declare -p

[ksh stdout] Expected '[declare]\ndeclare -- test_var1=111\ndeclare -r test_var2=222\ndeclare -x test_var3=333\ndeclare -n test_var4=test_var1\ndeclare -- test_var5=555\n[readonly]\ndeclare -r test_var2=222\n[export]\ndeclare -x test_var3=333\n[local]\ndeclare -- test_var5=555\n' Got '[declare]\n[readonly]\nreadonly test_var2=222\n[export]\nexport test_var3=333\n[local]\ntypeset test_var1=111\ntypeset -r test_var2=222\ntypeset -x test_var3=333\ntypeset test_var5=555\n'

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:
E: ksh: <stdin>[4]: declare: inaccessible or not found
E: ksh: <stdin>[18]: declare: inaccessible or not found
toysh8 declare -p

[toysh stdout] Expected '[declare]\ndeclare -- test_var1=111\ndeclare -r test_var2=222\ndeclare -x test_var3=333\ndeclare -n test_var4=test_var1\ndeclare -- test_var5=555\n[readonly]\ndeclare -r test_var2=222\n[export]\ndeclare -x test_var3=333\n[local]\ndeclare -- test_var5=555\n' Got '[declare]\ndeclare -- test_var5="555"\ndeclare -n test_var4="test_var1"\ndeclare -x test_var3="333"\ndeclare -- test_var1="111"\n[readonly]\n[export]\ndeclare -x test_var3="333"\n[local]\n'

stdout:
[declare]
declare -- test_var5="555"
declare -n test_var4="test_var1"
declare -x test_var3="333"
declare -- test_var1="111"
[readonly]
[export]
declare -x test_var3="333"
[local]
stderr:
sh: readonly: No such file or directory
sh: readonly: No such file or directory
local: bad -p
sush8 declare -p

[sush stdout] Expected '[declare]\ndeclare -- test_var1=111\ndeclare -r test_var2=222\ndeclare -x test_var3=333\ndeclare -n test_var4=test_var1\ndeclare -- test_var5=555\n[readonly]\ndeclare -r test_var2=222\n[export]\ndeclare -x test_var3=333\n[local]\ndeclare -- test_var5=555\n' Got '[declare]\ndeclare - test_var1="111"\ndeclare -r test_var2="222"\ndeclare - test_var3="333"\ndeclare - test_var4="test_var1"\ndeclare - test_var5="555"\n[readonly]\ndeclare -r test_var2=222\n[export]\n[local]\n'

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

[brush stdout] Expected '[declare]\ndeclare -- test_var1=111\ndeclare -r test_var2=222\ndeclare -x test_var3=333\ndeclare -n test_var4=test_var1\ndeclare -- test_var5=555\n[readonly]\ndeclare -r test_var2=222\n[export]\ndeclare -x test_var3=333\n[local]\ndeclare -- test_var5=555\n' Got '[declare]\ndeclare -- test_var1="111"\ndeclare -r test_var2="222"\ndeclare -x test_var3="333"\ndeclare -n test_var4="test_var1"\ndeclare -- test_var5="555"\n[readonly]\ndeclare -r test_var2="222"\n[export]\ndeclare -x test_var3="333"\n[local]\ndeclare -- test_var5="555"\n'

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]
declare -- test_var5="555"
stderr:
bash9 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: 
ksh9 declare -p doesn't print binary data, but can be loaded into bash

[ksh stdout] Expected "declare -- s1=foo\ndeclare -- s2='foo bar'\ndeclare -- s3=$'\\u001f'\ndeclare -- s4=$'\\xfe\\xff'\ndeclare -a a=(foo 'foo bar' $'\\u001f' $'\\xfe\\xff')\ndeclare -A A=([$'\\u001f']=$'\\xfe\\xff' ['foo']='foo bar')\n---\nfoo foo bar\n 1f 20 fe ff\nbash=0\n" Got ''
[ksh status] Expected 0, got 1

stdout:
stderr: 
E: ksh: <stdin>[13]: syntax error: unexpected '('
toysh9 declare -p doesn't print binary data, but can be loaded into bash

[toysh stdout] Expected "declare -- s1=foo\ndeclare -- s2='foo bar'\ndeclare -- s3=$'\\u001f'\ndeclare -- s4=$'\\xfe\\xff'\ndeclare -a a=(foo 'foo bar' $'\\u001f' $'\\xfe\\xff')\ndeclare -A A=([$'\\u001f']=$'\\xfe\\xff' ['foo']='foo bar')\n---\nfoo foo bar\n 1f 20 fe ff\nbash=0\n" Got ''
[toysh status] Expected 0, got -6

stdout:
stderr: 
munmap_chunk(): invalid pointer
sush9 declare -p doesn't print binary data, but can be loaded into bash

[sush stdout] Expected "declare -- s1=foo\ndeclare -- s2='foo bar'\ndeclare -- s3=$'\\u001f'\ndeclare -- s4=$'\\xfe\\xff'\ndeclare -a a=(foo 'foo bar' $'\\u001f' $'\\xfe\\xff')\ndeclare -A A=([$'\\u001f']=$'\\xfe\\xff' ['foo']='foo bar')\n---\nfoo foo bar\n 1f 20 fe ff\nbash=0\n" Got 'declare -- s1=foo\ndeclare -- s2=foo bar\ndeclare -- s3=\x1f\ndeclare -- s4=\xc3\xbe\xc3\xbf\ndeclare -a a=([0]="foo" [1]="foo bar" [2]="\x1f" [3]="\xc3\xbe\xc3\xbf")\ndeclare -a A=([0]="foo bar")\n---\nfoo foo\n 1f 20 c3 be c3 bf\nbash=0\n'

stdout:
declare -- s1=foo
declare -- s2=foo bar
declare -- s3=
declare -- s4=þÿ
declare -a a=([0]="foo" [1]="foo bar" [2]="" [3]="þÿ")
declare -a A=([0]="foo bar")
---
foo foo
 1f 20 c3 be c3 bf
bash=0
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 14: : syntax error: operand expected (error token is "")
brush9 declare -p doesn't print binary data, but can be loaded into bash

[brush stdout] Expected "declare -- s1=foo\ndeclare -- s2='foo bar'\ndeclare -- s3=$'\\u001f'\ndeclare -- s4=$'\\xfe\\xff'\ndeclare -a a=(foo 'foo bar' $'\\u001f' $'\\xfe\\xff')\ndeclare -A A=([$'\\u001f']=$'\\xfe\\xff' ['foo']='foo bar')\n---\nfoo foo bar\n 1f 20 fe ff\nbash=0\n" Got 'declare -- s1="foo"\ndeclare -- s2="foo bar"\ndeclare -- s3=$\'\\037\'\ndeclare -- s4="\xef\xbf\xbd\xef\xbf\xbd"\ndeclare -a a=([0]="foo" [1]="foo bar" [2]=$\'\\037\' [3]="\xef\xbf\xbd\xef\xbf\xbd")\ndeclare -A A=([$\'\\037\']="\xef\xbf\xbd\xef\xbf\xbd" [foo]="foo bar" )\n---\nfoo foo bar\n 1f 20 ef bf bd ef bf bd\nbash=0\n'

stdout:
declare -- s1="foo"
declare -- s2="foo bar"
declare -- s3=$'\037'
declare -- s4="��"
declare -a a=([0]="foo" [1]="foo bar" [2]=$'\037' [3]="��")
declare -A A=([$'\037']="��" [foo]="foo bar" )
---
foo foo bar
 1f 20 ef bf bd ef bf bd
bash=0
stderr:
bash10 declare -p var

[bash stdout] Expected '[declare]\ndeclare -- test_var1="111"\ndeclare -r test_var2="222"\ndeclare -x test_var3="333"\ndeclare -n test_var4="test_var1"\ndeclare -- test_var5="555"\n[readonly]\n[export]\n[local]\n' Got '[declare]\ndeclare -- test_var1="111"\ndeclare -r test_var2="222"\ndeclare -x test_var3="333"\ndeclare -n test_var4="test_var1"\ndeclare -- test_var5="555"\n[readonly]\n[export]\n[local]\ndeclare -rx test_var5="555"\n'

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]
declare -rx test_var5="555"
stderr:
main: line 9: declare: test_var0: not found
main: line 15: local: test_var0: not found
main: line 15: local: test_var1: not found
main: line 15: local: test_var2: not found
main: line 15: local: test_var3: not found
main: line 15: local: test_var4: not found
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
ksh10 declare -p var

[ksh stdout] Expected '[declare]\ndeclare -- test_var1=111\ndeclare -r test_var2=222\ndeclare -x test_var3=333\ndeclare -n test_var4=test_var1\ndeclare -- test_var5=555\n[readonly]\ndeclare -r test_var2=222\n[export]\ndeclare -x test_var3=333\n[local]\ndeclare -- test_var5=555\n' Got '[declare]\n[readonly]\n'

stdout:
[declare]
[readonly]
stderr:
E: ksh: <stdin>[4]: declare: inaccessible or not found
E: ksh: <stdin>[18]: declare: inaccessible or not found
E: ksh: <stdin>[18]: readonly: test_var{0..5}: not an identifier
toysh10 declare -p var

[toysh stdout] Expected '[declare]\ndeclare -- test_var1=111\ndeclare -r test_var2=222\ndeclare -x test_var3=333\ndeclare -n test_var4=test_var1\ndeclare -- test_var5=555\n[readonly]\ndeclare -r test_var2=222\n[export]\ndeclare -x test_var3=333\n[local]\ndeclare -- test_var5=555\n' Got '[declare]\ndeclare -- test_var1="111"\ndeclare -x test_var3="333"\ndeclare -n test_var4="test_var1"\ndeclare -- test_var5="555"\n[readonly]\n[export]\n[local]\n'

stdout:
[declare]
declare -- test_var1="111"
declare -x test_var3="333"
declare -n test_var4="test_var1"
declare -- test_var5="555"
[readonly]
[export]
[local]
stderr:
sh: readonly: No such file or directory
declare: test_var0: not found
declare: test_var2: not found
sh: readonly: No such file or directory
local: bad -p
sush10 declare -p var

[sush stdout] Expected '[declare]\ndeclare -- test_var1=111\ndeclare -r test_var2=222\ndeclare -x test_var3=333\ndeclare -n test_var4=test_var1\ndeclare -- test_var5=555\n[readonly]\ndeclare -r test_var2=222\n[export]\ndeclare -x test_var3=333\n[local]\ndeclare -- test_var5=555\n' Got '[declare]\n[readonly]\n[export]\n[local]\n'

stdout:
[declare]
[readonly]
[export]
[local]
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 9: 1: not found
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 13: test_var: readonly variable
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 15: test_var: readonly variable
brush10 declare -p var

[brush stdout] Expected '[declare]\ndeclare -- test_var1=111\ndeclare -r test_var2=222\ndeclare -x test_var3=333\ndeclare -n test_var4=test_var1\ndeclare -- test_var5=555\n[readonly]\ndeclare -r test_var2=222\n[export]\ndeclare -x test_var3=333\n[local]\ndeclare -- test_var5=555\n' Got '[declare]\ndeclare -- test_var1="111"\ndeclare -r test_var2="222"\ndeclare -x test_var3="333"\ndeclare -n test_var4="test_var1"\ndeclare -- test_var5="555"\n[readonly]\n[export]\n[local]\ndeclare -rx test_var0\ndeclare -rx test_var1\ndeclare -rx test_var2\ndeclare -rx test_var3\ndeclare -rx test_var4\ndeclare -rx test_var5="555"\n'

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]
declare -rx test_var0
declare -rx test_var1
declare -rx test_var2
declare -rx test_var3
declare -rx test_var4
declare -rx test_var5="555"
stderr:
declare: test_var0: not found
bash11 declare -p arr

[bash stdout] Expected 'declare -a test_arr1=()\ndeclare -a test_arr2=()\ndeclare -A test_arr3=()\ndeclare -a test_arr4=([0]="1" [1]="2" [2]="3")\ndeclare -a test_arr5=([0]="1" [1]="2" [2]="3")\ndeclare -A test_arr6=([a]="1" [b]="2" [c]="3" )\ndeclare -a test_arr7=([3]="foo")\n' Got 'declare -a test_arr1=()\ndeclare -a test_arr2=()\ndeclare -A test_arr3=()\ndeclare -a test_arr4=([0]="1" [1]="2" [2]="3")\ndeclare -a test_arr5=([0]="1" [1]="2" [2]="3")\ndeclare -A test_arr6=([c]="3" [b]="2" [a]="1" )\ndeclare -a test_arr7=([3]="foo")\n'

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=([c]="3" [b]="2" [a]="1" )
declare -a test_arr7=([3]="foo")
stderr:
mksh11 declare -p arr

stdout:
stderr: 
mksh: <stdin>[2]: syntax error: '(' unexpected
ksh11 declare -p arr

[ksh stdout] Expected "declare -a test_arr1=()\ndeclare -a test_arr2=()\ndeclare -A test_arr3=()\ndeclare -a test_arr4=(1 2 3)\ndeclare -a test_arr5=(1 2 3)\ndeclare -A test_arr6=(['a']=1 ['b']=2 ['c']=3)\ndeclare -a test_arr7=([3]=foo)\n" Got ''
[ksh status] Expected 0, got 1

stdout:
stderr: 
E: ksh: <stdin>[2]: syntax error: unexpected '('
toysh11 declare -p arr

[toysh stdout] Expected "declare -a test_arr1=()\ndeclare -a test_arr2=()\ndeclare -A test_arr3=()\ndeclare -a test_arr4=(1 2 3)\ndeclare -a test_arr5=(1 2 3)\ndeclare -A test_arr6=(['a']=1 ['b']=2 ['c']=3)\ndeclare -a test_arr7=([3]=foo)\n" Got ''
[toysh status] Expected 0, got 2

stdout:
stderr: 
main: line 1: sh: syntax error: declare
sush11 declare -p arr

[sush stdout] Expected "declare -a test_arr1=()\ndeclare -a test_arr2=()\ndeclare -A test_arr3=()\ndeclare -a test_arr4=(1 2 3)\ndeclare -a test_arr5=(1 2 3)\ndeclare -A test_arr6=(['a']=1 ['b']=2 ['c']=3)\ndeclare -a test_arr7=([3]=foo)\n" Got ''
[sush status] Expected 0, got 1

stdout:
stderr: 
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: 'a': syntax error: operand expected (error token is "'a'")
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: 'b': syntax error: operand expected (error token is "'b'")
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: 'c': syntax error: operand expected (error token is "'c'")
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 9: 1: not found
brush11 declare -p arr

[brush stdout] Expected "declare -a test_arr1=()\ndeclare -a test_arr2=()\ndeclare -A test_arr3=()\ndeclare -a test_arr4=(1 2 3)\ndeclare -a test_arr5=(1 2 3)\ndeclare -A test_arr6=(['a']=1 ['b']=2 ['c']=3)\ndeclare -a test_arr7=([3]=foo)\n" Got 'declare -a test_arr1=()\ndeclare -a test_arr2=()\ndeclare -A test_arr3=()\ndeclare -a test_arr4=([0]="1" [1]="2" [2]="3")\ndeclare -a test_arr5=([0]="1" [1]="2" [2]="3")\ndeclare -A test_arr6=([a]="1" [b]="2" [c]="3" )\ndeclare -a test_arr7=([3]="foo")\n'

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:
mksh12 declare -p foo=bar doesn't make sense

stdout:
stderr: 
ksh12 declare -p foo=bar doesn't make sense

[ksh stdout] Expected 'status=1\nstatus=1\ndeclare -- a=b\n', got 'status=127\nstatus=127\n'

stdout:
status=127
status=127
stderr:
E: ksh: <stdin>[3]: declare: inaccessible or not found
E: ksh: <stdin>[7]: declare: inaccessible or not found
toysh12 declare -p foo=bar doesn't make sense

[toysh stdout] Expected 'status=1\nstatus=1\ndeclare -- a=b\n', got ''
[toysh status] Expected 0, got 2

stdout:
stderr: 
main: line 1: sh: syntax error: (
bash13 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
ksh13 declare -pnrx

[ksh stdout] Expected '[declare -pn]\ndeclare -n test_var4=test_var1\n[declare -pr]\ndeclare -r test_var2=222\n[declare -px]\ndeclare -x test_var3=333\n' Got '[declare -pn]\n[declare -pr]\n[declare -px]\n'

stdout:
[declare -pn]
[declare -pr]
[declare -px]
stderr:
E: ksh: <stdin>[4]: declare: inaccessible or not found
E: ksh: <stdin>[16]: declare: inaccessible or not found
E: ksh: <stdin>[16]: declare: inaccessible or not found
E: ksh: <stdin>[16]: declare: inaccessible or not found
toysh13 declare -pnrx

[toysh stdout] Expected '[declare -pn]\ndeclare -n test_var4=test_var1\n[declare -pr]\ndeclare -r test_var2=222\n[declare -px]\ndeclare -x test_var3=333\n' Got '[declare -pn]\ndeclare -- test_var5="555"\ndeclare -n test_var4="test_var1"\ndeclare -x test_var3="333"\ndeclare -- test_var1="111"\n[declare -pr]\ndeclare -- test_var5="555"\ndeclare -n test_var4="test_var1"\ndeclare -x test_var3="333"\ndeclare -- test_var1="111"\n[declare -px]\ndeclare -- test_var5="555"\ndeclare -n test_var4="test_var1"\ndeclare -x test_var3="333"\ndeclare -- test_var1="111"\n'

stdout:
[declare -pn]
declare -- test_var5="555"
declare -n test_var4="test_var1"
declare -x test_var3="333"
declare -- test_var1="111"
[declare -pr]
declare -- test_var5="555"
declare -n test_var4="test_var1"
declare -x test_var3="333"
declare -- test_var1="111"
[declare -px]
declare -- test_var5="555"
declare -n test_var4="test_var1"
declare -x test_var3="333"
declare -- test_var1="111"
stderr:
sh: readonly: No such file or directory
sush13 declare -pnrx

[sush stdout] Expected '[declare -pn]\ndeclare -n test_var4=test_var1\n[declare -pr]\ndeclare -r test_var2=222\n[declare -px]\ndeclare -x test_var3=333\n' Got '[declare -pn]\ndeclare - test_var1="111"\ndeclare -r test_var2="222"\ndeclare - test_var3="333"\ndeclare - test_var4="test_var1"\ndeclare - test_var5="555"\n[declare -pr]\ndeclare -r test_var2="222"\n[declare -px]\ndeclare - test_var1="111"\ndeclare -r test_var2="222"\ndeclare - test_var3="333"\ndeclare - test_var4="test_var1"\ndeclare - test_var5="555"\n'

stdout:
[declare -pn]
declare - test_var1="111"
declare -r test_var2="222"
declare - test_var3="333"
declare - test_var4="test_var1"
declare - test_var5="555"
[declare -pr]
declare -r test_var2="222"
[declare -px]
declare - test_var1="111"
declare -r test_var2="222"
declare - test_var3="333"
declare - test_var4="test_var1"
declare - test_var5="555"
stderr:
brush13 declare -pnrx

[brush stdout] Expected '[declare -pn]\ndeclare -n test_var4=test_var1\n[declare -pr]\ndeclare -r test_var2=222\n[declare -px]\ndeclare -x test_var3=333\n' Got '[declare -pn]\ndeclare -n test_var4="test_var1"\n[declare -pr]\n[declare -px]\ndeclare -x test_var3="333"\n'

stdout:
[declare -pn]
declare -n test_var4="test_var1"
[declare -pr]
[declare -px]
declare -x test_var3="333"
stderr:
bash14 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
ksh14 declare -paA

[ksh stdout] Expected '[declare -pa]\ndeclare -a test_var6=()\n[declare -pA]\ndeclare -A test_var7=()\n' Got ''
[ksh status] Expected 0, got 1

stdout:
stderr: 
E: ksh: <stdin>[1]: syntax error: unexpected '('
toysh14 declare -paA

[toysh stdout] Expected '[declare -pa]\ndeclare -a test_var6=()\n[declare -pA]\ndeclare -A test_var7=()\n' Got ''
[toysh status] Expected 0, got 2

stdout:
stderr: 
main: line 1: sh: syntax error: )
sush14 declare -paA

[sush stdout] Expected '[declare -pa]\ndeclare -a test_var6=()\n[declare -pA]\ndeclare -A test_var7=()\n' Got '[declare -pa]\ndeclare -a test_var6\ndeclare -a test_var7\n[declare -pA]\n'

stdout:
[declare -pa]
declare -a test_var6
declare -a test_var7
[declare -pA]
stderr:
bash15 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
ksh15 declare -pnrx var

[ksh stdout] Expected '[declare -pn]\ndeclare -n test_var4=test_var1\n[declare -pr]\ndeclare -r test_var2=222\n[declare -px]\ndeclare -x test_var3=333\n' Got '[declare -pn]\n[declare -pr]\n[declare -px]\n'

stdout:
[declare -pn]
[declare -pr]
[declare -px]
stderr:
E: ksh: <stdin>[4]: declare: inaccessible or not found
E: ksh: <stdin>[16]: declare: inaccessible or not found
E: ksh: <stdin>[16]: declare: inaccessible or not found
E: ksh: <stdin>[16]: declare: inaccessible or not found
toysh15 declare -pnrx var

[toysh stdout] Expected '[declare -pn]\ndeclare -n test_var4=test_var1\n[declare -pr]\ndeclare -r test_var2=222\n[declare -px]\ndeclare -x test_var3=333\n' Got '[declare -pn]\ndeclare -- test_var1="111"\ndeclare -x test_var3="333"\ndeclare -n test_var4="test_var1"\ndeclare -- test_var5="555"\n[declare -pr]\ndeclare -- test_var1="111"\ndeclare -x test_var3="333"\ndeclare -n test_var4="test_var1"\ndeclare -- test_var5="555"\n[declare -px]\ndeclare -- test_var1="111"\ndeclare -x test_var3="333"\ndeclare -n test_var4="test_var1"\ndeclare -- test_var5="555"\n'

stdout:
[declare -pn]
declare -- test_var1="111"
declare -x test_var3="333"
declare -n test_var4="test_var1"
declare -- test_var5="555"
[declare -pr]
declare -- test_var1="111"
declare -x test_var3="333"
declare -n test_var4="test_var1"
declare -- test_var5="555"
[declare -px]
declare -- test_var1="111"
declare -x test_var3="333"
declare -n test_var4="test_var1"
declare -- test_var5="555"
stderr:
sh: readonly: No such file or directory
declare: test_var0: not found
declare: test_var2: not found
declare: test_var0: not found
declare: test_var2: not found
declare: test_var0: not found
declare: test_var2: not found
sush15 declare -pnrx var

[sush stdout] Expected '[declare -pn]\ndeclare -n test_var4=test_var1\n[declare -pr]\ndeclare -r test_var2=222\n[declare -px]\ndeclare -x test_var3=333\n' Got '[declare -pn]\n[declare -pr]\n[declare -px]\n'

stdout:
[declare -pn]
[declare -pr]
[declare -px]
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 9: -n: not found
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 11: -r: not found
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 13: -x: not found
brush15 declare -pnrx var

[brush stdout] Expected '[declare -pn]\ndeclare -n test_var4=test_var1\n[declare -pr]\ndeclare -r test_var2=222\n[declare -px]\ndeclare -x test_var3=333\n' Got '[declare -pn]\ndeclare -- test_var1="111"\ndeclare -r test_var2="222"\ndeclare -x test_var3="333"\ndeclare -n test_var4="test_var1"\ndeclare -- test_var5="555"\n[declare -pr]\ndeclare -- test_var1="111"\ndeclare -r test_var2="222"\ndeclare -x test_var3="333"\ndeclare -n test_var4="test_var1"\ndeclare -- test_var5="555"\n[declare -px]\ndeclare -- test_var1="111"\ndeclare -r test_var2="222"\ndeclare -x test_var3="333"\ndeclare -n test_var4="test_var1"\ndeclare -- test_var5="555"\n'

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:
declare: test_var0: not found
declare: test_var0: not found
declare: test_var0: not found
bash16 declare -pg

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

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

[ksh stdout] Expected 'declare -- test_var1=global\n', got ''
[ksh status] Expected 0, got 1

stdout:
stderr: 
E: ksh: <stdin>[8]: declare: inaccessible or not found
toysh16 declare -pg

[toysh stdout] Expected 'declare -- test_var1=global\n', got ''
[toysh status] Expected 0, got 1

stdout:
stderr: 
declare: Unknown option 'g' (see "declare --help")
sush16 declare -pg

[sush stdout] Expected 'declare -- test_var1=global\n', got 'declare - test_var1="local"\n'

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

[brush stdout] Expected 'declare -- test_var1=global\n', got 'declare -- test_var1="local"\n'

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

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

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

[ksh stdout] Expected 'declare -- test_var1=global\n', got ''
[ksh status] Expected 0, got 1

stdout:
stderr: 
E: ksh: <stdin>[8]: declare: inaccessible or not found
toysh17 declare -pg var

[toysh stdout] Expected 'declare -- test_var1=global\n', got ''
[toysh status] Expected 0, got 1

stdout:
stderr: 
declare: Unknown option 'g' (see "declare --help")
sush17 declare -pg var

[sush stdout] Expected 'declare -- test_var1=global\n', got ''
[sush status] Expected 0, got 1

stdout:
stderr: 
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: -g: not found
brush17 declare -pg var

[brush stdout] Expected 'declare -- test_var1=global\n', got 'declare -- test_var1="local"\n'

stdout:
declare -- test_var1="local"
stderr:
mksh18 ble.sh: eval -- "$(declare -p var arr)"

stdout:
stderr: 
mksh: <stdin>[3]: syntax error: '(' unexpected
ksh18 ble.sh: eval -- "$(declare -p var arr)"

[ksh stdout] Expected 'sum=21\narr[0]=a2\narr[1]=a5\narr[2]=a8\narr[3]=a10\n' Got ''
[ksh status] Expected 0, got 1

stdout:
stderr: 
E: ksh: <stdin>[3]: syntax error: unexpected '('
toysh18 ble.sh: eval -- "$(declare -p var arr)"

[toysh stdout] Expected 'sum=21\narr[0]=a2\narr[1]=a5\narr[2]=a8\narr[3]=a10\n' Got 'sum=\n'
[toysh status] Expected 0, got 2

stdout:
sum=
stderr:
main: line 1: sh: syntax error: )
sh: --: No such file or directory
main: line 11: sh: syntax error: ;
sush18 ble.sh: eval -- "$(declare -p var arr)"

[sush stdout] Expected 'sum=21\narr[0]=a2\narr[1]=a5\narr[2]=a8\narr[3]=a10\n' Got 'sum=\n'

stdout:
sum=
stderr:
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
ksh19 declare -p and value.Undef

[ksh stdout] Expected 'declare -- x\ndeclare -- x\n', got ''
[ksh status] Expected 0, got 127

stdout:
stderr: 
E: ksh: <stdin>[1]: declare: inaccessible or not found
E: ksh: <stdin>[2]: declare: inaccessible or not found
E: f: <stdin>[6]: declare: inaccessible or not found
toysh19 declare -p and value.Undef

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

stdout:
stderr: 
declare: x: not found
declare: x: not found
sush19 declare -p and value.Undef

[sush stdout] Expected 'declare -- x\ndeclare -- x\n', got 'declare -- x=\ndeclare -- x=\n'

stdout:
declare -- x=
declare -- x=
stderr:
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 '{'
ksh20 eval -- "$(declare -p arr)" (restore arrays w/ unset elements)

[ksh stdout] Expected 'arr[0]: unset\narr[1]: unset\narr[2]: unset\narr[3]: set ... []\narr[4]: set ... [foo]\n' Got ''
[ksh status] Expected 0, got 1

stdout:
stderr: 
E: ksh: <stdin>[2]: declare: inaccessible or not found
W: ksh: <stdin>[5]: {0..4}: unexpected '{'
toysh20 eval -- "$(declare -p arr)" (restore arrays w/ unset elements)

[toysh stdout] Expected 'arr[0]: unset\narr[1]: unset\narr[2]: unset\narr[3]: set ... []\narr[4]: set ... [foo]\n' Got ''
[toysh status] Expected 0, got 2

stdout:
stderr: 
main: line 1: sh: syntax error: 1
sush20 eval -- "$(declare -p arr)" (restore arrays w/ unset elements)

[sush stdout] Expected 'arr[0]: unset\narr[1]: unset\narr[2]: unset\narr[3]: set ... []\narr[4]: set ... [foo]\n' Got 'arr[0]: set ... [1]\narr[1]: set ... [2]\narr[2]: set ... [3]\narr[3]: set ... []\narr[4]: set ... []\n'

stdout:
arr[0]: set ... [1]
arr[1]: set ... [2]
arr[2]: set ... [3]
arr[3]: set ... []
arr[4]: set ... []
stderr:
mksh21 declare -p UNDEF (and typeset) -- prints something to stderr

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

[ksh stdout] Expected 'declare -rx x="42"\ndeclare -rx x="42"\n 2 de\n 2 ty\n 4 total\n' Got 'typeset -x -r x=42\n 1 de\n 0 ty\n 1 total\n'

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

[toysh stdout] Expected 'declare -rx x="42"\ndeclare -rx x="42"\n 2 de\n 2 ty\n 4 total\n' Got 'declare -x x="42"\n 2 de\n 1 ty\n 3 total\n'

stdout:
declare -x x="42"
 2 de
 1 ty
 3 total
stderr:
sh: readonly: No such file or directory
sush21 declare -p UNDEF (and typeset) -- prints something to stderr

[sush stdout] Expected 'declare -rx x="42"\ndeclare -rx x="42"\n 2 de\n 2 ty\n 4 total\n' Got 'declare -r x=42\ndeclare -r x=42\n 1 de\n 1 ty\n 2 total\n'

stdout:
declare -r x=42
declare -r x=42
  1 de
  1 ty
  2 total
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: x: readonly variable
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:
toysh22 typeset -f

[toysh stdout] Expected '1\n1\n0\n', got '127\n127\n127\n'

stdout:
127
127
127
stderr:
sh: typeset: No such file or directory
sh: typeset: No such file or directory
sh: typeset: No such file or directory
sush22 typeset -f

[sush stdout] Expected '1\n1\n0\n', got '0\n0\n0\n'

stdout:
0
0
0
stderr:
mksh23 typeset -p

stdout:
0
0
0
stderr:
ksh23 typeset -p

[ksh stdout] Expected '1\n1\n0\n', got '0\n0\n0\n'

stdout:
0
0
0
stderr:
toysh23 typeset -p

[toysh stdout] Expected '1\n1\n0\n', got '127\n127\n127\n'

stdout:
127
127
127
stderr:
sh: typeset: No such file or directory
sh: typeset: No such file or directory
sh: typeset: No such file or directory
bash24 typeset -r makes a string readonly

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

stdout:
stderr: 
mksh: <stdin>[4]: read-only: s1
ksh24 typeset -r makes a string readonly

[ksh status] Expected 1, got 2

stdout:
stderr: 
E: ksh: <stdin>[4]: read-only: s1
toysh24 typeset -r makes a string readonly

[toysh stdout] Expected u'', got 'status=0\nstatus=0\nstatus=0\nstatus=0\nstatus=0\nstatus=0\n'
[toysh status] Expected 1, got 0

stdout:
status=0
status=0
status=0
status=0
status=0
status=0
stderr:
sh: typeset: No such file or directory
sh: typeset: No such file or directory
sush24 typeset -r makes a string readonly

[sush stdout] Expected u'', got 'status=1\nstatus=1\nstatus=1\nstatus=1\nstatus=0\nstatus=0\n'
[sush status] Expected 1, got 0

stdout:
status=1
status=1
status=1
status=1
status=0
status=0
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: s1: readonly variable
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: s2: readonly variable
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 9: s1: readonly variable
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 11: s2: readonly variable
brush24 typeset -r makes a string readonly

[brush stdout] Expected u'', got 'status=1\nstatus=1\nstatus=1\nstatus=1\nstatus=1\nstatus=1\n'
[brush status] Expected 1, got 0

stdout:
status=1
status=1
status=1
status=1
status=1
status=1
stderr:
ERROR error: cannot mutate readonly variable
ERROR error: cannot mutate readonly variable
ERROR error: cannot mutate readonly variable
ERROR error: cannot mutate readonly variable
ERROR cannot mutate readonly variable
ERROR cannot mutate readonly variable
bash25 typeset -ar makes it readonly

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

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: '(' unexpected
toysh25 typeset -ar makes it readonly

[toysh status] Expected 1, got 2

stdout:
stderr: 
main: line 1: sh: syntax error: )
sush25 typeset -ar makes it readonly

[sush stdout] Expected u'', got 'status=1\nstatus=1\nstatus=1\nstatus=1\nstatus=0\nstatus=0\n'
[sush status] Expected 1, got 0

stdout:
status=1
status=1
status=1
status=1
status=0
status=0
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: array1: readonly variable
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: array2: readonly variable
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 9: array1: readonly variable
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 11: array2: readonly variable
brush25 typeset -ar makes it readonly

[brush stdout] Expected u'', got 'status=1\nstatus=1\nstatus=1\nstatus=1\nstatus=1\nstatus=1\n'
[brush status] Expected 1, got 0

stdout:
status=1
status=1
status=1
status=1
status=1
status=1
stderr:
ERROR error: cannot mutate readonly variable
ERROR error: cannot mutate readonly variable
ERROR error: cannot mutate readonly variable
ERROR error: cannot mutate readonly variable
ERROR cannot mutate readonly variable
ERROR cannot mutate readonly variable
toysh26 typeset -x makes it exported

[toysh stdout] Expected 'lib/\n', got 'None\n'

stdout:
None
stderr:
sh: typeset: No such file or directory
sush26 typeset -x makes it exported

[sush stdout] Expected 'lib/\n', got 'None\n'

stdout:
None
stderr:
toysh27 Multiple assignments / array assignments on a line

[toysh stdout] Expected '1 2 3\n', got '\n'

stdout:
stderr: 
sh: b[0+0]=2: No such file or directory
bash28 Env bindings shouldn't contain array assignments

stdout:
1
None
3
stderr:
bash: line 1: `b[0]': not a valid identifier
mksh28 Env bindings shouldn't contain array assignments

stdout:
1
2
3
stderr:
ksh28 Env bindings shouldn't contain array assignments

[ksh stdout] Expected u'', got '1\n2\n3\n'
[ksh status] Expected 2, got 0

stdout:
1
2
3
stderr:
toysh28 Env bindings shouldn't contain array assignments

[toysh status] Expected 2, got 127

stdout:
stderr: 
sh: b[0]=2: No such file or directory
sush28 Env bindings shouldn't contain array assignments

[sush stdout] Expected u'', got '1\n\n3\n'
[sush status] Expected 2, got 0

stdout:
1

3
stderr:
brush28 Env bindings shouldn't contain array assignments

[brush stdout] Expected u'', got '1\n2\n3\n'
[brush status] Expected 2, got 0

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

stdout:
x
stderr:
bash: 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'
ksh29 syntax error in array assignment

[ksh status] Expected 2, got 1

stdout:
stderr: 
W: ksh: <stdin>[1]: 0+: unexpected 'end of expression'
toysh29 syntax error in array assignment

[toysh stdout] Expected u'', got '\n'
[toysh status] Expected 2, got 0

stdout:
stderr: 
sh: b[0+]=y: No such file or directory
sush29 syntax error in array assignment

[sush stdout] Expected u'', got 'x\n'
[sush status] Expected 2, got 0

stdout:
x
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: 0+: syntax error: operand expected (error token is "+")
brush29 syntax error in array assignment

[brush stdout] Expected u'', got 'x\n'
[brush status] Expected 2, got 0

stdout:
x
stderr:
ERROR error: arithmetic evaluation error: failed to parse expression: '0+'
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 '"'
ksh30 declare -g (bash-specific; bash-completion uses it)

[ksh stdout] Expected "['42', '']\n['bar', '']\n['ev2']\n", got "['', '']\n"
[ksh status] Expected 0, got 1

stdout:
['', '']
stderr:
E: ksh: <stdin>[14]: declare: inaccessible or not found
E: ksh: <stdin>[14]: declare: inaccessible or not found
E: ksh: <stdin>[14]: declare: inaccessible or not found
W: ksh: <stdin>[14]: "foo": unexpected '"'
W: ksh: <stdin>[16]: "foo": unexpected '"'
toysh30 declare -g (bash-specific; bash-completion uses it)

[toysh stdout] Expected "['42', '']\n['bar', '']\n['ev2']\n", got "['', '99']\n['', '']\n['']\n"

stdout:
['', '99']
['', '']
['']
stderr:
declare: Unknown option 'g' (see "declare --help")
declare: Unknown option 'g' (see "declare --help")
sh: dict[foo]=bar: No such file or directory
sh: localdict[spam]=Eggs: No such file or directory
declare: Unknown option 'g' (see "declare --help")
sh: ev[ev1]=ev2: No such file or directory
sush30 declare -g (bash-specific; bash-completion uses it)

[sush stdout] Expected "['42', '']\n['bar', '']\n['ev2']\n", got "['', '']\n['', '']\n['ev2']\n"

stdout:
['', '']
['', '']
['ev2']
stderr:
toysh31 myvar=typeset (another form of dynamic assignment)

[toysh stdout] Expected 'a\n', got 'a b\n'

stdout:
a b
stderr:
sh: typeset: No such file or directory
sush31 myvar=typeset (another form of dynamic assignment)

[sush stdout] Expected 'a\n', got 'a b\n'

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

[brush stdout] Expected 'a\n', got 'a b\n'

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

stdout:
a b
stderr:
bash32 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:
ksh32 dynamic array parsing is not allowed

[ksh stdout] Expected "status=2\n['']\n", got "status=0\n['(1 2 3)']\n"

stdout:
status=0
['(1 2 3)']
stderr:
toysh32 dynamic array parsing is not allowed

[toysh stdout] Expected "status=2\n['']\n", got "status=127\n['']\n"

stdout:
status=127
['']
stderr:
sh: typeset: No such file or directory
sush32 dynamic array parsing is not allowed

[sush stdout] Expected "status=2\n['']\n", got "status=0\n['']\n"

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

[brush stdout] Expected "status=2\n['']\n", got "status=0\n['']\n"

stdout:
status=0
['']
stderr:
toysh33 dynamic flag in array in assign builtin

[toysh stdout] Expected 'foo=F\nbar=B\nF\nB\n', got ''
[toysh status] Expected 0, got 2

stdout:
stderr: 
sh: typeset: No such file or directory
main: line 2: sh: syntax error: unused1
sush33 dynamic flag in array in assign builtin

[sush stdout] Expected 'foo=F\nbar=B\nF\nB\n', got 'foo=\nbar=\nNone\nNone\n'

stdout:
foo=
bar=
None
None
stderr:
brush33 dynamic flag in array in assign builtin

[brush stdout] Expected 'foo=F\nbar=B\nF\nB\n', got 'foo=\nbar=\nF=\nB=\n'

stdout:
foo=
bar=
F=
B=
stderr:
toysh34 typeset +x

[toysh stdout] Expected 'E\nNone\n', got 'E\nE\n'

stdout:
E
E
stderr:
sh: typeset: No such file or directory
sush34 typeset +x

[sush stdout] Expected 'E\nNone\n', got 'E\nE2\n'

stdout:
E
E2
stderr:
bash35 typeset +r removes read-only attribute (TODO: documented in bash to do nothing)

stdout:
r=r1
r=r1
r=r1
stderr:
bash: line 4: typeset: r: readonly variable
bash: 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
ksh35 typeset +r removes read-only attribute (TODO: documented in bash to do nothing)

[ksh stdout] Expected 'r=r1\nr=r2\nr=r3\n', got 'r=r1\nr=r1\n'
[ksh status] Expected 0, got 2

stdout:
r=r1
r=r1
stderr:
E: ksh: <stdin>[4]: typeset: read-only: r
E: ksh: <stdin>[7]: read-only: r
toysh35 typeset +r removes read-only attribute (TODO: documented in bash to do nothing)

[toysh stdout] Expected 'r=r1\nr=r2\nr=r3\n', got 'r=\nr=\nr=r3\n'

stdout:
r=
r=
r=r3
stderr:
sh: readonly: No such file or directory
sh: typeset: No such file or directory
sush35 typeset +r removes read-only attribute (TODO: documented in bash to do nothing)

[sush stdout] Expected 'r=r1\nr=r2\nr=r3\n', got 'r=r1\nr=r1\nr=r1\n'

stdout:
r=r1
r=r1
r=r1
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: r: readonly variable
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: r: readonly variable
brush35 typeset +r removes read-only attribute (TODO: documented in bash to do nothing)

[brush stdout] Expected 'r=r1\nr=r2\nr=r3\n', got 'r=r1\nr=r1\nr=r1\n'

stdout:
r=r1
r=r1
r=r1
stderr:
ERROR cannot mutate readonly variable
ERROR error: cannot mutate readonly variable
mksh36 function name with /

stdout:
status=127
stderr:
mksh: <stdin>[2]: declare: not found
ksh36 function name with /

[ksh stdout] Expected 'ble/foo\nstatus=0\n', got 'status=127\n'

stdout:
status=127
stderr:
E: ksh: <stdin>[2]: declare: inaccessible or not found
toysh36 function name with /

[toysh stdout] Expected 'ble/foo\nstatus=0\n', got 'status=1\n'

stdout:
status=1
stderr:
declare: Unknown option 'F' (see "declare --help")
sush36 function name with /

[sush stdout] Expected 'ble/foo\nstatus=0\n', got 'status=0\n'

stdout:
status=0
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: ()
toysh37 invalid var name

[toysh status] Expected 1, got 127

stdout:
stderr: 
sh: typeset: No such file or directory
sush37 invalid var name

[sush status] Expected 1, got 0

stdout:
stderr: 
brush37 invalid var name

[brush status] Expected 1, got 0

stdout:
stderr: 
mksh38 unset and shell funcs

stdout:
bar
bar
stderr:
mksh: <stdin>[7]: declare: not found
mksh: <stdin>[9]: declare: not found
ksh38 unset and shell funcs

[ksh stdout] Expected 'bar\ndeclare -f foo\n', got 'bar\nbar\n'
[ksh status] Expected 127, got 0

stdout:
bar
bar
stderr:
E: ksh: <stdin>[7]: declare: inaccessible or not found
E: ksh: <stdin>[9]: declare: inaccessible or not found
toysh38 unset and shell funcs

[toysh stdout] Expected 'bar\ndeclare -f foo\n', got 'bar\n'
[toysh status] Expected 127, got -11

stdout:
bar
stderr:
declare: Unknown option 'F' (see "declare --help")
sush38 unset and shell funcs

[sush stdout] Expected 'bar\ndeclare -f foo\n', got 'bar\ndeclare - $="3654226"\ndeclare - BASHPID="3654226"\ndeclare - BASH_ARGC=()\ndeclare - BASH_ARGV=()\ndeclare - BASH_CMDS=([echo]="/usr/bin/echo" )\ndeclare - BASH_COMMAND="declare -F"\ndeclare - BASH_LINENO=()\ndeclare - BASH_SOURCE=()\ndeclare - BASH_SUBSHELL="0"\ndeclare -r BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")\ndeclare - BASH_VERSION="1.1.8(rusty_bash)-release"\ndeclare - DIRSTACK=()\ndeclare - EPOCHREALTIME\ndeclare - EPOCHSECONDS\ndeclare - FUNCNAME=()\ndeclare - HISTFILE="//.sush_history"\ndeclare - HISTFILESIZE="2000"\ndeclare - HOME="/"\ndeclare - HOSTTYPE="x86_64"\ndeclare - IFS="$\' \t\\n\'"\ndeclare - LINENO="7"\ndeclare - MACHTYPE="x86_64-unknown-linux"\ndeclare - OPTIND="1"\ndeclare - OSTYPE="linux"\ndeclare - PATH="/home/andy/git/oils-for-unix/oils/spec/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/andy/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin/"\ndeclare - PIPESTATUS=([0]="0")\ndeclare - PS4="+ "\ndeclare - RANDOM\ndeclare - SECONDS\ndeclare - SRANDOM\ndeclare -r UID="1000"\ndeclare - foo() {\n echo bar\n}\ndeclare - $="3654226"\ndeclare - BASHPID="3654226"\ndeclare - BASH_ARGC=()\ndeclare - BASH_ARGV=()\ndeclare - BASH_CMDS=([echo]="/usr/bin/echo" )\ndeclare - BASH_COMMAND="declare -F"\ndeclare - BASH_LINENO=()\ndeclare - BASH_SOURCE=()\ndeclare - BASH_SUBSHELL="0"\ndeclare -r BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")\ndeclare - BASH_VERSION="1.1.8(rusty_bash)-release"\ndeclare - DIRSTACK=()\ndeclare - EPOCHREALTIME\ndeclare - EPOCHSECONDS\ndeclare - FUNCNAME=()\ndeclare - HISTFILE="//.sush_history"\ndeclare - HISTFILESIZE="2000"\ndeclare - HOME="/"\ndeclare - HOSTTYPE="x86_64"\ndeclare - IFS="$\' \t\\n\'"\ndeclare - LINENO="9"\ndeclare - MACHTYPE="x86_64-unknown-linux"\ndeclare - OPTIND="1"\ndeclare - OSTYPE="linux"\ndeclare - PATH="/home/andy/git/oils-for-unix/oils/spec/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/andy/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin/"\ndeclare - PIPESTATUS=([0]="0")\ndeclare - PS4="+ "\ndeclare - RANDOM\ndeclare - SECONDS\ndeclare - SRANDOM\ndeclare -r UID="1000"\n'

stdout:
bar
declare - $="3654226"
declare - BASHPID="3654226"
declare - BASH_ARGC=()
declare - BASH_ARGV=()
declare - BASH_CMDS=([echo]="/usr/bin/echo" )
declare - BASH_COMMAND="declare -F"
declare - BASH_LINENO=()
declare - BASH_SOURCE=()
declare - BASH_SUBSHELL="0"
declare -r BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")
declare - BASH_VERSION="1.1.8(rusty_bash)-release"
declare - DIRSTACK=()
declare - EPOCHREALTIME
declare - EPOCHSECONDS
declare - FUNCNAME=()
declare - HISTFILE="//.sush_history"
declare - HISTFILESIZE="2000"
declare - HOME="/"
declare - HOSTTYPE="x86_64"
declare - IFS="$' 	\n'"
declare - LINENO="7"
declare - MACHTYPE="x86_64-unknown-linux"
declare - OPTIND="1"
declare - OSTYPE="linux"
declare - PATH="/home/andy/git/oils-for-unix/oils/spec/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/andy/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin/"
declare - PIPESTATUS=([0]="0")
declare - PS4="+ "
declare - RANDOM
declare - SECONDS
declare - SRANDOM
declare -r UID="1000"
declare - foo() {
  echo bar
}
declare - $="3654226"
declare - BASHPID="3654226"
declare - BASH_ARGC=()
declare - BASH_ARGV=()
declare - BASH_CMDS=([echo]="/usr/bin/echo" )
declare - BASH_COMMAND="declare -F"
declare - BASH_LINENO=()
declare - BASH_SOURCE=()
declare - BASH_SUBSHELL="0"
declare -r BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")
declare - BASH_VERSION="1.1.8(rusty_bash)-release"
declare - DIRSTACK=()
declare - EPOCHREALTIME
declare - EPOCHSECONDS
declare - FUNCNAME=()
declare - HISTFILE="//.sush_history"
declare - HISTFILESIZE="2000"
declare - HOME="/"
declare - HOSTTYPE="x86_64"
declare - IFS="$' 	\n'"
declare - LINENO="9"
declare - MACHTYPE="x86_64-unknown-linux"
declare - OPTIND="1"
declare - OSTYPE="linux"
declare - PATH="/home/andy/git/oils-for-unix/oils/spec/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/home/andy/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/andy/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/andy/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/andy/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/andy/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/andy/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/home/andy/git/oils-for-unix/oils/../oil_DEPS/spec-bin:/home/andy/wedge/oils-for-unix.org/pkg/souffle/2.4.1/bin:/wedge/oils-for-unix.org/pkg/uftrace/0.13/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/bloaty/1.1:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/andy/bin:/wedge/oils-for-unix.org/pkg/python2/2.7.18/bin/"
declare - PIPESTATUS=([0]="0")
declare - PS4="+ "
declare - RANDOM
declare - SECONDS
declare - SRANDOM
declare -r UID="1000"
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 11: foo: command not found
brush38 unset and shell funcs

[brush status] Expected 127, got 0

stdout:
bar
declare -f foo
stderr:
foo: command not found