Results for assign-extended.test.sh

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

Details on runs that didn't PASS

dash0 local -a

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

stdout:
stderr: 
dash: 2: Syntax error: "(" unexpected (expecting "}")
ash0 local -a

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

stdout:
stderr: 
ash: syntax error: unexpected "(" (expecting "}")
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: )
dash1 declare -a

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

stdout:
stderr: 
dash: 1: Syntax error: "(" unexpected
ash1 declare -a

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

stdout:
stderr: 
ash: syntax error: unexpected "("
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: )
dash2 declare -f exit code indicates function existence

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

stdout:
127
127
127
stderr:
dash: 2: declare: not found
dash: 6: declare: not found
dash: 10: declare: not found
ash2 declare -f exit code indicates function existence

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

stdout:
127
127
127
stderr:
ash: declare: not found
ash: declare: not found
ash: declare: not found
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:
dash3 declare -F prints function names

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

stdout:
stderr: 
dash: 7: declare: not found
ash3 declare -F prints function names

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

stdout:
stderr: 
ash: declare: not found
zsh3 declare -F prints function names

[zsh stdout] Expected 'declare -f __ec\ndeclare -f _ab\ndeclare -f add\ndeclare -f div\ndeclare -f ek\n' Got ''

stdout:
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 - $="3311304"\ndeclare - BASHPID="3311304"\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 - $="3311304"
declare - BASHPID="3311304"
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:
dash4 declare -F with shopt -s extdebug prints more info

[dash 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: 
dash: 3: source: not found
dash: 5: shopt: not found
dash: 9: declare: not found
dash: 12: declare: not found
dash: 13: declare: not found
ash4 declare -F with shopt -s extdebug prints more info

[ash 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: 
ash: shopt: not found
ash: declare: not found
ash: declare: not found
ash: declare: not found
zsh4 declare -F with shopt -s extdebug prints more info

[zsh 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: 
zsh: command not found: shopt
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 - $="3311551"\ndeclare - BASHPID="3311551"\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 - $="3311551"
declare - BASHPID="3311551"
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:
dash5 declare -F with shopt -s extdebug and main file

[dash 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: 
/home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: 1: /home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: source: not found
/home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: 3: /home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: shopt: not found
/home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: 7: /home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: declare: not found
/home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: 10: /home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: declare: not found
/home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: 12: /home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: declare: not found
ash5 declare -F with shopt -s extdebug and main file

[ash 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: 
/home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: line 3: shopt: not found
/home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: line 7: declare: not found
/home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: line 10: declare: not found
/home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh: line 12: declare: not found
zsh5 declare -F with shopt -s extdebug and main file

[zsh 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: 
/home/andy/git/oils-for-unix/oils/spec/testdata/extdebug.sh:3: command not found: shopt
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 - $="3311864"\ndeclare - BASHPID="3311864"\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 - $="3311864"
declare - BASHPID="3311864"
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:
dash6 declare -p var (exit status)

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

stdout:
127
127
127
stderr:
dash: 2: declare: not found
dash: 6: declare: not found
dash: 10: declare: not found
ash6 declare -p var (exit status)

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

stdout:
127
127
127
stderr:
ash: declare: not found
ash: declare: not found
ash: declare: not found
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:
dash7 declare

[dash 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]\nreadonly test_var2='222'\n[export]\nexport test_var3='333'\n[local]\n"

stdout:
[declare]
[readonly]
readonly test_var2='222'
[export]
export test_var3='333'
[local]
stderr:
dash: 4: declare: not found
dash: 9: declare: not found
ash7 declare

[ash 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]\nreadonly test_var2='222'\n[export]\nexport test_var3='333'\n[local]\n"

stdout:
[declare]
[readonly]
readonly test_var2='222'
[export]
export test_var3='333'
[local]
stderr:
ash: declare: not found
ash: declare: not found
zsh7 declare

[zsh 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 ''

stdout:
stderr: 
zsh: bad option: -n
grep: (standard input): binary file matches
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:
dash8 declare -p

[dash 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]\n"

stdout:
[declare]
[readonly]
readonly test_var2='222'
[export]
export test_var3='333'
[local]
stderr:
dash: 4: declare: not found
dash: 9: declare: not found
dash: 15: local: -p: bad variable name
ash8 declare -p

[ash 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]\n"

stdout:
[declare]
[readonly]
readonly test_var2='222'
[export]
export test_var3='333'
[local]
stderr:
ash: declare: not found
ash: declare: not found
ash: local: line 15: -p: bad variable name
zsh8 declare -p

[zsh 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 ''

stdout:
stderr: 
zsh: bad option: -n
grep: (standard input): binary file matches
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: 
dash9 declare -p doesn't print binary data, but can be loaded into bash

[dash 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 ''
[dash status] Expected 0, got 2

stdout:
stderr: 
dash: 13: Syntax error: "(" unexpected
ash9 declare -p doesn't print binary data, but can be loaded into bash

[ash 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 ''
[ash status] Expected 0, got 2

stdout:
stderr: 
ash: syntax error: unexpected "("
zsh9 declare -p doesn't print binary data, but can be loaded into bash

[zsh 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 "typeset s1=foo\ntypeset s2='foo bar'\ntypeset s3=\x1f\ntypeset s4=\xfe\xff\ntypeset -a a\na=( foo 'foo bar' \x1f \xfe\xff )\n---\nfoo foo bar\n 1f 20 fe ff\nbash=0\n"

stdout:
"typeset s1=foo\ntypeset s2='foo bar'\ntypeset s3=\x1f\ntypeset s4=\xfe\xff\ntypeset -a a\na=( foo 'foo bar' \x1f \xfe\xff )\n---\nfoo foo bar\n 1f 20 fe ff\nbash=0\n"
stderr:
zsh: no matches found: [foo]=foo bar
declare: no such variable: A
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
dash10 declare -p var

[dash 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]\n"

stdout:
[declare]
[readonly]
readonly test_var2='222'
[export]
export test_var3='333'
[local]
stderr:
dash: 4: declare: not found
dash: 9: declare: not found
dash: 15: local: -p: bad variable name
ash10 declare -p var

[ash 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:
ash: declare: not found
ash: declare: not found
ash: readonly: line 11: test_var{0..5}: bad variable name
zsh10 declare -p var

[zsh 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]\ntypeset test_var1=111\ntypeset -r test_var2=222\ntypeset -x test_var3=333\ntypeset test_var5=555\n[readonly]\ntypeset test_var1=111\ntypeset -r test_var2=222\ntypeset -x test_var3=333\ntypeset test_var5=555\n[export]\ntypeset test_var1=111\ntypeset -r test_var2=222\ntypeset -x test_var3=333\ntypeset test_var5=555\n[local]\ntypeset test_var1=111\ntypeset -r test_var2=222\ntypeset -x test_var3=333\ntypeset test_var5=555\n'

stdout:
[declare]
typeset test_var1=111
typeset -r test_var2=222
typeset -x test_var3=333
typeset test_var5=555
[readonly]
typeset test_var1=111
typeset -r test_var2=222
typeset -x test_var3=333
typeset test_var5=555
[export]
typeset test_var1=111
typeset -r test_var2=222
typeset -x test_var3=333
typeset test_var5=555
[local]
typeset test_var1=111
typeset -r test_var2=222
typeset -x test_var3=333
typeset test_var5=555
stderr:
zsh: bad option: -n
f1:declare:4: no such variable: test_var0
f1:declare:4: no such variable: test_var4
f1:readonly:6: no such variable: test_var0
f1:readonly:6: no such variable: test_var4
f1:export:8: no such variable: test_var0
f1:export:8: no such variable: test_var4
f1:local:10: no such variable: test_var0
f1:local:10: no such variable: test_var4
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:
dash11 declare -p arr

[dash 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 ''
[dash status] Expected 0, got 2

stdout:
stderr: 
dash: 1: Syntax error: "(" unexpected
ash11 declare -p arr

[ash 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 ''
[ash status] Expected 0, got 2

stdout:
stderr: 
ash: syntax error: unexpected "("
zsh11 declare -p arr

[zsh 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 "typeset -a test_arr1\ntest_arr1=( )\ntypeset -a test_arr2\ntest_arr2=( )\ntypeset -A test_arr3\ntest_arr3=( )\ntypeset -a test_arr4\ntest_arr4=( 1 2 3 )\ntypeset -a test_arr5\ntest_arr5=( 1 2 3 )\ntypeset -a test_arr7\ntest_arr7=( '' '' foo )\n"
[zsh status] Expected 0, got 1

stdout:
typeset -a test_arr1
test_arr1=(  )
typeset -a test_arr2
test_arr2=(  )
typeset -A test_arr3
test_arr3=( )
typeset -a test_arr4
test_arr4=( 1 2 3 )
typeset -a test_arr5
test_arr5=( 1 2 3 )
typeset -a test_arr7
test_arr7=( '' '' foo )
stderr:
zsh: no matches found: [a]=1
declare: no such variable: test_arr6
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:
dash12 declare -p foo=bar doesn't make sense

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

stdout:
status=127
status=127
stderr:
dash: 3: declare: not found
dash: 7: declare: not found
ash12 declare -p foo=bar doesn't make sense

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

stdout:
status=127
status=127
stderr:
ash: declare: not found
ash: declare: not found
zsh12 declare -p foo=bar doesn't make sense

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

stdout:
status=1
status=1
typeset a=b
stderr:
declare: no such variable: foo
declare: no such variable: foo
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:
dash13 declare -pnrx

[dash 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:
dash: 4: declare: not found
dash: 9: declare: not found
dash: 11: declare: not found
dash: 13: declare: not found
ash13 declare -pnrx

[ash 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:
ash: declare: not found
ash: declare: not found
ash: declare: not found
ash: declare: not found
zsh13 declare -pnrx

[zsh 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]\ntypeset -r test_var2=222\n[declare -px]\ntypeset -x test_var3=333\n'

stdout:
[declare -pn]
[declare -pr]
typeset -r test_var2=222
[declare -px]
typeset -x test_var3=333
stderr:
zsh: bad option: -n
f1:4: bad option: -n
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:
dash14 declare -paA

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

stdout:
stderr: 
dash: 1: Syntax error: "(" unexpected
ash14 declare -paA

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

stdout:
stderr: 
ash: syntax error: unexpected "("
zsh14 declare -paA

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

stdout:
[declare -pa]
typeset -a test_var6
test_var6=(  )
[declare -pA]
typeset -A test_var7
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
dash15 declare -pnrx var

[dash 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:
dash: 4: declare: not found
dash: 9: declare: not found
dash: 11: declare: not found
dash: 13: declare: not found
ash15 declare -pnrx var

[ash 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:
ash: declare: not found
ash: declare: not found
ash: declare: not found
ash: declare: not found
zsh15 declare -pnrx var

[zsh 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]\ntypeset test_var1=111\ntypeset -r test_var2=222\ntypeset -x test_var3=333\ntypeset test_var5=555\n[declare -px]\ntypeset test_var1=111\ntypeset -r test_var2=222\ntypeset -x test_var3=333\ntypeset test_var5=555\n'

stdout:
[declare -pn]
[declare -pr]
typeset test_var1=111
typeset -r test_var2=222
typeset -x test_var3=333
typeset test_var5=555
[declare -px]
typeset test_var1=111
typeset -r test_var2=222
typeset -x test_var3=333
typeset test_var5=555
stderr:
zsh: bad option: -n
f1:4: bad option: -n
f1:declare:6: no such variable: test_var0
f1:declare:6: no such variable: test_var4
f1:declare:8: no such variable: test_var0
f1:declare:8: no such variable: test_var4
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:
dash16 declare -pg

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

stdout:
stderr: 
dash: 5: declare: not found
ash16 declare -pg

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

stdout:
stderr: 
ash: declare: not found
zsh16 declare -pg

[zsh stdout] Expected 'declare -- test_var1=global\n', got ''

stdout:
stderr: 
grep: (standard input): binary file matches
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:
dash17 declare -pg var

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

stdout:
stderr: 
dash: 5: declare: not found
ash17 declare -pg var

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

stdout:
stderr: 
ash: declare: not found
zsh17 declare -pg var

[zsh stdout] Expected 'declare -- test_var1=global\n', got 'typeset test_var1=local\n'

stdout:
typeset 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:
dash18 ble.sh: eval -- "$(declare -p var arr)"

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

stdout:
stderr: 
dash: 3: Syntax error: "(" unexpected (expecting "}")
ash18 ble.sh: eval -- "$(declare -p var arr)"

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

stdout:
stderr: 
ash: syntax error: unexpected "(" (expecting "}")
zsh18 ble.sh: eval -- "$(declare -p var arr)"

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

stdout:
sum=
stderr:
zsh: arr: assignment to invalid subscript range
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:
dash19 declare -p and value.Undef

[dash stdout] Expected 'declare -- x\ndeclare -- x\n', got ''
[dash status] Expected 0, got 2

stdout:
stderr: 
dash: 1: declare: not found
dash: 2: declare: not found
dash: 4: Syntax error: "}" unexpected
ash19 declare -p and value.Undef

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

stdout:
stderr: 
ash: declare: not found
ash: declare: not found
ash: declare: not found
zsh19 declare -p and value.Undef

[zsh stdout] Expected 'declare -- x\ndeclare -- x\n', got "typeset x=''\ntypeset x=''\n"

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

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

stdout:
stderr: 
dash: 1: Syntax error: "(" unexpected
ash20 eval -- "$(declare -p arr)" (restore arrays w/ unset elements)

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

stdout:
stderr: 
ash: syntax error: unexpected "("
zsh20 eval -- "$(declare -p arr)" (restore arrays w/ unset elements)

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

stdout:
arr[0]: unset
arr[1]: set ... []
arr[2]: set ... []
arr[3]: set ... []
arr[4]: set ... [foo]
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:
dash21 declare -p UNDEF (and typeset) -- prints something to stderr

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

stdout:
 1 de
 1 ty
 2 total
stderr:
ash21 declare -p UNDEF (and typeset) -- prints something to stderr

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

stdout:
 1 de
 1 ty
 2 total
stderr:
zsh21 declare -p UNDEF (and typeset) -- prints something to stderr

[zsh stdout] Expected 'declare -rx x="42"\ndeclare -rx x="42"\n 2 de\n 2 ty\n 4 total\n' Got 'typeset -rx x=42\ntypeset -rx x=42\n'
[zsh status] Expected 0, got 1

stdout:
typeset -rx x=42
typeset -rx x=42
stderr:
wc: 'de ty': No such file or directory
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:
dash22 typeset -f

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

stdout:
127
127
127
stderr:
dash: 1: typeset: not found
dash: 5: typeset: not found
dash: 9: typeset: not found
ash22 typeset -f

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

stdout:
127
127
127
stderr:
ash: typeset: not found
ash: typeset: not found
ash: typeset: not found
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:
dash23 typeset -p

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

stdout:
127
127
127
stderr:
dash: 2: typeset: not found
dash: 6: typeset: not found
dash: 10: typeset: not found
ash23 typeset -p

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

stdout:
127
127
127
stderr:
ash: typeset: not found
ash: typeset: not found
ash: typeset: not found
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
dash24 typeset -r makes a string readonly

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

stdout:
status=0
status=0
status=127
status=127
status=0
status=0
stderr:
dash: 1: typeset: not found
dash: 2: typeset: not found
dash: 9: s1+=e: not found
dash: 11: s2+=f: not found
ash24 typeset -r makes a string readonly

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

stdout:
status=0
status=0
status=127
status=127
status=0
status=0
stderr:
ash: typeset: not found
ash: typeset: not found
ash: s1+=e: not found
ash: s2+=f: not found
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
dash25 typeset -ar makes it readonly

[dash status] Expected 1, got 2

stdout:
stderr: 
dash: 1: Syntax error: "(" unexpected
ash25 typeset -ar makes it readonly

[ash status] Expected 1, got 2

stdout:
stderr: 
ash: syntax error: unexpected "("
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
dash26 typeset -x makes it exported

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

stdout:
None
stderr:
dash: 1: typeset: not found
ash26 typeset -x makes it exported

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

stdout:
None
stderr:
ash: typeset: not found
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:
dash27 Multiple assignments / array assignments on a line

[dash stdout] Expected '1 2 3\n', got ''
[dash status] Expected 0, got 2

stdout:
stderr: 
dash: 1: b[0+0]=2: not found
dash: 2: Bad substitution
ash27 Multiple assignments / array assignments on a line

[ash stdout] Expected '1 2 3\n', got ''
[ash status] Expected 0, got 2

stdout:
stderr: 
ash: b[0+0]=2: not found
ash: syntax error: bad substitution
zsh27 Multiple assignments / array assignments on a line

[zsh stdout] Expected '1 2 3\n', got ''
[zsh status] Expected 0, got 1

stdout:
stderr: 
zsh: b: assignment to invalid subscript range
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
dash28 Env bindings shouldn't contain array assignments

[dash status] Expected 2, got 127

stdout:
stderr: 
dash: 1: b[0]=2: not found
ash28 Env bindings shouldn't contain array assignments

[ash status] Expected 2, got 127

stdout:
stderr: 
ash: b[0]=2: not found
zsh28 Env bindings shouldn't contain array assignments

[zsh status] Expected 2, got 1

stdout:
stderr: 
zsh: b: assignment to invalid subscript range
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 "+")
dash29 syntax error in array assignment

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

stdout:
stderr: 
dash: 1: b[0+]=y: not found
ash29 syntax error in array assignment

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

stdout:
stderr: 
ash: b[0+]=y: not found
zsh29 syntax error in array assignment

[zsh status] Expected 2, got 1

stdout:
stderr: 
zsh: bad math expression: operand expected at end of string
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+'
dash30 declare -g (bash-specific; bash-completion uses it)

[dash stdout] Expected "['42', '']\n['bar', '']\n['ev2']\n", got "['', '']\n"
[dash status] Expected 0, got 2

stdout:
['', '']
stderr:
dash: 2: declare: not found
dash: 3: declare: not found
dash: 5: declare: not found
dash: 6: dict[foo]=bar: not found
dash: 8: declare: not found
dash: 9: localdict[spam]=Eggs: not found
dash: 1: eval: declare: not found
dash: 12: ev[ev1]=ev2: not found
dash: 16: Bad substitution
ash30 declare -g (bash-specific; bash-completion uses it)

[ash stdout] Expected "['42', '']\n['bar', '']\n['ev2']\n", got "['', '']\n"
[ash status] Expected 0, got 2

stdout:
['', '']
stderr:
ash: declare: not found
ash: declare: not found
ash: declare: not found
ash: dict[foo]=bar: not found
ash: declare: not found
ash: localdict[spam]=Eggs: not found
ash: eval: line 11: declare: not found
ash: ev[ev1]=ev2: not found
ash: syntax error: bad substitution
zsh30 declare -g (bash-specific; bash-completion uses it)

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

stdout:
['42', '']
stderr:
zsh: bad math expression: operand expected at `"spam"'
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:
dash31 myvar=typeset (another form of dynamic assignment)

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

stdout:
a b
stderr:
dash: 3: typeset: not found
ash31 myvar=typeset (another form of dynamic assignment)

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

stdout:
a b
stderr:
ash: typeset: not found
zsh31 myvar=typeset (another form of dynamic assignment)

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

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

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

stdout:
status=127
['']
stderr:
dash: 2: typeset: not found
ash32 dynamic array parsing is not allowed

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

stdout:
status=127
['']
stderr:
ash: typeset: not found
zsh32 dynamic array parsing is not allowed

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

stdout:
stderr: 
typeset: x: inconsistent type for assignment
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:
dash33 dynamic flag in array in assign builtin

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

stdout:
stderr: 
dash: 1: typeset: not found
dash: 2: Syntax error: "(" unexpected
ash33 dynamic flag in array in assign builtin

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

stdout:
stderr: 
ash: typeset: not found
ash: syntax error: unexpected "("
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:
dash34 typeset +x

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

stdout:
E
E
stderr:
dash: 3: typeset: not found
ash34 typeset +x

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

stdout:
E
E
stderr:
ash: typeset: not found
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
dash35 typeset +r removes read-only attribute (TODO: documented in bash to do nothing)

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

stdout:
r=r1
r=r1
stderr:
dash: 4: typeset: not found
dash: 7: r: is read only
ash35 typeset +r removes read-only attribute (TODO: documented in bash to do nothing)

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

stdout:
r=r1
r=r1
stderr:
ash: typeset: not found
ash: r: is read only
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
dash36 function name with /

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

stdout:
stderr: 
dash: 1: Syntax error: Bad function name
ash36 function name with /

stdout:
stderr: 
ash: syntax error: bad function name
zsh36 function name with /

stdout:
stderr: 
declare: not valid in this context: ble/foo
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: ()
dash37 invalid var name

[dash status] Expected 1, got 127

stdout:
stderr: 
dash: 1: typeset: not found
ash37 invalid var name

[ash status] Expected 1, got 127

stdout:
stderr: 
ash: typeset: not found
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: 
dash38 unset and shell funcs

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

stdout:
bar
bar
stderr:
dash: 7: declare: not found
dash: 9: declare: not found
ash38 unset and shell funcs

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

stdout:
bar
bar
stderr:
ash: declare: not found
ash: declare: not found
zsh38 unset and shell funcs

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

stdout:
bar
bar
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 - $="3321387"\ndeclare - BASHPID="3321387"\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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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 - $="3321387"\ndeclare - BASHPID="3321387"\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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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 - $="3321387"
declare - BASHPID="3321387"
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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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 - $="3321387"
declare - BASHPID="3321387"
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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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:/home/andy/git/oils-for-unix/oils/_tmp/shells:/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