| status | bash | mksh | ksh | toysh | sush | brush | osh | |
| pass | 12 | 9 | 9 | 14 | 8 | 12 | 14 | |
| ok | 3 | 5 | 0 | 0 | 0 | 0 | 1 | |
| BUG | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
| FAIL | 0 | 0 | 6 | 1 | 7 | 3 | 0 | |
| total | 15 | 15 | 15 | 15 | 15 | 15 | 15 | |
| case | bash | mksh | ksh | toysh | sush | brush | osh | description |
| 0 | pass | BUG | FAIL | pass | pass | pass | pass | Incomplete Function |
| details | details | |||||||
| 1 | pass | ok | FAIL | pass | pass | pass | pass | Incomplete Function 2 |
| details | details | |||||||
| 2 | pass | ok | FAIL | pass | pass | pass | pass | Bad function |
| details | details | |||||||
| 3 | ok | pass | pass | FAIL | FAIL | FAIL | ok | Unbraced function body. |
| details | details | details | details | details | ||||
| 4 | pass | pass | pass | pass | FAIL | pass | pass | Function with spaces, to see if ( and ) are separate tokens. |
| details | ||||||||
| 5 | pass | pass | pass | pass | pass | pass | pass | subshell function |
| 6 | pass | pass | pass | pass | pass | pass | pass | Hard case, function with } token in it |
| 7 | pass | pass | pass | pass | FAIL | pass | pass | . in function name |
| details | ||||||||
| 8 | pass | ok | FAIL | pass | FAIL | pass | pass | = in function name |
| details | details | details | ||||||
| 9 | ok | ok | FAIL | pass | pass | FAIL | pass | Function name with $ |
| details | details | details | details | |||||
| 10 | ok | ok | FAIL | pass | pass | FAIL | pass | Function name with command sub |
| details | details | details | details | |||||
| 11 | pass | pass | pass | pass | FAIL | pass | pass | Function name with ! |
| details | ||||||||
| 12 | pass | pass | pass | pass | FAIL | pass | pass | Function name with - |
| details | ||||||||
| 13 | pass | pass | pass | pass | FAIL | pass | pass | Break after ) is OK. |
| details | ||||||||
| 14 | pass | pass | pass | pass | pass | pass | pass | Nested definition |
78 passed, 9 OK, 0 not implemented, 1 BUG, 17 failed, 0 timeouts, 0 cases skipped
| mksh | 0 Incomplete Function stdout: stderr: |
| ksh | 0 Incomplete Function [ksh status] Expected 2, got 0 stdout: stderr: |
| mksh | 1 Incomplete Function 2 stdout: stderr: mksh: <stdin>[2]: syntax error: '{' unmatched
|
| ksh | 1 Incomplete Function 2 [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[2]: syntax error: unmatched '{'
|
| mksh | 2 Bad function stdout: stderr: mksh: <stdin>[1]: syntax error: 'ls' unexpected |
| ksh | 2 Bad function [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected 'ls' |
| bash | 3 Unbraced function body. stdout: stderr: bash: line 1: syntax error near unexpected token `ls' bash: line 1: `one_line() ls; one_line;' |
| toysh | 3 Unbraced function body. [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ls |
| sush | 3 Unbraced function body. [sush status] Expected 0, got 2 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: Unexpected token: () |
| brush | 3 Unbraced function body. [brush status] Expected 0, got 2 stdout: stderr: [31mERROR[0m main: syntax error near token `ls' (line 1 col 12) |
| osh | 3 Unbraced function body. stdout: stderr: one_line() ls; one_line;
^~
[ stdin ]:1: Unexpected word while parsing compound command (Id.Word_Compound)
|
| sush | 4 Function with spaces, to see if ( and ) are separate tokens. [sush stdout] Expected 'in-func\n', got '' [sush status] Expected 0, got 2 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: ( |
| sush | 7 . in function name [sush stdout] Expected 'func-name.ext\n', got '' [sush status] Expected 0, got 127 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: ( /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: func-name.ext: command not found |
| mksh | 8 = in function name stdout: stderr: mksh: <stdin>[1]: func-name=ext: invalid function name |
| ksh | 8 = in function name [ksh stdout] Expected 'func-name=ext\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: <stdin>[1]: func-name=ext: invalid function name |
| sush | 8 = in function name [sush stdout] Expected 'func-name=ext\n', got '' [sush status] Expected 0, got 127 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: ( /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: func-name=ext: command not found |
| bash | 9 Function name with $ stdout: stderr: bash: line 1: `$foo-bar': not a valid identifier |
| mksh | 9 Function name with $ stdout: stderr: mksh: <stdin>[1]: $foo-bar: invalid function name |
| ksh | 9 Function name with $ [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: $foo-bar: invalid function name |
| brush | 9 Function name with $ [brush status] Expected 2, got 0 stdout: stderr: |
| bash | 10 Function name with command sub stdout: stderr: bash: line 1: `foo-$(echo hi)': not a valid identifier |
| mksh | 10 Function name with command sub stdout: stderr: mksh: <stdin>[1]: foo-$(echo hi ): invalid function name |
| ksh | 10 Function name with command sub [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: foo-$(\echo hi ): invalid function name |
| brush | 10 Function name with command sub [brush status] Expected 2, got 0 stdout: stderr: |
| sush | 11 Function name with ! [sush status] Expected 0, got 2 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: () |
| sush | 12 Function name with - [sush status] Expected 0, got 2 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: () |
| sush | 13 Break after ) is OK. [sush stdout] Expected 'hi\nin-func\n', got 'in-func\n' [sush status] Expected 0, got 127 stdout: in-funcstderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: ( /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: fun: command not found |