| status | bash | mksh | ksh | toysh | sush | brush | osh | |
| pass | 15 | 13 | 13 | 7 | 13 | 14 | 15 | |
| ok | 0 | 2 | 0 | 0 | 0 | 0 | 0 | |
| FAIL | 0 | 0 | 2 | 8 | 2 | 1 | 0 | |
| total | 15 | 15 | 15 | 15 | 15 | 15 | 15 | |
| case | bash | mksh | ksh | toysh | sush | brush | osh | description |
| 0 | pass | pass | pass | FAIL | pass | FAIL | pass | Empty for loop is allowed |
| details | details | |||||||
| 1 | pass | pass | pass | FAIL | FAIL | pass | pass | Empty for loop without in. Do can be on the same line I guess. |
| details | details | |||||||
| 2 | pass | pass | pass | pass | FAIL | pass | pass | Empty case statement |
| details | ||||||||
| 3 | pass | pass | pass | FAIL | pass | pass | pass | Last case without ;; |
| details | ||||||||
| 4 | pass | pass | pass | FAIL | pass | pass | pass | Only case without ;; |
| details | ||||||||
| 5 | pass | pass | pass | FAIL | pass | pass | pass | Case with optional ( |
| details | ||||||||
| 6 | pass | ok | FAIL | pass | pass | pass | pass | Empty action for case is syntax error |
| details | details | |||||||
| 7 | pass | pass | pass | FAIL | pass | pass | pass | Empty action is allowed for last case |
| details | ||||||||
| 8 | pass | pass | pass | FAIL | pass | pass | pass | Case with | pattern |
| details | ||||||||
| 9 | pass | ok | FAIL | pass | pass | pass | pass | Bare semi-colon not allowed |
| details | details | |||||||
| 10 | pass | pass | pass | FAIL | pass | pass | pass | Command substitution in default |
| details | ||||||||
| 11 | pass | pass | pass | pass | pass | pass | pass | Arithmetic expansion |
| 12 | pass | pass | pass | pass | pass | pass | pass | Newlines in compound lists |
| 13 | pass | pass | pass | pass | pass | pass | pass | Multiple here docs on one line |
| 14 | pass | pass | pass | pass | pass | pass | pass | cat here doc; echo; cat here doc |
90 passed, 2 OK, 0 not implemented, 0 BUG, 13 failed, 0 timeouts, 0 cases skipped
| toysh | 0 Empty for loop is allowed [toysh status] Expected 0, got 1 stdout: stderr: set: bad -- |
| brush | 0 Empty for loop is allowed [brush stdout] Expected u'', got 'hi\na\nhi\nb\n' stdout: hi a hi bstderr: |
| toysh | 1 Empty for loop without in. Do can be on the same line I guess. [toysh stdout] Expected 'hi\na\nhi\nb\n', got 'hi\n\n' stdout: histderr: set: bad -- |
| sush | 1 Empty for loop without in. Do can be on the same line I guess. [sush stdout] Expected 'hi\na\nhi\nb\n', got 'hi\n\n' [sush status] Expected 0, got 2 stdout: histderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: Unexpected token: do /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: Unexpected token: done |
| sush | 2 Empty case statement [sush status] Expected 0, got 2 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: Unexpected token: |
| toysh | 3 Last case without ;; [toysh status] Expected 0, got -6 stdout: Astderr: free(): invalid pointer |
| toysh | 4 Only case without ;; [toysh status] Expected 0, got -6 stdout: Astderr: free(): invalid pointer |
| toysh | 5 Case with optional ( [toysh stdout] Expected 'A\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 2: sh: syntax error: ( |
| mksh | 6 Empty action for case is syntax error stdout: stderr: mksh: <stdin>[4]: syntax error: ')' unexpected |
| ksh | 6 Empty action for case is syntax error [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[4]: syntax error: unexpected ')' |
| toysh | 7 Empty action is allowed for last case [toysh status] Expected 0, got -6 stdout: stderr: free(): invalid pointer |
| toysh | 8 Case with | pattern [toysh status] Expected 0, got -6 stdout: Astderr: free(): invalid pointer |
| mksh | 9 Bare semi-colon not allowed stdout: stderr: mksh: <stdin>[1]: syntax error: ';' unexpected |
| ksh | 9 Bare semi-colon not allowed [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected ';' |
| toysh | 10 Command substitution in default [toysh stdout] Expected '/bin\n', got '$(ls -d /bin)\n' stdout: $(ls -d /bin)stderr: |