| status | bash | mksh | ksh | toysh | sush | brush | osh | |
| pass | 32 | 26 | 26 | 32 | 31 | 27 | 34 | |
| ok | 1 | 3 | 0 | 0 | 0 | 0 | 0 | |
| N-I | 1 | 2 | 0 | 0 | 0 | 0 | 0 | |
| BUG | 0 | 3 | 0 | 0 | 0 | 0 | 0 | |
| FAIL | 0 | 0 | 8 | 2 | 3 | 7 | 0 | |
| total | 34 | 34 | 34 | 34 | 34 | 34 | 34 | |
| case | bash | mksh | ksh | toysh | sush | brush | osh | description |
| 0 | pass | pass | pass | pass | pass | pass | pass | Unquoted words |
| 1 | pass | pass | pass | pass | pass | pass | pass | Single-quoted |
| 2 | pass | pass | pass | pass | pass | pass | pass | Two single-quoted parts |
| 3 | pass | pass | pass | pass | pass | pass | pass | Unquoted and single quoted |
| 4 | pass | pass | pass | pass | pass | pass | pass | newline inside single-quoted string |
| 5 | pass | pass | pass | pass | pass | pass | pass | Double-quoted |
| 6 | pass | pass | pass | pass | pass | pass | pass | Mix of quotes in one word |
| 7 | pass | pass | pass | pass | pass | pass | pass | Var substitution |
| 8 | pass | pass | pass | pass | pass | pass | pass | Var substitution with braces |
| 9 | pass | pass | pass | pass | pass | pass | pass | Var substitution with braces, quoted |
| 10 | pass | pass | pass | pass | pass | pass | pass | Var length |
| 11 | pass | BUG | FAIL | pass | pass | pass | pass | Storing backslashes and then echoing them |
| details | details | |||||||
| 12 | pass | pass | pass | pass | pass | pass | pass | Backslash escapes |
| 13 | pass | pass | pass | pass | pass | pass | pass | Backslash escapes inside double quoted string |
| 14 | pass | BUG | FAIL | pass | pass | pass | pass | C-style backslash escapes inside double quoted string |
| details | details | |||||||
| 15 | pass | pass | pass | pass | pass | pass | pass | Literal $ |
| 16 | pass | pass | pass | pass | pass | pass | pass | Quoted Literal $ |
| 17 | pass | pass | pass | pass | pass | FAIL | pass | Line continuation |
| details | ||||||||
| 18 | pass | pass | pass | pass | pass | pass | pass | Line continuation inside double quotes |
| 19 | ok | ok | FAIL | pass | FAIL | FAIL | pass | $? split over multiple lines |
| details | details | details | details | details | ||||
| 20 | pass | ok | FAIL | pass | pass | pass | pass | Unterminated single quote |
| details | details | |||||||
| 21 | pass | ok | FAIL | pass | pass | pass | pass | Unterminated double quote |
| details | details | |||||||
| 22 | pass | pass | pass | pass | pass | pass | pass | Semicolon |
| 23 | pass | BUG | FAIL | pass | pass | pass | pass | No tab escapes within single quotes |
| details | details | |||||||
| 24 | pass | pass | pass | pass | pass | pass | pass | $'' |
| 25 | pass | pass | pass | pass | pass | FAIL | pass | $'' with quotes |
| details | ||||||||
| 26 | pass | pass | pass | pass | pass | pass | pass | $'' with newlines |
| 27 | pass | pass | pass | FAIL | FAIL | FAIL | pass | $'' octal escapes don't have leading 0 |
| details | details | details | ||||||
| 28 | pass | pass | pass | pass | pass | FAIL | pass | $'' octal escapes with fewer than 3 chars |
| details | ||||||||
| 29 | pass | N-I | FAIL | FAIL | pass | FAIL | pass | OSH allows invalid backslashes |
| details | details | details | details | |||||
| 30 | N-I | N-I | FAIL | pass | FAIL | FAIL | pass | YSH parse errors with parse_backslash |
| details | details | details | details | details | ||||
| 31 | pass | pass | pass | pass | pass | pass | pass | Oil allows unquoted foo\ bar |
| 32 | pass | pass | pass | pass | pass | pass | pass | $"" |
| 33 | pass | pass | pass | pass | pass | pass | pass | printf |
208 passed, 4 OK, 3 not implemented, 3 BUG, 20 failed, 0 timeouts, 0 cases skipped
| mksh | 11 Storing backslashes and then echoing them stdout: \ \ \ \stderr: |
| ksh | 11 Storing backslashes and then echoing them [ksh stdout] Expected '\\ \\\\\n\\ \\\\\n', got '\\ \\\n\\ \\\n' stdout: \ \ \ \stderr: |
| mksh | 14 C-style backslash escapes inside double quoted string stdout: stderr: |
| ksh | 14 C-style backslash escapes inside double quoted string [ksh stdout] Expected '\\a \\b\n', got '\x07 \x08\n' stdout: stderr: |
| brush | 17 Line continuation [brush stdout] Expected 'foo$\n', got 'foo\n' [brush status] Expected 0, got 127 stdout: foostderr: $: command not found |
| bash | 19 $? split over multiple lines stdout: 0stderr: |
| mksh | 19 $? split over multiple lines stdout: 0stderr: |
| ksh | 19 $? split over multiple lines [ksh stdout] Expected '$?\n', got '0\n' stdout: 0stderr: |
| sush | 19 $? split over multiple lines [sush stdout] Expected '$?\n', got '0\n' stdout: 0stderr: |
| brush | 19 $? split over multiple lines [brush stdout] Expected '$?\n', got '$\n' [brush status] Expected 0, got 127 stdout: $stderr: ?: command not found |
| mksh | 20 Unterminated single quote stdout: stderr: mksh: <stdin>[2]: no closing quote |
| ksh | 20 Unterminated single quote [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[2]: no closing quote |
| mksh | 21 Unterminated double quote stdout: stderr: mksh: <stdin>[2]: no closing quote |
| ksh | 21 Unterminated double quote [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[2]: no closing quote |
| mksh | 23 No tab escapes within single quotes stdout: a bstderr: |
| ksh | 23 No tab escapes within single quotes [ksh stdout] Expected 'a\\tb\n', got 'a\tb\n' stdout: a bstderr: |
| brush | 25 $'' with quotes [brush stdout] Expected 'single \' double "\n', got '' [brush status] Expected 0, got 2 stdout: stderr: [31mERROR[0m main: unterminated single quote at line 1 col 27 (detected near line 2 column 1) |
| toysh | 27 $'' octal escapes don't have leading 0 [toysh stdout] Expected ' 001 377\n', got ' 001 303 277\n' stdout: 001 303 277stderr: |
| sush | 27 $'' octal escapes don't have leading 0 [sush stdout] Expected ' 001 377\n', got ' 001 303 277\n' stdout: 001 303 277stderr: |
| brush | 27 $'' octal escapes don't have leading 0 [brush stdout] Expected ' 001 377\n', got ' 001 \\ 3 7 7\n' stdout: 001 \ 3 7 7stderr: |
| brush | 28 $'' octal escapes with fewer than 3 chars [brush stdout] Expected ' 001 \\t \\t I \\n\n', got ' \\ 1 \\ 1 1 \\ 1 1 \\ 1 1 1 \\n\n' stdout: \ 1 \ 1 1 \ 1 1 \ 1 1 1 \nstderr: |
| mksh | 29 OSH allows invalid backslashes stdout: stderr: |
| ksh | 29 OSH allows invalid backslashes [ksh stdout] Expected '\\uZ \\u{03bc \\z\n', got 'uZ u{03bc z\n' stdout: uZ u{03bc z
stderr: |
| toysh | 29 OSH allows invalid backslashes [toysh stdout] Expected '\\uZ \\u{03bc \\z\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
| brush | 29 OSH allows invalid backslashes [brush stdout] Expected '\\uZ \\u{03bc \\z\n', got '\\\\Z \\\\{03bc \\z\n' stdout: \\Z \\{03bc \z
stderr: |
| bash | 30 YSH parse errors with parse_backslash stdout: stderr: |
| mksh | 30 YSH parse errors with parse_backslash stdout: stderr: |
| ksh | 30 YSH parse errors with parse_backslash [ksh status] Expected 2, got 0 stdout: stderr: |
| sush | 30 YSH parse errors with parse_backslash [sush status] Expected 2, got 0 stdout: stderr: |
| brush | 30 YSH parse errors with parse_backslash [brush status] Expected 2, got 0 stdout: stderr: |