status | bash | mksh | ksh | toysh | sush | brush | osh | |
pass | 13 | 8 | 9 | 6 | 10 | 6 | 14 | |
ok | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |
N-I | 0 | 2 | 0 | 0 | 0 | 0 | 0 | |
BUG | 0 | 4 | 0 | 0 | 0 | 0 | 0 | |
FAIL | 0 | 0 | 5 | 8 | 4 | 8 | 0 | |
total | 14 | 14 | 14 | 14 | 14 | 14 | 14 | |
case | bash | mksh | ksh | toysh | sush | brush | osh | description |
0 | pass | pass | pass | FAIL | pass | FAIL | pass | Multiple right brackets inside expression |
details | details | |||||||
1 | pass | pass | pass | pass | pass | pass | pass | Slicing of string with constants |
2 | pass | pass | pass | FAIL | pass | pass | pass | Slicing of string with variables |
details | ||||||||
3 | pass | pass | pass | FAIL | pass | pass | pass | Array index on LHS of assignment |
details | ||||||||
4 | pass | pass | pass | FAIL | pass | FAIL | pass | Array index on LHS with indices |
details | details | |||||||
5 | pass | BUG | pass | pass | pass | pass | pass | Slicing of string with expressions |
details | ||||||||
6 | pass | BUG | FAIL | pass | pass | FAIL | pass | Ambiguous colon in slice |
details | details | details | ||||||
7 | pass | pass | pass | FAIL | pass | pass | pass | Triple parens should be disambiguated |
details | ||||||||
8 | pass | pass | pass | FAIL | pass | pass | pass | Quadruple parens should be disambiguated |
details | ||||||||
9 | pass | N-I | FAIL | pass | FAIL | FAIL | pass | ExprSub $[] happens to behave the same on simple cases |
details | details | details | details | |||||
10 | pass | pass | pass | pass | pass | FAIL | pass | Empty expression (( )) $(( )) |
details | ||||||||
11 | pass | N-I | FAIL | FAIL | FAIL | FAIL | pass | Empty expression for (( )) |
details | details | details | details | details | ||||
12 | pass | BUG | FAIL | FAIL | FAIL | FAIL | pass | Empty expression in ${a[@]: : } |
details | details | details | details | details | ||||
13 | ok | BUG | FAIL | pass | FAIL | FAIL | pass | Empty expression a[] |
details | details | details | details | details |
66 passed, 1 OK, 2 not implemented, 4 BUG, 25 failed, 0 timeouts, 0 cases skipped
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: |
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 |
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 |
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 |
mksh | 5 Slicing of string with expressions stdout: stderr: mksh: <stdin>[3]: ${s:zero}: bad substitution |
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: |
toysh | 7 Triple parens should be disambiguated [toysh stdout] Expected '7 7\n', got '0 7\n' stdout: 0 7stderr: |
toysh | 8 Quadruple parens should be disambiguated [toysh stdout] Expected '15 15\n', got '0 15\n' stdout: 0 15stderr: |
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: |
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: ' ' |
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: |
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 |
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: |