311 passed, 33 OK, 14 not implemented, 14 BUG, 98 failed, 0 timeouts, 0 cases skipped 2 failed under osh
toysh | 0 Env value doesn't persist [toysh stdout] Expected 'foo\n--\n', got 'foo\n\n' stdout: foostderr: |
mksh | 2 Env binding can use preceding bindings, but not subsequent ones stdout: foo [][] bazstderr: |
ksh | 2 Env binding can use preceding bindings, but not subsequent ones [ksh stdout] Expected 'foo\n[foo][]\nbaz\n', got 'foo\n[][]\nbaz\n' stdout: foo [][] bazstderr: |
sush | 2 Env binding can use preceding bindings, but not subsequent ones [sush stdout] Expected 'foo\n[foo][]\nbaz\n', got 'foo\n[foo][baz]\nbaz\n' stdout: foo [foo][baz] bazstderr: |
dash | 7 Multiple temporary envs on the stack stdout: f [] [A] --- g() --- None None None None p --- f() --- None None None None Nonestderr: |
mksh | 7 Multiple temporary envs on the stack stdout: f [] [A] --- g() --- f [] [A] None p --- f() --- f [] [A] None Nonestderr: |
sush | 7 Multiple temporary envs on the stack [sush stdout] Expected 'f [] [A]\n--- g() ---\nf\n[]\n[A]\nNone\np\n--- f() ---\nf\nNone\nNone\nNone\nNone\n' Got 'f [] [A]\n--- g() ---\nNone\nNone\nNone\nNone\np\n--- f() ---\nNone\nNone\nNone\nNone\nNone\n' stdout: f [] [A] --- g() --- None None None None p --- f() --- None None None None Nonestderr: |
zsh | 9 Env binding not allowed before compound command stdout: stderr: zsh: parse error near `for' |
mksh | 9 Env binding not allowed before compound command stdout: stderr: mksh: <stdin>[1]: syntax error: 'do' unexpected |
ksh | 9 Env binding not allowed before compound command [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected 'do' |
zsh | 10 Trying to run keyword 'for' stdout: stderr: zsh: parse error near `for' |
sush | 10 Trying to run keyword 'for' [sush status] Expected 127, got 0 stdout: stderr: |
brush | 10 Trying to run keyword 'for' [brush status] Expected 127, got 2 stdout: stderr: [31mERROR[0m main: syntax error near token ` ' (line 1 col 12) |
bash | 14 Env binding in readonly/declare is NOT exported! (pitfall) stdout: v=None v2=stderr: |
toysh | 14 Env binding in readonly/declare is NOT exported! (pitfall) [toysh stdout] Expected 'v=None\nv2=foo\n', got 'v=\nv2=\n' stdout: v= v2=stderr: sh: readonly: No such file or directory sh: readonly: No such file or directory |
brush | 14 Env binding in readonly/declare is NOT exported! (pitfall) [brush stdout] Expected 'v=None\nv2=foo\n', got 'v=None\nv2=\n' stdout: v=None v2=stderr: |
zsh | 15 assignments / array assignments not interpreted after 'echo' stdout: stderr: zsh: no matches found: b[0]=2 |
bash | 16 dynamic local variables (and splitting) stdout: x='y a=b' a='' x='y' a='b'stderr: |
dash | 16 dynamic local variables (and splitting) stdout: x='y a=b' a='' x='y' a='b'stderr: |
ash | 16 dynamic local variables (and splitting) [ash stdout] Expected "x='y a=b'\na=''\nx='y a=b'\na=''\n", got "x='y a=b'\na=''\nx='y'\na='b'\n" stdout: x='y a=b' a='' x='y' a='b'stderr: |
mksh | 16 dynamic local variables (and splitting) stdout: x='y a=b' a='' x='y' a='b'stderr: |
ksh | 16 dynamic local variables (and splitting) [ksh stdout] Expected "x='y a=b'\na=''\nx='y a=b'\na=''\n", got "x='y a=b'\na=''\nx='y'\na='b'\n" stdout: x='y a=b' a='' x='y' a='b'stderr: |
toysh | 16 dynamic local variables (and splitting) [toysh stdout] Expected "x='y a=b'\na=''\nx='y a=b'\na=''\n", got "x='y a=b'\na=''\nx='y a=b'\na='b'\n" stdout: x='y a=b' a='' x='y a=b' a='b'stderr: |
sush | 16 dynamic local variables (and splitting) [sush stdout] Expected "x='y a=b'\na=''\nx='y a=b'\na=''\n", got "x=''\na=''\nx=''\na=''\n" stdout: x='' a='' x='' a=''stderr: |
brush | 16 dynamic local variables (and splitting) [brush stdout] Expected "x='y a=b'\na=''\nx='y a=b'\na=''\n", got "x=''\na=''\nx=''\na=''\n" stdout: x='' a='' x='' a=''stderr: |
dash | 18 'local x' does not set variable stdout: stderr: dash: 4: x: parameter not set |
ash | 18 'local x' does not set variable [ash status] Expected 1, got 2 stdout: stderr: ash: x: parameter not set |
zsh | 18 'local x' does not set variable stdout: stderr: |
toysh | 18 'local x' does not set variable [toysh status] Expected 1, got 0 stdout: stderr: set: bad -o nounset |
sush | 18 'local x' does not set variable [sush status] Expected 1, got 0 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: nounset: invalid option name |
brush | 18 'local x' does not set variable [brush status] Expected 1, got 0 stdout: stderr: |
dash | 19 'local -a x' does not set variable stdout: stderr: dash: 3: local: -a: bad variable name |
ash | 19 'local -a x' does not set variable [ash status] Expected 1, got 2 stdout: stderr: ash: local: line 3: -a: bad variable name |
zsh | 19 'local -a x' does not set variable stdout: stderr: |
toysh | 19 'local -a x' does not set variable [toysh status] Expected 1, got 0 stdout: stderr: set: bad -o nounset local: bad -a |
sush | 19 'local -a x' does not set variable [sush status] Expected 1, got 0 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: nounset: invalid option name |
brush | 19 'local -a x' does not set variable [brush status] Expected 1, got 0 stdout: stderr: |
dash | 20 'local x' and then array assignment stdout: stderr: dash: 3: x[3]=foo: not found dash: 4: Bad substitution |
ash | 20 'local x' and then array assignment [ash stdout] Expected 'foo\n', got '' [ash status] Expected 0, got 2 stdout: stderr: ash: x[3]=foo: not found ash: syntax error: bad substitution |
zsh | 20 'local x' and then array assignment stdout: ostderr: |
toysh | 20 'local x' and then array assignment [toysh stdout] Expected 'foo\n', got '\n' stdout: stderr: sh: x[3]=foo: No such file or directory |
dash | 21 'declare -A' and then dict assignment stdout: stderr: dash: 1: declare: not found dash: 3: foo[bar]=value: not found dash: 4: Bad substitution |
ash | 21 'declare -A' and then dict assignment [ash stdout] Expected 'value\n', got '' [ash status] Expected 0, got 2 stdout: stderr: ash: declare: not found ash: foo[bar]=value: not found ash: syntax error: bad substitution |
mksh | 21 'declare -A' and then dict assignment stdout: stderr: mksh: <stdin>[1]: declare: not found mksh: <stdin>[3]: "bar": unexpected '"' |
ksh | 21 'declare -A' and then dict assignment [ksh stdout] Expected 'value\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: <stdin>[1]: declare: inaccessible or not found W: ksh: <stdin>[3]: "bar": unexpected '"' |
toysh | 21 'declare -A' and then dict assignment [toysh stdout] Expected 'value\n', got '\n' stdout: stderr: sh: foo[bar]=value: No such file or directory |
toysh | 22 declare in an if statement [toysh stdout] Expected 'bar\neggs\n', got 'HI\n\nBAD\neggs\n' stdout: HI BAD eggsstderr: |
bash | 24 Reveal existence of "temp frame" (All shells disagree here!!!) [bash stdout] Expected 'x=temp-binding\nx=mutated-temp\nx=local\nx=global\nx=global\n' Got 'x=temp-binding\nx=mutated-temp\nx=local\nx=\nx=global\n' stdout: x=temp-binding x=mutated-temp x=local x= x=globalstderr: |
dash | 24 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x= x=globalstderr: |
ash | 24 Reveal existence of "temp frame" (All shells disagree here!!!) [ash stdout] Expected 'x=temp-binding\nx=mutated-temp\nx=local\nx=mutated-temp\nx=global\n' Got 'x=temp-binding\nx=mutated-temp\nx=local\nx=\nx=global\n' stdout: x=temp-binding x=mutated-temp x=local x= x=globalstderr: |
zsh | 24 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x= x=globalstderr: |
mksh | 24 Reveal existence of "temp frame" (All shells disagree here!!!) stdout: x=temp-binding x=mutated-temp x=local x=mutated-temp x=mutated-tempstderr: |
ksh | 24 Reveal existence of "temp frame" (All shells disagree here!!!) [ksh stdout] Expected 'x=temp-binding\nx=mutated-temp\nx=local\nx=mutated-temp\nx=global\n' Got 'x=temp-binding\nx=mutated-temp\nx=local\nx=global\nx=global\n' stdout: x=temp-binding x=mutated-temp x=local x=global x=globalstderr: |
toysh | 24 Reveal existence of "temp frame" (All shells disagree here!!!) [toysh stdout] Expected 'x=temp-binding\nx=mutated-temp\nx=local\nx=mutated-temp\nx=global\n' Got 'x=temp-binding\nx=mutated-temp\nx=local\nx=\nx=mutated-temp\n' stdout: x=temp-binding x=mutated-temp x=local x= x=mutated-tempstderr: |
sush | 24 Reveal existence of "temp frame" (All shells disagree here!!!) [sush stdout] Expected 'x=temp-binding\nx=mutated-temp\nx=local\nx=mutated-temp\nx=global\n' Got 'x=temp-binding\nx=mutated-temp\nx=local\nx=\nx=\n' stdout: x=temp-binding x=mutated-temp x=local x= x=stderr: |
brush | 24 Reveal existence of "temp frame" (All shells disagree here!!!) [brush stdout] Expected 'x=temp-binding\nx=mutated-temp\nx=local\nx=mutated-temp\nx=global\n' Got 'x=temp-binding\nx=mutated-temp\nx=local\nx=\nx=global\n' stdout: x=temp-binding x=mutated-temp x=local x= x=globalstderr: |
dash | 25 Test above without 'local' (which is not POSIX) stdout: x=temp-binding x=mutated-temp x= x=globalstderr: |
ash | 25 Test above without 'local' (which is not POSIX) [ash stdout] Expected 'x=temp-binding\nx=mutated-temp\nx=global\nx=global\n' Got 'x=temp-binding\nx=mutated-temp\nx=\nx=global\n' stdout: x=temp-binding x=mutated-temp x= x=globalstderr: |
zsh | 25 Test above without 'local' (which is not POSIX) stdout: x=temp-binding x=mutated-temp x= x=globalstderr: |
mksh | 25 Test above without 'local' (which is not POSIX) stdout: x=temp-binding x=mutated-temp x= x=stderr: |
toysh | 25 Test above without 'local' (which is not POSIX) [toysh stdout] Expected 'x=temp-binding\nx=mutated-temp\nx=global\nx=global\n' Got 'x=temp-binding\nx=mutated-temp\nx=\nx=\n' stdout: x=temp-binding x=mutated-temp x= x=stderr: |
sush | 25 Test above without 'local' (which is not POSIX) [sush stdout] Expected 'x=temp-binding\nx=mutated-temp\nx=global\nx=global\n' Got 'x=temp-binding\nx=mutated-temp\nx=\nx=\n' stdout: x=temp-binding x=mutated-temp x= x=stderr: |
bash | 26 Using ${x-default} after unsetting local shadowing a global stdout: x=global x=local - operator = default :- operator = defaultstderr: |
dash | 26 Using ${x-default} after unsetting local shadowing a global stdout: x=global x=local - operator = default :- operator = defaultstderr: |
ash | 26 Using ${x-default} after unsetting local shadowing a global [ash stdout] Expected 'x=global\nx=local\n- operator = global\n:- operator = global\n' Got 'x=global\nx=local\n- operator = default\n:- operator = default\n' stdout: x=global x=local - operator = default :- operator = defaultstderr: |
zsh | 26 Using ${x-default} after unsetting local shadowing a global stdout: x=global x=local - operator = default :- operator = defaultstderr: |
toysh | 26 Using ${x-default} after unsetting local shadowing a global [toysh stdout] Expected 'x=global\nx=local\n- operator = global\n:- operator = global\n' Got 'x=global\nx=local\n- operator = default\n:- operator = default\n' stdout: x=global x=local - operator = default :- operator = defaultstderr: |
sush | 26 Using ${x-default} after unsetting local shadowing a global [sush stdout] Expected 'x=global\nx=local\n- operator = global\n:- operator = global\n' Got 'x=global\nx=local\n- operator = default\n:- operator = default\n' stdout: x=global x=local - operator = default :- operator = defaultstderr: |
brush | 26 Using ${x-default} after unsetting local shadowing a global [brush stdout] Expected 'x=global\nx=local\n- operator = global\n:- operator = global\n' Got 'x=global\nx=local\n- operator = default\n:- operator = default\n' stdout: x=global x=local - operator = default :- operator = defaultstderr: |
bash | 27 Using ${x-default} after unsetting a temp binding shadowing a global [bash stdout] Expected 'x=temp-binding\nx=local\n- operator = global\n:- operator = global\n' Got 'x=temp-binding\nx=local\n- operator = default\n:- operator = default\n' stdout: x=temp-binding x=local - operator = default :- operator = defaultstderr: |
dash | 27 Using ${x-default} after unsetting a temp binding shadowing a global stdout: x=temp-binding x=local - operator = default :- operator = defaultstderr: |
ash | 27 Using ${x-default} after unsetting a temp binding shadowing a global [ash stdout] Expected 'x=temp-binding\nx=local\n- operator = temp-binding\n:- operator = temp-binding\n' Got 'x=temp-binding\nx=local\n- operator = default\n:- operator = default\n' stdout: x=temp-binding x=local - operator = default :- operator = defaultstderr: |
zsh | 27 Using ${x-default} after unsetting a temp binding shadowing a global stdout: x=temp-binding x=local - operator = default :- operator = defaultstderr: |
ksh | 27 Using ${x-default} after unsetting a temp binding shadowing a global [ksh stdout] Expected 'x=temp-binding\nx=local\n- operator = temp-binding\n:- operator = temp-binding\n' Got 'x=temp-binding\nx=local\n- operator = global\n:- operator = global\n' stdout: x=temp-binding x=local - operator = global :- operator = globalstderr: |
toysh | 27 Using ${x-default} after unsetting a temp binding shadowing a global [toysh stdout] Expected 'x=temp-binding\nx=local\n- operator = temp-binding\n:- operator = temp-binding\n' Got 'x=temp-binding\nx=local\n- operator = default\n:- operator = default\n' stdout: x=temp-binding x=local - operator = default :- operator = defaultstderr: |
sush | 27 Using ${x-default} after unsetting a temp binding shadowing a global [sush stdout] Expected 'x=temp-binding\nx=local\n- operator = temp-binding\n:- operator = temp-binding\n' Got 'x=temp-binding\nx=local\n- operator = default\n:- operator = default\n' stdout: x=temp-binding x=local - operator = default :- operator = defaultstderr: |
brush | 27 Using ${x-default} after unsetting a temp binding shadowing a global [brush stdout] Expected 'x=temp-binding\nx=local\n- operator = temp-binding\n:- operator = temp-binding\n' Got 'x=temp-binding\nx=local\n- operator = default\n:- operator = default\n' stdout: x=temp-binding x=local - operator = default :- operator = defaultstderr: |
dash | 28 static assignment doesn't split stdout: ['a', 'a b c', 'a']stderr: |
toysh | 28 static assignment doesn't split [toysh stdout] Expected "['a b c', 'a b c', 'a b c']\n", got "['a', 'a b c', '']\n" stdout: ['a', 'a b c', '']stderr: sh: readonly: No such file or directory |
dash | 29 aliased assignment doesn't split stdout: ['a', 'a']stderr: dash: 1: shopt: not found |
toysh | 29 aliased assignment doesn't split [toysh stdout] Expected "['a b c', 'a b c']\n", got "['', '']\n" stdout: ['', '']stderr: sh: shopt: No such file or directory sh: alias: No such file or directory sh: alias: No such file or directory sh: e: No such file or directory sh: r: No such file or directory |
sush | 29 aliased assignment doesn't split [sush stdout] Expected "['a b c', 'a b c']\n", got 'declare -ar BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")\ndeclare -r UID=1000\n[\'\', \'\']\n' stdout: declare -ar BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux") declare -r UID=1000 ['', '']stderr: |
bash | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) stdout: ['a', 'a']stderr: |
dash | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) stdout: ['a', 'a']stderr: |
mksh | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) stdout: ['a', 'a']stderr: |
ksh | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) [ksh stdout] Expected "['a b c', 'a b c']\n", got "['a', 'a']\n" stdout: ['a', 'a']stderr: |
toysh | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) [toysh stdout] Expected "['a b c', 'a b c']\n", got "['a', '']\n" stdout: ['a', '']stderr: sh: readonly: No such file or directory |
sush | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) [sush stdout] Expected "['a b c', 'a b c']\n", got 'declare -ar BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")\ndeclare -r UID=1000\n[\'\', \'\']\n' stdout: declare -ar BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux") declare -r UID=1000 ['', '']stderr: |
bash | 31 assignment using dynamic var names doesn't split stdout: ['a', 'a'] ['a b c', 'a b c']stderr: |
dash | 31 assignment using dynamic var names doesn't split stdout: ['a', 'a'] ['a b c', 'a b c']stderr: |
ash | 31 assignment using dynamic var names doesn't split [ash stdout] Expected "['a b c', 'a b c']\n['a b c', 'a b c']\n", got "['a', 'a']\n['a b c', 'a b c']\n" stdout: ['a', 'a'] ['a b c', 'a b c']stderr: |
mksh | 31 assignment using dynamic var names doesn't split stdout: ['a', 'a'] ['a b c', 'a b c']stderr: |
ksh | 31 assignment using dynamic var names doesn't split [ksh stdout] Expected "['a b c', 'a b c']\n['a b c', 'a b c']\n", got "['a', 'a']\n['a b c', 'a b c']\n" stdout: ['a', 'a'] ['a b c', 'a b c']stderr: |
toysh | 31 assignment using dynamic var names doesn't split [toysh stdout] Expected "['a b c', 'a b c']\n['a b c', 'a b c']\n", got "['a', '']\n['a b c', '']\n" stdout: ['a', ''] ['a b c', '']stderr: sh: readonly: No such file or directory sh: readonly: No such file or directory |
sush | 31 assignment using dynamic var names doesn't split [sush stdout] Expected "['a b c', 'a b c']\n['a b c', 'a b c']\n", got 'declare -ar BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")\ndeclare -r UID=1000\n[\'\', \'\']\ndeclare -ar BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")\ndeclare -r UID=1000\n[\'\', \'\']\n' stdout: declare -ar BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux") declare -r UID=1000 ['', ''] declare -ar BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux") declare -r UID=1000 ['', '']stderr: |
brush | 31 assignment using dynamic var names doesn't split [brush stdout] Expected "['a b c', 'a b c']\n['a b c', 'a b c']\n", got "['', '']\n['', '']\n" stdout: ['', ''] ['', '']stderr: |
dash | 32 assign and glob stdout: ['*'] ['b']stderr: |
toysh | 32 assign and glob [toysh stdout] Expected "['*']\n['*']\n", got "['foo=a', 'foo=b']\n['b']\n" stdout: ['foo=a', 'foo=b'] ['b']stderr: |
sush | 32 assign and glob [sush stdout] Expected "['*']\n['*']\n", got "['foo=a foo=b']\n['foo=a foo=b']\n" stdout: ['foo=a foo=b'] ['foo=a foo=b']stderr: |
dash | 33 declare and glob stdout: ['']stderr: dash: 3: typeset: not found |
ash | 33 declare and glob [ash stdout] Expected "['*']\n", got "['']\n" stdout: ['']stderr: ash: typeset: not found |
toysh | 33 declare and glob [toysh stdout] Expected "['*']\n", got "['']\n" stdout: ['']stderr: sh: typeset: No such file or directory |
sush | 33 declare and glob [sush stdout] Expected "['*']\n", got "['foo=a foo=b']\n" stdout: ['foo=a foo=b']stderr: |
bash | 34 readonly $x where x='b c' stdout: status=1 status=1 status=1stderr: bash: line 4: a: readonly variable bash: line 6: b: readonly variable bash: line 8: c: readonly variable |
dash | 34 readonly $x where x='b c' stdout: stderr: dash: 4: a: is read only |
ash | 34 readonly $x where x='b c' [ash status] Expected 1, got 2 stdout: stderr: ash: a: is read only |
mksh | 34 readonly $x where x='b c' stdout: stderr: mksh: <stdin>[4]: read-only: a |
ksh | 34 readonly $x where x='b c' [ksh status] Expected 1, got 2 stdout: stderr: E: ksh: <stdin>[4]: read-only: a |
toysh | 34 readonly $x where x='b c' [toysh stdout] Expected u'', got 'status=0\nstatus=0\nstatus=0\n' [toysh status] Expected 1, got 0 stdout: status=0 status=0 status=0stderr: sh: readonly: No such file or directory |
sush | 34 readonly $x where x='b c' [sush stdout] Expected u'', got 'declare -ar BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux")\ndeclare -r UID=1000\nstatus=0\nstatus=0\nstatus=0\n' [sush status] Expected 1, got 0 stdout: declare -ar BASH_VERSINFO=([0]="1" [1]="1" [2]="8" [3]="rusty_bash" [4]="release" [5]="x86_64-unknown-linux") declare -r UID=1000 status=0 status=0 status=0stderr: |
brush | 34 readonly $x where x='b c' [brush stdout] Expected u'', got 'status=1\nstatus=1\nstatus=1\n' [brush status] Expected 1, got 0 stdout: status=1 status=1 status=1stderr: [31mERROR[0m error: cannot mutate readonly variable [31mERROR[0m error: cannot mutate readonly variable [31mERROR[0m error: cannot mutate readonly variable |
dash | 35 readonly a=(1 2) no_value c=(3 4) makes 'no_value' readonly stdout: stderr: dash: 1: Syntax error: "(" unexpected |
ash | 35 readonly a=(1 2) no_value c=(3 4) makes 'no_value' readonly [ash status] Expected 1, got 2 stdout: stderr: ash: syntax error: unexpected "(" |
toysh | 35 readonly a=(1 2) no_value c=(3 4) makes 'no_value' readonly [toysh status] Expected 1, got 2 stdout: stderr: main: line 1: sh: syntax error: ) |
dash | 37 local a=loc $var c=loc stdout: global ['loc', 'global', 'loc']stderr: |
sush | 37 local a=loc $var c=loc [sush stdout] Expected "global\n['loc', '', 'loc']\n", got "global\n['loc', 'global', 'loc']\n" stdout: global ['loc', 'global', 'loc']stderr: |
zsh | 38 redirect after assignment builtin (what's going on with dash/bash/mksh here?) stdout: donestderr: |
sush | 38 redirect after assignment builtin (what's going on with dash/bash/mksh here?) [sush stderr] Expected 'STDERR\n', got '' stdout: donestderr: |
osh | 38 redirect after assignment builtin (what's going on with dash/bash/mksh here?) [osh stderr] Expected 'STDERR\n', got '' stdout: donestderr: |
osh | 39 redirect after command sub (like case above but without assignment builtin) [osh stderr] Expected 'STDERR\n', got '' stdout: stdout=STDOUTstderr: |
bash | 40 redirect after bare assignment stdout: donestderr: STDERR |
sush | 40 redirect after bare assignment [sush stderr] Expected u'', got 'STDERR\n' stdout: donestderr: STDERR |
bash | 41 redirect after declare -p stdout: stderr: declare -- foo="bar" |
dash | 41 redirect after declare -p stdout: stderr: |
ash | 41 redirect after declare -p [ash stderr] Expected 'typeset foo=bar\n', got 'ash: typeset: not found\n' [ash status] Expected 0, got 127 stdout: stderr: ash: typeset: not found |
toysh | 41 redirect after declare -p [toysh stderr] Expected 'typeset foo=bar\n', got 'munmap_chunk(): invalid pointer\n' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 41 redirect after declare -p [sush stderr] Expected 'typeset foo=bar\n', got 'declare -- foo=bar\n' stdout: stderr: declare -- foo=bar |
brush | 41 redirect after declare -p [brush stderr] Expected 'typeset foo=bar\n', got 'declare -- foo="bar"\n' stdout: stderr: declare -- foo="bar" |
osh | 41 redirect after declare -p stdout: stderr: declare -- foo=bar |
dash | 42 declare -a arr does not remove existing arrays (OSH regression) stdout: stderr: |
ash | 42 declare -a arr does not remove existing arrays (OSH regression) [ash stdout] Expected 'arr:3\n', got '' [ash status] Expected 0, got 2 stdout: stderr: ash: declare: not found ash: syntax error: unexpected "(" |
toysh | 42 declare -a arr does not remove existing arrays (OSH regression) [toysh stdout] Expected 'arr:3\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
dash | 43 declare -A dict does not remove existing arrays (OSH regression) stdout: stderr: |
ash | 43 declare -A dict does not remove existing arrays (OSH regression) [ash stdout] Expected 'dict:3\n', got '' [ash status] Expected 0, got 2 stdout: stderr: ash: declare: not found ash: dict[foo]=hello: not found ash: dict[bar]=oil: not found ash: dict[baz]=world: not found ash: declare: not found ash: syntax error: bad substitution |
mksh | 43 declare -A dict does not remove existing arrays (OSH regression) stdout: stderr: |
ksh | 43 declare -A dict does not remove existing arrays (OSH regression) [ksh stdout] Expected 'dict:3\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: <stdin>[3]: declare: inaccessible or not found W: ksh: <stdin>[4]: 'foo': multi-character character constant |
toysh | 43 declare -A dict does not remove existing arrays (OSH regression) [toysh stdout] Expected 'dict:3\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 43 declare -A dict does not remove existing arrays (OSH regression) [sush stdout] Expected 'dict:3\n', got 'dict:0\n' stdout: dict:0stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: 'foo': syntax error: operand expected (error token is "'foo'") /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: 'bar': syntax error: operand expected (error token is "'bar'") /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: 'baz': syntax error: operand expected (error token is "'baz'") |
dash | 44 "readonly -a arr" and "readonly -A dict" should not not remove existing arrays stdout: stderr: |
ash | 44 "readonly -a arr" and "readonly -A dict" should not not remove existing arrays [ash stdout] Expected 'arr:3\ndict:3\n', got '' [ash status] Expected 0, got 2 stdout: stderr: ash: declare: not found ash: syntax error: unexpected "(" |
mksh | 44 "readonly -a arr" and "readonly -A dict" should not not remove existing arrays stdout: stderr: |
ksh | 44 "readonly -a arr" and "readonly -A dict" should not not remove existing arrays [ksh stdout] Expected 'arr:3\ndict:3\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: <stdin>[3]: declare: inaccessible or not found E: ksh: <stdin>[5]: declare: inaccessible or not found W: ksh: <stdin>[6]: 'foo': multi-character character constant |
toysh | 44 "readonly -a arr" and "readonly -A dict" should not not remove existing arrays [toysh stdout] Expected 'arr:3\ndict:3\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 44 "readonly -a arr" and "readonly -A dict" should not not remove existing arrays [sush stdout] Expected 'arr:3\ndict:3\n', got 'arr:3\ndict:0\n' stdout: arr:3 dict:0stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: 'foo': syntax error: operand expected (error token is "'foo'") /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: 'bar': syntax error: operand expected (error token is "'bar'") /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 8: 'baz': syntax error: operand expected (error token is "'baz'") |
bash | 45 "declare -a arr" and "readonly -a a" creates an empty array (OSH) stdout: declare -a arr1 declare -r arr2 declare -A dict1 declare -r dict2stderr: |
dash | 45 "declare -a arr" and "readonly -a a" creates an empty array (OSH) stdout: stderr: |
ash | 45 "declare -a arr" and "readonly -a a" creates an empty array (OSH) [ash stdout] Expected 'declare -a arr1=()\ndeclare -ra arr2=()\ndeclare -A dict1=()\ndeclare -rA dict2=()\n' Got '' [ash status] Expected 0, got 2 stdout: stderr: ash: declare: not found ash: readonly: line 4: illegal option -a |
zsh | 45 "declare -a arr" and "readonly -a a" creates an empty array (OSH) stdout: typeset -a arr1 arr1=( ) typeset -a arr2 arr2=( ) typeset -ar arr2 typeset -A dict1 dict1=( ) typeset -a dict2 dict2=( ) typeset -Ar dict2stderr: |
mksh | 45 "declare -a arr" and "readonly -a a" creates an empty array (OSH) stdout: stderr: |
ksh | 45 "declare -a arr" and "readonly -a a" creates an empty array (OSH) [ksh stdout] Expected 'declare -a arr1=()\ndeclare -ra arr2=()\ndeclare -A dict1=()\ndeclare -rA dict2=()\n' Got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: <stdin>[3]: declare: inaccessible or not found E: ksh: <stdin>[4]: readonly: -a: unknown option |
toysh | 45 "declare -a arr" and "readonly -a a" creates an empty array (OSH) [toysh stdout] Expected 'declare -a arr1=()\ndeclare -ra arr2=()\ndeclare -A dict1=()\ndeclare -rA dict2=()\n' Got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 45 "declare -a arr" and "readonly -a a" creates an empty array (OSH) [sush stdout] Expected 'declare -a arr1=()\ndeclare -ra arr2=()\ndeclare -A dict1=()\ndeclare -rA dict2=()\n' Got 'declare -a arr1\ndeclare -ar arr2\ndeclare -A dict1\ndeclare -Ar dict2\n' stdout: declare -a arr1 declare -ar arr2 declare -A dict1 declare -Ar dict2stderr: |
brush | 45 "declare -a arr" and "readonly -a a" creates an empty array (OSH) [brush stdout] Expected 'declare -a arr1=()\ndeclare -ra arr2=()\ndeclare -A dict1=()\ndeclare -rA dict2=()\n' Got 'declare -a arr1\ndeclare -ar arr2\ndeclare -A dict1\ndeclare -Ar dict2\n' stdout: declare -a arr1 declare -ar arr2 declare -A dict1 declare -Ar dict2stderr: |
dash | 46 readonly array should not be modified by a+=(1) stdout: stderr: |
ash | 46 readonly array should not be modified by a+=(1) [ash stdout] Expected "['1', '2', '3']\n['1', '2', '3']\n", got '' [ash status] Expected 0, got 2 stdout: stderr: ash: syntax error: unexpected "(" |
mksh | 46 readonly array should not be modified by a+=(1) stdout: stderr: mksh: <stdin>[4]: readonly: -a: unknown option |
ksh | 46 readonly array should not be modified by a+=(1) [ksh stdout] Expected "['1', '2', '3']\n['1', '2', '3']\n", got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: <stdin>[4]: readonly: -a: unknown option |
toysh | 46 readonly array should not be modified by a+=(1) [toysh stdout] Expected "['1', '2', '3']\n['1', '2', '3']\n", got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 46 readonly array should not be modified by a+=(1) [sush stdout] Expected "['1', '2', '3']\n['1', '2', '3']\n", got '[]\n[]\n' stdout: [] []stderr: |