status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
pass | 19 | 8 | 12 | 13 | 12 | 13 | 9 | 15 | 14 | 22 | |
ok | 0 | 5 | 0 | 6 | 5 | 0 | 0 | 0 | 0 | 0 | |
N-I | 1 | 7 | 0 | 2 | 2 | 0 | 0 | 0 | 0 | 0 | |
BUG | 0 | 2 | 0 | 1 | 3 | 0 | 0 | 0 | 0 | 0 | |
FAIL | 2 | 0 | 10 | 0 | 0 | 9 | 13 | 7 | 8 | 0 | |
total | 22 | 22 | 22 | 22 | 22 | 22 | 22 | 22 | 22 | 22 | |
case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
0 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Eval |
1 | pass | BUG | FAIL | pass | pass | pass | FAIL | pass | pass | pass | eval accepts/ignores -- |
details | details | details | |||||||||
2 | pass | ok | FAIL | ok | ok | FAIL | FAIL | FAIL | FAIL | pass | eval usage |
details | details | details | details | details | details | details | details | ||||
3 | pass | pass | pass | pass | BUG | pass | FAIL | FAIL | FAIL | pass | eval string with 'break continue return error' |
details | details | details | details | ||||||||
4 | N-I | N-I | FAIL | N-I | N-I | FAIL | FAIL | FAIL | FAIL | pass | eval YSH block with 'break continue return error' |
details | details | details | details | details | details | details | details | details | |||
5 | pass | pass | pass | pass | pass | pass | pass | pass | FAIL | pass | exit within eval (regression) |
details | |||||||||||
6 | pass | pass | pass | pass | pass | pass | pass | pass | FAIL | pass | exit within source (regression) |
details | |||||||||||
7 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Source |
8 | pass | N-I | pass | pass | pass | pass | pass | FAIL | pass | pass | source accepts/ignores -- |
details | details | ||||||||||
9 | pass | ok | FAIL | ok | pass | pass | pass | pass | pass | pass | Source nonexistent |
details | details | details | |||||||||
10 | pass | N-I | pass | ok | ok | FAIL | FAIL | pass | pass | pass | Source with no arguments |
details | details | details | details | details | |||||||
11 | pass | N-I | pass | pass | pass | pass | FAIL | pass | pass | pass | Source with arguments |
details | details | ||||||||||
12 | pass | N-I | pass | pass | pass | pass | FAIL | FAIL | FAIL | pass | Source from a function, mutating argv and defining a local var |
details | details | details | details | ||||||||
13 | FAIL | ok | FAIL | ok | ok | FAIL | FAIL | pass | pass | pass | Source with syntax error |
details | details | details | details | details | details | details | |||||
14 | FAIL | ok | FAIL | ok | ok | FAIL | FAIL | pass | pass | pass | Eval with syntax error |
details | details | details | details | details | details | details | |||||
15 | pass | BUG | FAIL | pass | BUG | FAIL | FAIL | pass | pass | pass | Eval in does tilde expansion |
details | details | details | details | details | |||||||
16 | pass | N-I | FAIL | BUG | BUG | FAIL | FAIL | pass | pass | pass | Eval in bash does tilde expansion in array |
details | details | details | details | details | details | ||||||
17 | pass | N-I | FAIL | N-I | N-I | FAIL | pass | pass | pass | pass | source works for files in current directory (bash only) |
details | details | details | details | details | |||||||
18 | pass | pass | pass | pass | pass | pass | pass | FAIL | FAIL | pass | source looks in PATH for files |
details | details | ||||||||||
19 | pass | pass | pass | pass | pass | pass | FAIL | FAIL | FAIL | pass | source finds files in PATH before current dir |
details | details | details | |||||||||
20 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | source works for files in subdirectory |
21 | pass | ok | FAIL | ok | ok | FAIL | FAIL | pass | pass | pass | source doesn't crash when targeting a directory |
details | details | details | details | details | details |
137 passed, 16 OK, 12 not implemented, 6 BUG, 49 failed, 0 timeouts, 0 cases skipped
dash | 1 eval accepts/ignores -- stdout: stderr: dash: 1: eval: --: not found |
ash | 1 eval accepts/ignores -- [ash stdout] Expected 'hi\n', got '' [ash status] Expected 0, got 127 stdout: stderr: ash: eval: line 1: --: not found |
toysh | 1 eval accepts/ignores -- [toysh stdout] Expected 'hi\n', got '' [toysh status] Expected 0, got 127 stdout: stderr: sh: --: No such file or directory |
dash | 2 eval usage stdout: 127 127stderr: dash: 1: eval: -: not found dash: 1: eval: -z: not found |
ash | 2 eval usage [ash stdout] Expected '127\n2\n', got '127\n127\n' stdout: 127 127stderr: ash: eval: line 1: -: not found ash: eval: line 3: -z: not found |
zsh | 2 eval usage stdout: 0 127stderr: zsh: command not found: -z |
mksh | 2 eval usage stdout: 127stderr: mksh: -: not found mksh: <stdin>[3]: eval: -z: unknown option |
ksh | 2 eval usage [ksh stdout] Expected '127\n2\n', got '127\n' [ksh status] Expected 0, got 1 stdout: 127stderr: E: ksh: -: inaccessible or not found E: ksh: <stdin>[3]: eval: -z: unknown option |
toysh | 2 eval usage [toysh stdout] Expected '127\n2\n', got '127\n127\n' stdout: 127 127stderr: sh: -: No such file or directory sh: -z: No such file or directory |
sush | 2 eval usage [sush stdout] Expected '127\n2\n', got '127\n127\n' stdout: 127 127stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: -: command not found /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: -z: command not found |
brush | 2 eval usage [brush stdout] Expected '127\n2\n', got '127\n127\n' stdout: 127 127stderr: -: command not found -z: command not found |
mksh | 3 eval string with 'break continue return error' stdout: --- break 1 2 end func --- continue 1 2 end func --- return 1 --- false 1stderr: mksh: break: can't break mksh: break: can't break mksh: continue: can't continue mksh: continue: can't continue |
toysh | 3 eval string with 'break continue return error' [toysh stdout] Expected '--- break\n1\nend func\n--- continue\n1\n2\nend func\n--- return\n1\n--- false\n1\n' Got '--- break\n1\n' [toysh status] Expected 1, got -11 stdout: --- break 1stderr: set: bad -e |
sush | 3 eval string with 'break continue return error' [sush stdout] Expected '--- break\n1\nend func\n--- continue\n1\n2\nend func\n--- return\n1\n--- false\n1\n' Got '--- break\n1\nend func\n--- continue\n1\nend func\n--- return\n1\n' stdout: --- break 1 end func --- continue 1 end func --- return 1stderr: |
brush | 3 eval string with 'break continue return error' [brush stdout] Expected '--- break\n1\nend func\n--- continue\n1\n2\nend func\n--- return\n1\n--- false\n1\n' Got '--- break\n1\n2\nend func\n--- continue\n1\n2\nend func\n--- return\n1\n2\nend func\n--- false\n1\n2\nend func\nstatus=0\n' [brush status] Expected 1, got 0 stdout: --- break 1 2 end func --- continue 1 2 end func --- return 1 2 end func --- false 1 2 end func status=0stderr: |
bash | 4 eval YSH block with 'break continue return error' stdout: stderr: |
dash | 4 eval YSH block with 'break continue return error' stdout: stderr: |
ash | 4 eval YSH block with 'break continue return error' [ash stdout] Expected '--- break\n1\nend func\n--- continue\n1\n2\nend func\n--- return\n1\n--- false\n1\n' Got '' [ash status] Expected 1, got 2 stdout: stderr: ash: shopt: not found ash: syntax error: unexpected "(" |
zsh | 4 eval YSH block with 'break continue return error' stdout: stderr: |
mksh | 4 eval YSH block with 'break continue return error' stdout: stderr: |
ksh | 4 eval YSH block with 'break continue return error' [ksh stdout] Expected '--- break\n1\nend func\n--- continue\n1\n2\nend func\n--- return\n1\n--- false\n1\n' Got '' stdout: stderr: E: ksh: <stdin>[3]: shopt: inaccessible or not found E: ksh: <stdin>[5]: syntax error: unexpected '(' |
toysh | 4 eval YSH block with 'break continue return error' [toysh stdout] Expected '--- break\n1\nend func\n--- continue\n1\n2\nend func\n--- return\n1\n--- false\n1\n' Got '' [toysh status] Expected 1, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 4 eval YSH block with 'break continue return error' [sush stdout] Expected '--- break\n1\nend func\n--- continue\n1\n2\nend func\n--- return\n1\n--- false\n1\n' Got 'end func\n--- \nstatus=2\n' [sush status] Expected 1, got 0 stdout: end func --- status=2stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: shopt: ysh:all: not supported yet /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: Unexpected token: (; /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 9: Unexpected token: (b) /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 10: Unexpected token: done /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 12: Unexpected token: } /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 13: var: command not found /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 15: Unexpected token: (break)], /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 16: Unexpected token: (continue)], /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 17: Unexpected token: (return)], /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 18: Unexpected token: (false)], /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 18: ]: command not found /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 21: Unexpected token: (cases) /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 21: var: command not found /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 24: Unexpected token: (; /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 25: Unexpected token: } |
brush | 4 eval YSH block with 'break continue return error' [brush stdout] Expected '--- break\n1\nend func\n--- continue\n1\n2\nend func\n--- return\n1\n--- false\n1\n' Got 'end func\n--- \nstatus=2\n' [brush status] Expected 1, got 0 stdout: end func --- status=2stderr: shopt: ysh:all: invalid shell option name [31mERROR[0m main: syntax error near token `;' (line 1 col 22) [31mERROR[0m main: syntax error near token `(' (line 3 col 18) [31mERROR[0m main: syntax error near token ` ' (line 1 col 7) [31mERROR[0m main: syntax error near token ` ' (line 1 col 2) var: command not found [31mERROR[0m main: syntax error near token `],' (line 1 col 21) [31mERROR[0m main: syntax error near token `],' (line 1 col 27) [31mERROR[0m main: syntax error near token `],' (line 1 col 23) [31mERROR[0m main: syntax error near token `],' (line 1 col 21) ]: command not found [31mERROR[0m main: syntax error near token `(' (line 1 col 18) var: command not found [31mERROR[0m main: syntax error near token `;' (line 1 col 20) [31mERROR[0m main: syntax error near token ` ' (line 1 col 2) |
brush | 5 exit within eval (regression) [brush stdout] Expected u'', got 'should not get here\n' [brush status] Expected 42, got 0 stdout: should not get herestderr: |
brush | 6 exit within source (regression) [brush stdout] Expected u'', got 'should not get here\n' [brush status] Expected 42, got 0 stdout: should not get herestderr: |
dash | 8 source accepts/ignores -- stdout: stderr: dash: 2: source: not found |
sush | 8 source accepts/ignores -- [sush stdout] Expected 'foo\n', got '' [sush status] Expected 0, got 1 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: --: No such file or directory |
dash | 9 Source nonexistent stdout: status=127stderr: dash: 1: source: not found |
ash | 9 Source nonexistent [ash stdout] Expected 'status=1\n', got '' [ash status] Expected 0, got 2 stdout: stderr: ash: source: line 1: can't open '/nonexistent/path': No such file or directory |
zsh | 9 Source nonexistent stdout: status=127stderr: source: no such file or directory: /nonexistent/path |
dash | 10 Source with no arguments stdout: status=127stderr: dash: 1: source: not found |
zsh | 10 Source with no arguments stdout: status=1stderr: source: not enough arguments |
mksh | 10 Source with no arguments stdout: status=1stderr: mksh: <stdin>[1]: source: missing argument |
ksh | 10 Source with no arguments [ksh stdout] Expected 'status=2\n', got 'status=1\n' stdout: status=1stderr: E: ksh: <stdin>[1]: source: missing argument |
toysh | 10 Source with no arguments [toysh stdout] Expected 'status=2\n', got 'status=1\n' stdout: status=1stderr: source: Needs 1 argument (see "source --help") |
dash | 11 Source with arguments stdout: show-argv:stderr: |
toysh | 11 Source with arguments [toysh stdout] Expected 'show-argv: foo bar\n', got 'show-argv: /home/andy/git/oils-for-unix/oils/spec/testdata/show-argv.sh foo bar\n' stdout: show-argv: /home/andy/git/oils-for-unix/oils/spec/testdata/show-argv.sh foo barstderr: |
dash | 12 Source from a function, mutating argv and defining a local var stdout: source-argv: args to func source-argv: to func func foo=foo_val foo=stderr: |
toysh | 12 Source from a function, mutating argv and defining a local var [toysh stdout] Expected 'source-argv: args to func\nsource-argv: args to src\nto func\nfoo=foo_val\nfoo=\n' Got 'source-argv: /home/andy/git/oils-for-unix/oils/spec/testdata/source-argv.sh\nsource-argv: /home/andy/git/oils-for-unix/oils/spec/testdata/source-argv.sh args to src\nargs to func\nfoo=foo_val\nfoo=\n' stdout: source-argv: /home/andy/git/oils-for-unix/oils/spec/testdata/source-argv.sh source-argv: /home/andy/git/oils-for-unix/oils/spec/testdata/source-argv.sh args to src args to func foo=foo_val foo=stderr: |
sush | 12 Source from a function, mutating argv and defining a local var [sush stdout] Expected 'source-argv: args to func\nsource-argv: args to src\nto func\nfoo=foo_val\nfoo=\n' Got 'source-argv:\nsource-argv: args to src\nargs to func\nfoo=\nfoo=\n' stdout: source-argv: source-argv: args to src args to func foo= foo=stderr: |
brush | 12 Source from a function, mutating argv and defining a local var [brush stdout] Expected 'source-argv: args to func\nsource-argv: args to src\nto func\nfoo=foo_val\nfoo=\n' Got 'source-argv:\nsource-argv: args to src\nargs to func\nfoo=foo_val\nfoo=\n' stdout: source-argv: source-argv: args to src args to func foo=foo_val foo=stderr: |
bash | 13 Source with syntax error [bash stdout] Expected 'status=1\n', got 'status=2\n' stdout: status=2stderr: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-eval-source.test.sh/13-bash/syntax-error.sh: line 1: syntax error near unexpected token `newline' /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-eval-source.test.sh/13-bash/syntax-error.sh: line 1: `echo >' |
dash | 13 Source with syntax error stdout: stderr: dash: 2: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-eval-source.test.sh/13-dash/syntax-error.sh: Syntax error: newline unexpected |
ash | 13 Source with syntax error [ash stdout] Expected 'status=2\n', got '' [ash status] Expected 0, got 2 stdout: stderr: ash: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-eval-source.test.sh/13-ash/syntax-error.sh: line 2: syntax error: unexpected newline |
zsh | 13 Source with syntax error stdout: status=126stderr: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-eval-source.test.sh/13-zsh/syntax-error.sh:2: parse error near `\n' |
mksh | 13 Source with syntax error stdout: status=1stderr: mksh: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-eval-source.test.sh/13-mksh/syntax-error.sh[1]: syntax error: 'newline' unexpected |
ksh | 13 Source with syntax error [ksh stdout] Expected 'status=2\n', got 'status=1\n' stdout: status=1stderr: E: ksh: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-eval-source.test.sh/13-ksh/syntax-error.sh[1]: syntax error: unexpected 'newline' |
toysh | 13 Source with syntax error [toysh stdout] Expected 'status=2\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-eval-source.test.sh/13-toysh/syntax-error.sh: line 1: sh: syntax error: \n |
bash | 14 Eval with syntax error [bash stdout] Expected 'status=1\n', got 'status=2\n' stdout: status=2stderr: bash: eval: line 1: syntax error near unexpected token `newline' bash: eval: line 1: `echo >' |
dash | 14 Eval with syntax error stdout: stderr: dash: 1: eval: Syntax error: end of file unexpected |
ash | 14 Eval with syntax error [ash stdout] Expected 'status=2\n', got '' [ash status] Expected 0, got 2 stdout: stderr: ash: eval: line 1: syntax error: unexpected end of file |
zsh | 14 Eval with syntax error stdout: status=1stderr: zsh: parse error near `>' |
mksh | 14 Eval with syntax error stdout: stderr: mksh: syntax error: 'newline' unexpected |
ksh | 14 Eval with syntax error [ksh stdout] Expected 'status=2\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: syntax error: unexpected 'newline' |
toysh | 14 Eval with syntax error [toysh stdout] Expected 'status=2\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: \n |
dash | 15 Eval in does tilde expansion stdout: FALSEstderr: dash: 4: [[: not found dash: 5: [[: not found |
ash | 15 Eval in does tilde expansion [ash stdout] Expected 'FALSE\nFALSE\nTRUE\n', got 'FALSE\n' [ash status] Expected 0, got 2 stdout: FALSEstderr: ash: /boot: unknown operand ash: /boot: unknown operand |
mksh | 15 Eval in does tilde expansion stdout: FALSEstderr: |
ksh | 15 Eval in does tilde expansion [ksh stdout] Expected 'FALSE\nFALSE\nTRUE\n', got 'FALSE\n' [ksh status] Expected 0, got 1 stdout: FALSEstderr: |
toysh | 15 Eval in does tilde expansion [toysh stdout] Expected 'FALSE\nFALSE\nTRUE\n', got 'FALSE\n' [toysh status] Expected 0, got 1 stdout: FALSEstderr: |
dash | 16 Eval in bash does tilde expansion in array stdout: stderr: dash: 1: eval: Syntax error: "(" unexpected |
ash | 16 Eval in bash does tilde expansion in array [ash stdout] Expected 'FALSE\nFALSE\nTRUE\n', got '' [ash status] Expected 0, got 2 stdout: stderr: ash: eval: line 6: syntax error: unexpected "(" |
zsh | 16 Eval in bash does tilde expansion in array stdout: FALSE FALSEstderr: |
mksh | 16 Eval in bash does tilde expansion in array stdout: FALSEstderr: |
ksh | 16 Eval in bash does tilde expansion in array [ksh stdout] Expected 'FALSE\nFALSE\nTRUE\n', got 'FALSE\n' [ksh status] Expected 0, got 1 stdout: FALSEstderr: |
toysh | 16 Eval in bash does tilde expansion in array [toysh stdout] Expected 'FALSE\nFALSE\nTRUE\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 6: sh: syntax error: ~ |
dash | 17 source works for files in current directory (bash only) stdout: stderr: dash: 3: .: cmd: not found |
ash | 17 source works for files in current directory (bash only) [ash stdout] Expected 'current dir\nstatus=0\n', got '' [ash status] Expected 0, got 2 stdout: stderr: ash: .: line 3: cmd: not found |
zsh | 17 source works for files in current directory (bash only) stdout: status=127stderr: .: no such file or directory: cmd |
mksh | 17 source works for files in current directory (bash only) stdout: stderr: mksh: <stdin>[3]: .: cmd: No such file or directory |
ksh | 17 source works for files in current directory (bash only) [ksh stdout] Expected 'current dir\nstatus=0\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: <stdin>[3]: .: cmd: No such file or directory |
sush | 18 source looks in PATH for files [sush stdout] Expected 'hi\n', got '' stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: cmd: No such file or directory |
brush | 18 source looks in PATH for files [brush stdout] Expected 'hi\n', got '' stdout: stderr: [31mERROR[0m failed to source file: cmd; i/o error: No such file or directory (os error 2) |
toysh | 19 source finds files in PATH before current dir [toysh stdout] Expected 'path\nstatus=0\n', got 'current dir\nstatus=0\n' stdout: current dir status=0stderr: |
sush | 19 source finds files in PATH before current dir [sush stdout] Expected 'path\nstatus=0\n', got 'current dir\nstatus=0\n' stdout: current dir status=0stderr: |
brush | 19 source finds files in PATH before current dir [brush stdout] Expected 'path\nstatus=0\n', got 'current dir\nstatus=0\n' stdout: current dir status=0stderr: |
dash | 21 source doesn't crash when targeting a directory stdout: status=0stderr: |
ash | 21 source doesn't crash when targeting a directory [ash stdout] Expected 'status=1\n', got 'status=0\n' stdout: status=0stderr: |
zsh | 21 source doesn't crash when targeting a directory stdout: status=0stderr: |
mksh | 21 source doesn't crash when targeting a directory stdout: status=0stderr: |
ksh | 21 source doesn't crash when targeting a directory [ksh stdout] Expected 'status=1\n', got 'status=0\n' stdout: status=0stderr: |
toysh | 21 source doesn't crash when targeting a directory [toysh stdout] Expected 'status=1\n', got 'status=0\n' stdout: status=0stderr: |