| status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
| pass | 15 | 15 | 15 | 13 | 13 | 13 | 7 | 13 | 14 | 15 | |
| ok | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | |
| FAIL | 0 | 0 | 0 | 2 | 0 | 2 | 8 | 2 | 1 | 0 | |
| total | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | |
| case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
| 0 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Empty for loop is allowed |
| details | details | ||||||||||
| 1 | pass | pass | pass | 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 | pass | pass | pass | FAIL | pass | pass | Empty case statement |
| details | |||||||||||
| 3 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Last case without ;; |
| details | |||||||||||
| 4 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Only case without ;; |
| details | |||||||||||
| 5 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Case with optional ( |
| details | |||||||||||
| 6 | pass | pass | pass | FAIL | ok | FAIL | pass | pass | pass | pass | Empty action for case is syntax error |
| details | details | details | |||||||||
| 7 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Empty action is allowed for last case |
| details | |||||||||||
| 8 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Case with | pattern |
| details | |||||||||||
| 9 | pass | pass | pass | FAIL | ok | FAIL | pass | pass | pass | pass | Bare semi-colon not allowed |
| details | details | details | |||||||||
| 10 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Command substitution in default |
| details | |||||||||||
| 11 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Arithmetic expansion |
| 12 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Newlines in compound lists |
| 13 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Multiple here docs on one line |
| 14 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | cat here doc; echo; cat here doc |
133 passed, 2 OK, 0 not implemented, 0 BUG, 15 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: syntax error near unexpected token: do /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: syntax error near 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: syntax error near 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: ( |
| zsh | 6 Empty action for case is syntax error [zsh status] Expected 2 Got 1 stdout: stderr: zsh: parse error near `)' zsh: parse error near `;;' zsh: parse error near `)' zsh: parse error near `esac' |
| 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 |
| zsh | 9 Bare semi-colon not allowed [zsh status] Expected 2 Got 0 stdout: stderr: |
| 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: |