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: a[a[1]]=X: command not found |
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[0m error: 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[0m error: arithmetic evaluation error: failed to parse expression: ' ' [31mERROR[0m error: arithmetic evaluation error: failed to parse expression: ' ' [31mERROR[0m error: 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: `a': not a valid index /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: `': not a valid index |
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: |