status | bash | mksh | ksh | toysh | sush | brush | osh | |
pass | 27 | 20 | 21 | 14 | 22 | 23 | 27 | |
ok | 0 | 3 | 0 | 0 | 0 | 0 | 0 | |
N-I | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
BUG | 0 | 3 | 0 | 0 | 0 | 0 | 0 | |
FAIL | 0 | 0 | 6 | 13 | 5 | 4 | 0 | |
total | 27 | 27 | 27 | 27 | 27 | 27 | 27 | |
case | bash | mksh | ksh | toysh | sush | brush | osh | description |
0 | pass | pass | pass | FAIL | pass | pass | pass | echo dashes |
details | ||||||||
1 | pass | BUG | FAIL | pass | pass | pass | pass | echo backslashes |
details | details | |||||||
2 | pass | pass | pass | pass | pass | pass | pass | echo -e backslashes |
3 | pass | ok | FAIL | pass | pass | pass | pass | echo builtin should disallow typed args - literal |
details | details | |||||||
4 | pass | ok | FAIL | pass | pass | pass | pass | echo builtin should disallow typed args - variable |
details | details | |||||||
5 | pass | pass | pass | pass | pass | pass | pass | echo -en |
6 | pass | ok | FAIL | pass | pass | pass | pass | echo -ez (invalid flag) |
details | details | |||||||
7 | pass | pass | pass | FAIL | pass | pass | pass | echo -e with embedded newline |
details | ||||||||
8 | pass | pass | pass | FAIL | pass | pass | pass | echo -e line continuation |
details | ||||||||
9 | pass | pass | pass | pass | pass | pass | pass | echo -e with C escapes |
10 | pass | pass | pass | pass | pass | pass | pass | echo -e with whitespace C escapes |
11 | pass | pass | pass | pass | pass | pass | pass | \0 |
12 | pass | N-I | FAIL | FAIL | pass | pass | pass | \c stops processing input |
details | details | details | ||||||
13 | pass | pass | pass | pass | pass | pass | pass | echo -e with hex escape |
14 | pass | pass | pass | FAIL | pass | pass | pass | echo -e with octal escape |
details | ||||||||
15 | pass | pass | pass | FAIL | FAIL | pass | pass | echo -e with 4 digit unicode escape |
details | details | |||||||
16 | pass | pass | pass | FAIL | FAIL | pass | pass | echo -e with 8 digit unicode escape |
details | details | |||||||
17 | pass | pass | pass | FAIL | pass | FAIL | pass | \0377 is the highest octal byte |
details | details | |||||||
18 | pass | pass | pass | FAIL | pass | FAIL | pass | \0400 is one more than the highest octal byte |
details | details | |||||||
19 | pass | BUG | FAIL | FAIL | pass | FAIL | pass | \0777 is out of range |
details | details | details | details | |||||
20 | pass | pass | pass | pass | pass | pass | pass | incomplete hex escape |
21 | pass | BUG | pass | pass | pass | FAIL | pass | \x |
details | details | |||||||
22 | pass | pass | pass | FAIL | pass | pass | pass | incomplete octal escape |
details | ||||||||
23 | pass | pass | pass | pass | FAIL | pass | pass | incomplete unicode escape |
details | ||||||||
24 | pass | pass | pass | FAIL | FAIL | pass | pass | \u6 |
details | details | |||||||
25 | pass | pass | pass | FAIL | FAIL | pass | pass | \0 \1 \8 |
details | details | |||||||
26 | pass | pass | pass | pass | pass | pass | pass | echo to redirected directory is an error |
154 passed, 3 OK, 1 not implemented, 3 BUG, 28 failed, 0 timeouts, 0 cases skipped
toysh | 0 echo dashes [toysh stdout] Expected '-\n--\n---\n', got '-\n\n---\n' stdout: - ---stderr: |
mksh | 1 echo backslashes stdout: \ \ \ \stderr: |
ksh | 1 echo backslashes [ksh stdout] Expected '\\\n\\\n\\\\\n\\\n', got '\\\n\\\n\\\n\\\n' stdout: \ \ \ \stderr: |
mksh | 3 echo builtin should disallow typed args - literal stdout: stderr: mksh: <stdin>[1]: syntax error: '42' unexpected |
ksh | 3 echo builtin should disallow typed args - literal [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected '42' |
mksh | 4 echo builtin should disallow typed args - variable stdout: stderr: mksh: <stdin>[1]: var: not found mksh: <stdin>[2]: syntax error: 'x' unexpected |
ksh | 4 echo builtin should disallow typed args - variable [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: var: inaccessible or not found E: ksh: <stdin>[2]: syntax error: unexpected 'x' |
mksh | 6 echo -ez (invalid flag) stdout: -ez abcstderr: |
ksh | 6 echo -ez (invalid flag) [ksh stdout] Expected '-ez abc\\n\n', got '-ez abc\n\n' stdout: -ez abcstderr: |
toysh | 7 echo -e with embedded newline [toysh stdout] Expected 'foo\nbar\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
toysh | 8 echo -e line continuation [toysh stdout] Expected 'foo\\\nbar\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
mksh | 12 \c stops processing input stdout: xy abde zzzstderr: |
ksh | 12 \c stops processing input [ksh stdout] Expected u'xy ab', got 'xy abde zzz' stdout: xy abde zzzstderr: |
toysh | 12 \c stops processing input [toysh stdout] Expected u'xy ab', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
toysh | 14 echo -e with octal escape [toysh stdout] Expected 'abcd$e\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
toysh | 15 echo -e with 4 digit unicode escape [toysh stdout] Expected 'abcdef\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 15 echo -e with 4 digit unicode escape [sush stdout] Expected 'abcdef\n', got 'abcd\\u0065f\n' stdout: abcd\u0065fstderr: |
toysh | 16 echo -e with 8 digit unicode escape [toysh stdout] Expected 'abcdef\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 16 echo -e with 8 digit unicode escape [sush stdout] Expected 'abcdef\n', got 'abcd\\U00000065f\n' stdout: abcd\U00000065fstderr: |
toysh | 17 \0377 is the highest octal byte [toysh stdout] Expected ' ff 37\n', got ' c3 bf 37\n' stdout: c3 bf 37stderr: |
brush | 17 \0377 is the highest octal byte [brush stdout] Expected ' ff 37\n', got ' ef bf bd 37\n' stdout: ef bf bd 37stderr: |
toysh | 18 \0400 is one more than the highest octal byte [toysh stdout] Expected ' 00 30\n', got ' c4 80 30\n' stdout: c4 80 30stderr: |
brush | 18 \0400 is one more than the highest octal byte [brush stdout] Expected ' 00 30\n', got '' stdout: stderr: [31mERROR[0m failed to parse integer |
mksh | 19 \0777 is out of range stdout: c3 bfstderr: |
ksh | 19 \0777 is out of range [ksh stdout] Expected ' ff\n', got ' c3 bf\n' stdout: c3 bfstderr: |
toysh | 19 \0777 is out of range [toysh stdout] Expected ' ff\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
brush | 19 \0777 is out of range [brush stdout] Expected ' ff\n', got '' stdout: stderr: [31mERROR[0m failed to parse integer |
mksh | 21 \x stdout: \0 \0 g \nstderr: |
brush | 21 \x [brush stdout] Expected ' \\ x \\ x g \\n\n', got ' \\ \\ \\ \\ g \\n\n' stdout: \ \ \ \ g \nstderr: |
toysh | 22 incomplete octal escape [toysh stdout] Expected ' a b c d 004\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 23 incomplete unicode escape [sush stdout] Expected ' a b c d 006\n', got ' a b c d \\ u 0 0 6\n' stdout: a b c d \ u 0 0 6stderr: |
toysh | 24 \u6 [toysh stdout] Expected ' 006\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 24 \u6 [sush stdout] Expected ' 006\n', got ' \\ u 6\n' stdout: \ u 6stderr: |
toysh | 25 \0 \1 \8 [toysh stdout] Expected ' \\0 \\ 1 \\ 8\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 25 \0 \1 \8 [sush stdout] Expected ' \\0 \\ 1 \\ 8\n', got ' \\0 001 \\ 8\n' stdout: \0 001 \ 8stderr: |