| status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
| pass | 13 | 1 | 4 | 7 | 8 | 9 | 6 | 10 | 6 | 14 | |
| ok | 1 | 0 | 0 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | |
| N-I | 0 | 0 | 0 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | |
| BUG | 0 | 0 | 0 | 3 | 4 | 0 | 0 | 0 | 0 | 0 | |
| FAIL | 0 | 13 | 10 | 0 | 0 | 5 | 8 | 4 | 8 | 0 | |
| total | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | |
| case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
| 0 | pass | FAIL | FAIL | N-I | pass | pass | FAIL | pass | FAIL | pass | Multiple right brackets inside expression |
| details | details | details | details | details | |||||||
| 1 | pass | FAIL | pass | pass | pass | pass | pass | pass | pass | pass | Slicing of string with constants |
| details | |||||||||||
| 2 | pass | FAIL | pass | pass | pass | pass | FAIL | pass | pass | pass | Slicing of string with variables |
| details | details | ||||||||||
| 3 | pass | FAIL | FAIL | ok | pass | pass | FAIL | pass | pass | pass | Array index on LHS of assignment |
| details | details | details | details | ||||||||
| 4 | pass | FAIL | FAIL | ok | pass | pass | FAIL | pass | FAIL | pass | Array index on LHS with indices |
| details | details | details | details | details | |||||||
| 5 | pass | FAIL | pass | BUG | BUG | pass | pass | pass | pass | pass | Slicing of string with expressions |
| details | details | details | |||||||||
| 6 | pass | FAIL | FAIL | BUG | BUG | FAIL | pass | pass | FAIL | pass | Ambiguous colon in slice |
| details | details | details | details | details | details | ||||||
| 7 | pass | FAIL | FAIL | pass | pass | pass | FAIL | pass | pass | pass | Triple parens should be disambiguated |
| details | details | details | |||||||||
| 8 | pass | FAIL | FAIL | pass | pass | pass | FAIL | pass | pass | pass | Quadruple parens should be disambiguated |
| details | details | details | |||||||||
| 9 | pass | FAIL | FAIL | pass | N-I | FAIL | pass | FAIL | FAIL | pass | ExprSub $[] happens to behave the same on simple cases |
| details | details | details | details | details | details | ||||||
| 10 | pass | FAIL | FAIL | pass | pass | pass | pass | pass | FAIL | pass | Empty expression (( )) $(( )) |
| details | details | details | |||||||||
| 11 | pass | FAIL | FAIL | pass | N-I | FAIL | FAIL | FAIL | FAIL | pass | Empty expression for (( )) |
| details | details | details | details | details | details | details | |||||
| 12 | pass | FAIL | FAIL | BUG | BUG | FAIL | FAIL | FAIL | FAIL | pass | Empty expression in ${a[@]: : } |
| details | details | details | details | details | details | details | details | ||||
| 13 | ok | pass | pass | ok | BUG | FAIL | pass | FAIL | FAIL | pass | Empty expression a[] |
| details | details | details | details | details | details |
78 passed, 4 OK, 3 not implemented, 7 BUG, 48 failed, 0 timeouts, 0 cases skipped
| dash | 0 Multiple right brackets inside expression [dash stdout] Expected '2 3\n' Got '' [dash status] Expected 0 Got 2 stdout: stderr: dash: 1: Syntax error: "(" unexpected
|
| ash | 0 Multiple right brackets inside expression [ash stdout] Expected '2 3\n' Got '' [ash status] Expected 0 Got 2 stdout: stderr: ash: syntax error: unexpected "("
|
| zsh | 0 Multiple right brackets inside expression stdout: stderr: |
| toysh | 0 Multiple right brackets inside expression [toysh stdout] Expected '2 3\n' Got '' [toysh status] Expected 0 Got 2 stdout: stderr: main: line 1: sh: syntax error: 1 |
| brush | 0 Multiple right brackets inside expression [brush stdout] Expected '2 3\n' Got '${a[a[0]]} ${a[a[a[0]]]}\n' stdout: ${a[a[0]]} ${a[a[a[0]]]}
stderr: |
| dash | 1 Slicing of string with constants [dash stdout] Expected 'abcd abcd b\n' Got '' [dash status] Expected 0 Got 2 stdout: stderr: dash: 2: Bad substitution |
| dash | 2 Slicing of string with variables [dash stdout] Expected 'abcd abcd b\n' Got '' [dash status] Expected 0 Got 2 stdout: stderr: dash: 4: Bad substitution |
| toysh | 2 Slicing of string with variables [toysh stdout] Expected 'abcd abcd b\n' Got '' [toysh status] Expected 0 Got 1 stdout: stderr: main: line 4: sh: bad $zero} @ 0 |
| dash | 3 Array index on LHS of assignment [dash stdout] Expected '1 X 3\n' Got '' [dash status] Expected 0 Got 2 stdout: stderr: dash: 1: Syntax error: "(" unexpected
|
| ash | 3 Array index on LHS of assignment [ash stdout] Expected '1 X 3\n' Got '' [ash status] Expected 0 Got 2 stdout: stderr: ash: syntax error: unexpected "("
|
| zsh | 3 Array index on LHS of assignment stdout: X 2 3stderr: |
| toysh | 3 Array index on LHS of assignment [toysh stdout] Expected '1 X 3\n' Got '' [toysh status] Expected 0 Got 2 stdout: stderr: main: line 1: sh: syntax error: 1 |
| dash | 4 Array index on LHS with indices [dash stdout] Expected '1 2 X\n' Got '' [dash status] Expected 0 Got 2 stdout: stderr: dash: 1: Syntax error: "(" unexpected
|
| ash | 4 Array index on LHS with indices [ash stdout] Expected '1 2 X\n' Got '' [ash status] Expected 0 Got 2 stdout: stderr: ash: syntax error: unexpected "("
|
| zsh | 4 Array index on LHS with indices stdout: X 2 3stderr: |
| toysh | 4 Array index on LHS with indices [toysh stdout] Expected '1 2 X\n' Got '' [toysh status] Expected 0 Got 2 stdout: stderr: main: line 1: sh: syntax error: 1 |
| brush | 4 Array index on LHS with indices [brush stdout] Expected '1 2 X\n' Got '1 2 3\n' stdout: 1 2 3stderr: [31merror:[39m command not found: a[a[1]]=X |
| dash | 5 Slicing of string with expressions [dash stdout] Expected 'abcd abcd b\n' Got '' [dash status] Expected 0 Got 2 stdout: stderr: dash: 3: Bad substitution |
| zsh | 5 Slicing of string with expressions stdout: stderr: zsh: unrecognized modifier `z' |
| mksh | 5 Slicing of string with expressions stdout: stderr: mksh: <stdin>[3]: ${s:zero}: bad substitution
|
| dash | 6 Ambiguous colon in slice [dash stdout] Expected '2\nc\n' Got '2\n' [dash status] Expected 0 Got 2 stdout: 2stderr: dash: 3: Bad substitution |
| ash | 6 Ambiguous colon in slice [ash stdout] Expected '2\nc\n' Got '2\n' [ash status] Expected 0 Got 2 stdout: 2stderr: ash: malformed ?: operator |
| zsh | 6 Ambiguous colon in slice stdout: 2stderr: zsh: bad math expression: ':' expected |
| mksh | 6 Ambiguous colon in slice stdout: 2stderr: mksh: <stdin>[3]: ${s: 0 < 1 ? 2 : 0 : 1}: bad substitution
|
| ksh | 6 Ambiguous colon in slice [ksh stdout] Expected '2\nc\n' Got '2\n' [ksh status] Expected 0 Got 1 stdout: 2stderr: E: ksh: <stdin>[3]: ${s: 0 < 1 ? 2 : 0 : 1}: bad substitution
|
| brush | 6 Ambiguous colon in slice [brush stdout] Expected '2\nc\n' Got '2\n${s: 0 <1 ? 2 : 0 : 1}\n' stdout: 2
${s: 0 <1 ? 2 : 0 : 1}
stderr: |
| dash | 7 Triple parens should be disambiguated [dash stdout] Expected '7 7\n' Got '' [dash status] Expected 0 Got 2 stdout: stderr: dash: 1: Syntax error: "(" unexpected (expecting ")")
|
| ash | 7 Triple parens should be disambiguated [ash stdout] Expected '7 7\n' Got '' [ash status] Expected 0 Got 2 stdout: stderr: ash: syntax error: unexpected "(" (expecting ")")
|
| toysh | 7 Triple parens should be disambiguated [toysh stdout] Expected '7 7\n' Got '0 7\n' stdout: 0 7stderr: |
| dash | 8 Quadruple parens should be disambiguated [dash stdout] Expected '15 15\n' Got '' [dash status] Expected 0 Got 2 stdout: stderr: dash: 1: Syntax error: "(" unexpected (expecting ")")
|
| ash | 8 Quadruple parens should be disambiguated [ash stdout] Expected '15 15\n' Got '' [ash status] Expected 0 Got 2 stdout: stderr: ash: syntax error: unexpected "(" (expecting ")")
|
| toysh | 8 Quadruple parens should be disambiguated [toysh stdout] Expected '15 15\n' Got '0 15\n' stdout: 0 15stderr: |
| dash | 9 ExprSub $[] happens to behave the same on simple cases [dash stdout] Expected '3 12\n' Got '$[1 + 2] $[3 * 4]\n' stdout: $[1 + 2] $[3 * 4]stderr: |
| ash | 9 ExprSub $[] happens to behave the same on simple cases [ash stdout] Expected '3 12\n' Got '$[1 + 2] $[3 * 4]\n' stdout: $[1 + 2] $[3 * 4]stderr: |
| mksh | 9 ExprSub $[] happens to behave the same on simple cases stdout: $[1 + 2] $[3 * 4]stderr: |
| ksh | 9 ExprSub $[] happens to behave the same on simple cases [ksh stdout] Expected '3 12\n' Got '$[1 + 2] $[3 * 4]\n' stdout: $[1 + 2] $[3 * 4]stderr: |
| sush | 9 ExprSub $[] happens to behave the same on simple cases [sush stdout] Expected '3 12\n' Got '$[1 + 2] $[3 * 4]\n' stdout: $[1 + 2] $[3 * 4]stderr: |
| brush | 9 ExprSub $[] happens to behave the same on simple cases [brush stdout] Expected '3 12\n' Got '$[1 + 2] $[3 * 4]\n' stdout: $[1 + 2] $[3 * 4]stderr: |
| dash | 10 Empty expression (( )) $(( )) [dash stdout] Expected 'status=1\n0\n' Got '' [dash status] Expected 0 Got 2 stdout: stderr: dash: 1: Syntax error: ")" unexpected |
| ash | 10 Empty expression (( )) $(( )) [ash stdout] Expected 'status=1\n0\n' Got '' [ash status] Expected 0 Got 2 stdout: stderr: ash: syntax error: unexpected ")" |
| brush | 10 Empty expression (( )) $(( )) [brush stdout] Expected 'status=1\n0\n' Got 'status=1\n' stdout: status=1stderr: [31merror:[39m arithmetic evaluation error: failed to parse expression: ' ' |
| dash | 11 Empty expression for (( )) [dash stdout] Expected 'one\n' Got '' [dash status] Expected 0 Got 2 stdout: stderr: dash: 1: Syntax error: Bad for loop variable |
| ash | 11 Empty expression for (( )) [ash stdout] Expected 'one\n' Got '' [ash status] Expected 0 Got 2 stdout: stderr: ash: syntax error: bad for loop variable |
| mksh | 11 Empty expression for (( )) stdout: stderr: mksh: <stdin>[1]: syntax error: '((' unexpected
|
| ksh | 11 Empty expression for (( )) [ksh stdout] Expected 'one\n' Got '' [ksh status] Expected 0 Got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected '(('
|
| toysh | 11 Empty expression for (( )) [toysh stdout] Expected 'one\n' Got '' [toysh status] Expected 0 Got 2 stdout: stderr: main: line 1: sh: syntax error: ; |
| sush | 11 Empty expression for (( )) [sush stdout] Expected 'one\n' Got '' stdout: stderr: |
| brush | 11 Empty expression for (( )) [brush stdout] Expected 'one\n' Got '' stdout: stderr: |
| dash | 12 Empty expression in ${a[@]: : } [dash stdout] Expected 'slice a b c d e f\nstatus=0\n\nslice\nstatus=0\n\nslice\nstatus=0\n' Got '' [dash status] Expected 0 Got 2 stdout: stderr: dash: 1: Syntax error: "(" unexpected
|
| ash | 12 Empty expression in ${a[@]: : } [ash stdout] Expected 'slice a b c d e f\nstatus=0\n\nslice\nstatus=0\n\nslice\nstatus=0\n' Got '' [ash status] Expected 0 Got 2 stdout: stderr: ash: syntax error: unexpected "("
|
| zsh | 12 Empty expression in ${a[@]: : } stdout: slice a b c d e f status=0 slice status=0stderr: zsh: closing brace expected |
| mksh | 12 Empty expression in ${a[@]: : } stdout: stderr: mksh: <stdin>[3]: ${a[@]: }: bad substitution
|
| ksh | 12 Empty expression in ${a[@]: : } [ksh stdout] Expected 'slice a b c d e f\nstatus=0\n\nslice\nstatus=0\n\nslice\nstatus=0\n' Got '' [ksh status] Expected 0 Got 1 stdout: stderr: E: ksh: <stdin>[3]: ${a[@]: }: bad substitution
|
| toysh | 12 Empty expression in ${a[@]: : } [toysh stdout] Expected 'slice a b c d e f\nstatus=0\n\nslice\nstatus=0\n\nslice\nstatus=0\n' Got '' [toysh status] Expected 0 Got 2 stdout: stderr: main: line 1: sh: syntax error: a |
| sush | 12 Empty expression in ${a[@]: : } [sush stdout] Expected 'slice a b c d e f\nstatus=0\n\nslice\nstatus=0\n\nslice\nstatus=0\n' Got 'slice a b c d e f\nstatus=0\n\nslice\nstatus=0\n\nstatus=1\n' stdout: slice a b c d e f status=0 slice status=0 status=1stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 11: `': bad substitution |
| brush | 12 Empty expression in ${a[@]: : } [brush stdout] Expected 'slice a b c d e f\nstatus=0\n\nslice\nstatus=0\n\nslice\nstatus=0\n' Got 'status=1\n\nstatus=1\n\nstatus=1\n' stdout: status=1 status=1 status=1stderr: [31merror:[39m arithmetic evaluation error: failed to parse expression: ' ' [31merror:[39m arithmetic evaluation error: failed to parse expression: ' ' [31merror:[39m arithmetic evaluation error: failed to parse expression: ' ' |
| bash | 13 Empty expression a[] stdout: status=1 1 2 3 status=1stderr: bash: line 3: a[]: bad array subscript
bash: line 7: ${a[]}: bad substitution
|
| zsh | 13 Empty expression a[] stdout: stderr: zsh: not an identifier: a[] |
| mksh | 13 Empty expression a[] stdout: status=0 42 2 3 42 status=0stderr: |
| ksh | 13 Empty expression a[] [ksh stdout] Expected '' Got 'status=0\n1 2 3\n1\nstatus=0\n' [ksh status] Expected 2 Got 0 stdout: status=0 1 2 3 1 status=0stderr: |
| sush | 13 Empty expression a[] [sush stdout] Expected '' Got 'status=1\n1 2 3\nstatus=1\n' [sush status] Expected 2 Got 0 stdout: status=1 1 2 3 status=1stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: []: bad array subscript /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: []: bad array subscript |
| brush | 13 Empty expression a[] [brush stdout] Expected '' Got 'status=0\n42 2 3\n42\nstatus=0\n' [brush status] Expected 2 Got 0 stdout: status=0 42 2 3 42 status=0stderr: |