status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
pass | 21 | 21 | 22 | 5 | 7 | 7 | 21 | 14 | 12 | 24 | |
ok | 2 | 3 | 0 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | |
N-I | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
BUG | 3 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
FAIL | 0 | 0 | 4 | 21 | 0 | 19 | 6 | 13 | 15 | 3 | |
TIME | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | |
total | 27 | 27 | 27 | 27 | 27 | 27 | 27 | 27 | 27 | 27 | |
case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
0 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Long Token - 65535 bytes |
1 | ok | ok | FAIL | FAIL | ok | FAIL | FAIL | FAIL | FAIL | pass | Token that's too long for Oils - 65536 bytes |
details | details | details | details | details | details | details | details | details | |||
2 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | $% is not a parse error |
3 | ok | pass | pass | FAIL | ok | FAIL | FAIL | FAIL | FAIL | pass | Bad braced var sub -- not allowed |
details | details | details | details | details | details | details | |||||
4 | BUG | BUG | FAIL | FAIL | BUG | FAIL | FAIL | FAIL | FAIL | pass | Bad var sub caught at parse time |
details | details | details | details | details | details | details | details | details | |||
5 | pass | pass | pass | FAIL | ok | FAIL | pass | pass | pass | pass | Incomplete while |
details | details | details | |||||||||
6 | pass | pass | pass | FAIL | ok | FAIL | pass | FAIL | FAIL | pass | Incomplete for |
details | details | details | details | details | |||||||
7 | pass | pass | pass | FAIL | ok | FAIL | pass | pass | pass | pass | Incomplete if |
details | details | details | |||||||||
8 | pass | pass | pass | FAIL | ok | FAIL | pass | pass | pass | pass | do unexpected |
details | details | details | |||||||||
9 | pass | pass | pass | FAIL | ok | FAIL | pass | FAIL | FAIL | pass | } is a parse error |
details | details | details | details | details | |||||||
10 | pass | pass | pass | FAIL | ok | FAIL | pass | FAIL | FAIL | pass | { is its own word, needs a space |
details | details | details | details | details | |||||||
11 | pass | pass | pass | FAIL | pass | pass | FAIL | FAIL | FAIL | pass | } on the second line |
details | details | details | details | ||||||||
12 | BUG | pass | pass | FAIL | ok | FAIL | pass | FAIL | FAIL | pass | Invalid for loop variable name |
details | details | details | details | details | details | ||||||
13 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | bad var name globally isn't parsed like an assignment |
14 | pass | ok | FAIL | pass | pass | pass | pass | FAIL | FAIL | pass | bad var name in export |
details | details | details | details | ||||||||
15 | pass | ok | FAIL | pass | pass | pass | pass | FAIL | FAIL | pass | bad var name in local |
details | details | details | details | ||||||||
16 | pass | pass | pass | FAIL | ok | FAIL | pass | pass | pass | pass | misplaced parentheses are not a subshell |
details | details | details | |||||||||
17 | pass | pass | pass | FAIL | ok | FAIL | pass | pass | pass | pass | incomplete command sub |
details | details | details | |||||||||
18 | pass | pass | pass | FAIL | ok | FAIL | pass | pass | pass | pass | incomplete backticks |
details | details | details | |||||||||
19 | pass | pass | pass | FAIL | ok | FAIL | pass | pass | pass | pass | misplaced ;; |
details | details | details | |||||||||
20 | pass | N-I | pass | FAIL | ok | FAIL | FAIL | pass | FAIL | pass | empty clause in [[ |
details | details | details | details | details | details | ||||||
21 | TIME | TIME | TIME | TIME | TIME | TIME | FAIL | pass | FAIL | pass | interactive parse error (regression) |
details | details | details | details | details | details | details | details | ||||
22 | BUG | pass | pass | FAIL | ok | FAIL | pass | FAIL | FAIL | FAIL | array literal inside array is a parse error |
details | details | details | details | details | details | details | |||||
23 | pass | pass | pass | FAIL | ok | FAIL | pass | FAIL | FAIL | FAIL | array literal inside loop is a parse error |
details | details | details | details | details | details | ||||||
24 | pass | pass | pass | FAIL | ok | FAIL | pass | FAIL | FAIL | FAIL | array literal in case |
details | details | details | details | details | details | ||||||
25 | pass | pass | pass | FAIL | ok | FAIL | pass | pass | pass | pass | %foo=() is parse error (regression) |
details | details | details | |||||||||
26 | pass | pass | pass | FAIL | pass | pass | pass | pass | pass | pass | echo =word is allowed |
details |
154 passed, 23 OK, 1 not implemented, 5 BUG, 81 failed, 6 timeouts, 0 cases skipped 3 failed under osh
bash | 1 Token that's too long for Oils - 65536 bytes stdout: status=0 65536 outstderr: |
dash | 1 Token that's too long for Oils - 65536 bytes stdout: status=0 65536 outstderr: |
ash | 1 Token that's too long for Oils - 65536 bytes [ash stdout] Expected 'status=2\n0 out\n', got 'status=0\n65536 out\n' stdout: status=0 65536 outstderr: |
zsh | 1 Token that's too long for Oils - 65536 bytes [zsh stdout] Expected 'status=2\n0 out\n', got 'status=0\n65536 out\n' stdout: status=0 65536 outstderr: |
mksh | 1 Token that's too long for Oils - 65536 bytes stdout: status=0 65536 outstderr: |
ksh | 1 Token that's too long for Oils - 65536 bytes [ksh stdout] Expected 'status=2\n0 out\n', got 'status=0\n65536 out\n' stdout: status=0 65536 outstderr: |
toysh | 1 Token that's too long for Oils - 65536 bytes [toysh stdout] Expected 'status=2\n0 out\n', got 'status=0\n65536 out\n' stdout: status=0 65536 outstderr: |
sush | 1 Token that's too long for Oils - 65536 bytes [sush stdout] Expected 'status=2\n0 out\n', got 'status=0\n65536 out\n' stdout: status=0 65536 outstderr: |
brush | 1 Token that's too long for Oils - 65536 bytes [brush stdout] Expected 'status=2\n0 out\n', got 'status=0\n65536 out\n' stdout: status=0 65536 outstderr: |
bash | 3 Bad braced var sub -- not allowed stdout: stderr: bash: line 1: ${%}: bad substitution |
zsh | 3 Bad braced var sub -- not allowed [zsh status] Expected 2, got 0 stdout: stderr: |
mksh | 3 Bad braced var sub -- not allowed stdout: stderr: mksh: <stdin>[1]: ${%}: bad substitution |
ksh | 3 Bad braced var sub -- not allowed [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: ${%}: bad substitution |
toysh | 3 Bad braced var sub -- not allowed [toysh status] Expected 2, got 1 stdout: stderr: main: line 1: sh: : bad substitution |
sush | 3 Bad braced var sub -- not allowed [sush status] Expected 2, got 1 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: `${%}': bad substitution |
brush | 3 Bad braced var sub -- not allowed [brush status] Expected 2, got 0 stdout: ${%}stderr: |
bash | 4 Bad var sub caught at parse time stdout: okstderr: |
dash | 4 Bad var sub caught at parse time stdout: okstderr: |
ash | 4 Bad var sub caught at parse time [ash status] Expected 2, got 0 stdout: okstderr: |
zsh | 4 Bad var sub caught at parse time [zsh status] Expected 2, got 0 stdout: okstderr: |
mksh | 4 Bad var sub caught at parse time stdout: okstderr: |
ksh | 4 Bad var sub caught at parse time [ksh status] Expected 2, got 0 stdout: okstderr: |
toysh | 4 Bad var sub caught at parse time [toysh status] Expected 2, got 0 stdout: okstderr: |
sush | 4 Bad var sub caught at parse time [sush status] Expected 2, got 0 stdout: okstderr: |
brush | 4 Bad var sub caught at parse time [brush status] Expected 2, got 0 stdout: okstderr: |
zsh | 5 Incomplete while [zsh status] Expected 2, got 1 stdout: stderr: zsh: parse error near `\n' |
mksh | 5 Incomplete while stdout: stderr: mksh: <stdin>[1]: syntax error: 'while' unmatched |
ksh | 5 Incomplete while [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unmatched 'while' |
zsh | 6 Incomplete for [zsh stdout] Expected u'', got 'status=1\n' [zsh status] Expected 2, got 0 stdout: status=1stderr: zsh: parse error near `\n' |
mksh | 6 Incomplete for stdout: stderr: mksh: <stdin>[1]: syntax error: 'newline' unexpected |
ksh | 6 Incomplete for [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected 'newline' |
sush | 6 Incomplete for [sush stdout] Expected u'', got 'hi\nstatus=0\n' [sush status] Expected 2, got 0 stdout: hi status=0stderr: |
brush | 6 Incomplete for [brush stdout] Expected u'', got 'status=2\n' [brush status] Expected 2, got 0 stdout: status=2stderr: [31mERROR[0m main: syntax error near token ` ' (line 1 col 13) |
zsh | 7 Incomplete if [zsh status] Expected 2, got 1 stdout: stderr: zsh: parse error near `\n' |
mksh | 7 Incomplete if stdout: stderr: mksh: <stdin>[1]: syntax error: 'if' unmatched |
ksh | 7 Incomplete if [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unmatched 'if' |
zsh | 8 do unexpected [zsh status] Expected 2, got 1 stdout: stderr: zsh: parse error near `do' |
mksh | 8 do unexpected stdout: stderr: mksh: <stdin>[1]: syntax error: 'do' unexpected |
ksh | 8 do unexpected [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected 'do' |
zsh | 9 } is a parse error [zsh stdout] Expected u'', got 'should not get here\n' [zsh status] Expected 2, got 0 stdout: should not get herestderr: zsh: parse error near `}' |
mksh | 9 } is a parse error stdout: stderr: mksh: <stdin>[1]: syntax error: '}' unexpected |
ksh | 9 } is a parse error [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected '}' |
sush | 9 } is a parse error [sush stdout] Expected u'', got 'should not get here\n' [sush status] Expected 2, got 0 stdout: should not get herestderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: } |
brush | 9 } is a parse error [brush stdout] Expected u'', got 'should not get here\n' [brush status] Expected 2, got 0 stdout: should not get herestderr: [31mERROR[0m main: syntax error near token ` ' (line 1 col 2) |
zsh | 10 { is its own word, needs a space [zsh stdout] Expected u'', got '_tmp\nstatus=0\n' [zsh status] Expected 2, got 0 stdout: _tmp status=0stderr: |
mksh | 10 { is its own word, needs a space stdout: stderr: mksh: <stdin>[1]: syntax error: '}' unexpected |
ksh | 10 { is its own word, needs a space [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected '}' |
sush | 10 { is its own word, needs a space [sush stdout] Expected u'', got 'status=2\n' [sush status] Expected 2, got 0 stdout: status=2stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: } |
brush | 10 { is its own word, needs a space [brush stdout] Expected u'', got 'status=2\n' [brush status] Expected 2, got 0 stdout: status=2stderr: [31mERROR[0m main: syntax error near token ` ' (line 1 col 7) |
zsh | 11 } on the second line [zsh status] Expected 127, got 0 stdout: _tmpstderr: |
toysh | 11 } on the second line [toysh status] Expected 127, got 2 stdout: stderr: set: bad -o errexit sh: {ls: No such file or directory main: line 3: sh: syntax error: } |
sush | 11 } on the second line [sush status] Expected 127, got 2 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: errexit: invalid option name /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: {ls: command not found /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: Unexpected token: } |
brush | 11 } on the second line [brush status] Expected 127, got 2 stdout: stderr: {ls: command not found [31mERROR[0m main: syntax error near token ` ' (line 1 col 2) |
bash | 12 Invalid for loop variable name stdout: donestderr: bash: line 3: `i.j': not a valid identifier |
zsh | 12 Invalid for loop variable name [zsh stdout] Expected u'', got 'hi\ndone\n' [zsh status] Expected 2, got 0 stdout: hi donestderr: zsh: parse error near `i.j' zsh: parse error near `done' |
mksh | 12 Invalid for loop variable name stdout: stderr: mksh: <stdin>[1]: for: bad identifier |
ksh | 12 Invalid for loop variable name [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: for: bad identifier |
sush | 12 Invalid for loop variable name [sush stdout] Expected u'', got 'hi\ndone\n' [sush status] Expected 2, got 0 stdout: hi donestderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: .j /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: Unexpected token: done |
brush | 12 Invalid for loop variable name [brush stdout] Expected u'', got 'hi\nhi\nhi\ndone\n' [brush status] Expected 2, got 0 stdout: hi hi hi donestderr: |
dash | 14 bad var name in export stdout: stderr: dash: 1: export: FOO-BAR: bad variable name |
ash | 14 bad var name in export [ash status] Expected 1, got 2 stdout: stderr: ash: export: line 1: FOO-BAR: bad variable name |
sush | 14 bad var name in export [sush status] Expected 1, got 0 stdout: stderr: |
brush | 14 bad var name in export [brush status] Expected 1, got 0 stdout: stderr: |
dash | 15 bad var name in local stdout: stderr: dash: 2: FOO-BAR: bad variable name |
ash | 15 bad var name in local [ash status] Expected 1, got 2 stdout: stderr: ash: FOO-BAR: bad variable name |
sush | 15 bad var name in local [sush status] Expected 1, got 0 stdout: stderr: |
brush | 15 bad var name in local [brush status] Expected 1, got 0 stdout: stderr: |
zsh | 16 misplaced parentheses are not a subshell [zsh status] Expected 2, got 1 stdout: stderr: zsh: unknown file attribute: b |
mksh | 16 misplaced parentheses are not a subshell stdout: stderr: mksh: <stdin>[1]: syntax error: '(' unexpected |
ksh | 16 misplaced parentheses are not a subshell [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected '(' |
zsh | 17 incomplete command sub [zsh status] Expected 2, got 1 stdout: stderr: zsh: parse error near `$(x' |
mksh | 17 incomplete command sub stdout: stderr: mksh: <stdin>[1]: syntax error: '(' unmatched |
ksh | 17 incomplete command sub [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unmatched '(' |
zsh | 18 incomplete backticks [zsh status] Expected 2, got 1 stdout: stderr: zsh: unmatched ` |
mksh | 18 incomplete backticks stdout: stderr: mksh: <stdin>[2]: no closing quote |
ksh | 18 incomplete backticks [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[2]: no closing quote |
zsh | 19 misplaced ;; [zsh status] Expected 2, got 1 stdout: stderr: zsh: parse error near `;;' |
mksh | 19 misplaced ;; stdout: stderr: mksh: <stdin>[1]: syntax error: ';;' unexpected |
ksh | 19 misplaced ;; [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected ';;' |
dash | 20 empty clause in [[ stdout: stderr: dash: 1: [[: not found |
zsh | 20 empty clause in [[ [zsh status] Expected 2, got 1 stdout: stderr: zsh: parse error near `||' |
mksh | 20 empty clause in [[ stdout: stderr: mksh: <stdin>[1]: syntax error: '||' expression expected |
ksh | 20 empty clause in [[ [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: expression expected '||' |
toysh | 20 empty clause in [[ [toysh status] Expected 2, got -11 stdout: stderr: |
brush | 20 empty clause in [[ [brush status] Expected 2, got 0 stdout: stderr: [31mERROR[0m main: syntax error near token `||' (line 1 col 4) |
toysh | 21 interactive parse error (regression) [toysh status] Expected 2, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
brush | 21 interactive parse error (regression) [brush status] Expected 2, got 0 stdout: stderr: [31mERROR[0m main: syntax error near token `)' (line 1 col 5) |
bash | 22 array literal inside array is a parse error stdout: len=0stderr: bash: line 1: syntax error near unexpected token `(' bash: line 1: `a=( inside=() )' |
zsh | 22 array literal inside array is a parse error [zsh stdout] Expected u'', got 'len=0\n' [zsh status] Expected 2, got 0 stdout: len=0stderr: zsh: parse error near `()' |
mksh | 22 array literal inside array is a parse error stdout: stderr: mksh: <stdin>[1]: syntax error: '(' unexpected |
ksh | 22 array literal inside array is a parse error [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected '(' |
sush | 22 array literal inside array is a parse error [sush stdout] Expected u'', got 'len=0\n' [sush status] Expected 2, got 0 stdout: len=0stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: ) |
brush | 22 array literal inside array is a parse error [brush stdout] Expected u'', got 'len=0\n' [brush status] Expected 2, got 0 stdout: len=0stderr: [31mERROR[0m main: syntax error near token `(' (line 1 col 12) |
osh | 22 array literal inside array is a parse error [osh status] Expected 2, got 1 stdout: stderr: a=( inside=() ) ^ [ stdin ]:1: fatal: Unexpected associative array literal |
zsh | 23 array literal inside loop is a parse error [zsh stdout] Expected u'', got 'x=\ndone\n' [zsh status] Expected 2, got 127 stdout: x= donestderr: zsh: parse error near `()' zsh: parse error near `done' zsh: parse error near `}' zsh: command not found: f |
mksh | 23 array literal inside loop is a parse error stdout: stderr: mksh: <stdin>[2]: syntax error: '(' unexpected |
ksh | 23 array literal inside loop is a parse error [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[2]: syntax error: unexpected '(' |
sush | 23 array literal inside loop is a parse error [sush stdout] Expected u'', got 'x=\ndone\n' [sush status] Expected 2, got 127 stdout: x= donestderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: Unexpected token: (); /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: Unexpected token: done /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 8: Unexpected token: } /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 8: f: command not found |
brush | 23 array literal inside loop is a parse error [brush stdout] Expected u'', got 'x=\ndone\n' [brush status] Expected 2, got 127 stdout: x= donestderr: [31mERROR[0m main: syntax error near token `(' (line 2 col 14) [31mERROR[0m main: syntax error near token ` ' (line 1 col 7) [31mERROR[0m main: syntax error near token ` ' (line 1 col 2) f: command not found |
osh | 23 array literal inside loop is a parse error [osh status] Expected 2, got 1 stdout: stderr: for x in a=(); do ^ [ stdin ]:2: fatal: Unexpected associative array literal |
zsh | 24 array literal in case [zsh stdout] Expected u'', got 'hi\n' [zsh status] Expected 2, got 127 stdout: histderr: zsh: parse error near `()' zsh: parse error near `)' zsh: parse error near `;;' zsh: parse error near `esac' zsh: parse error near `}' zsh: command not found: f |
mksh | 24 array literal in case stdout: stderr: mksh: <stdin>[2]: syntax error: '(' unexpected |
ksh | 24 array literal in case [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[2]: syntax error: unexpected '(' |
sush | 24 array literal in case [sush stdout] Expected u'', got 'hi\n' [sush status] Expected 2, got 127 stdout: histderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: Unexpected token: () /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: Unexpected token: ) /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: Unexpected token: ;; /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 8: Unexpected token: esac /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 9: Unexpected token: } /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 9: f: command not found |
brush | 24 array literal in case [brush stdout] Expected u'', got 'hi\n' [brush status] Expected 2, got 127 stdout: histderr: [31mERROR[0m main: syntax error near token `(' (line 2 col 10) [31mERROR[0m main: syntax error near token `)' (line 1 col 8) [31mERROR[0m main: syntax error near token `;;' (line 1 col 7) [31mERROR[0m main: syntax error near token ` ' (line 1 col 7) [31mERROR[0m main: syntax error near token ` ' (line 1 col 2) f: command not found |
osh | 24 array literal in case [osh status] Expected 2, got 1 stdout: stderr: case a=() in ^ [ stdin ]:2: fatal: Unexpected associative array literal |
zsh | 25 %foo=() is parse error (regression) [zsh status] Expected 2, got 1 stdout: stderr: zsh: parse error near `}' |
mksh | 25 %foo=() is parse error (regression) stdout: stderr: mksh: <stdin>[2]: %foo=: invalid function name |
ksh | 25 %foo=() is parse error (regression) [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[2]: %foo=: invalid function name |
zsh | 26 echo =word is allowed [zsh stdout] Expected '=word\n', got '' [zsh status] Expected 0, got 1 stdout: stderr: zsh: word not found |