status | bash | mksh | ksh | toysh | sush | brush | osh | |
pass | 21 | 20 | 20 | 19 | 17 | 19 | 22 | |
ok | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
N-I | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
BUG | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |
FAIL | 0 | 0 | 2 | 3 | 5 | 3 | 0 | |
total | 22 | 22 | 22 | 22 | 22 | 22 | 22 | |
case | bash | mksh | ksh | toysh | sush | brush | osh | description |
0 | pass | pass | pass | pass | FAIL | pass | pass | >$file touches a file |
details | ||||||||
1 | pass | pass | pass | pass | pass | FAIL | pass | $(< $file) yields the contents of the file |
details | ||||||||
2 | pass | pass | pass | pass | pass | pass | pass | $(< file) with more statements |
3 | pass | pass | pass | pass | FAIL | pass | pass | < file in pipeline and subshell doesn't work |
details | ||||||||
4 | pass | pass | pass | pass | pass | pass | pass | Leading redirect in a simple command |
5 | pass | pass | pass | pass | pass | pass | pass | Redirect in the middle of a simple command |
6 | pass | pass | pass | pass | pass | pass | pass | Redirect in command sub |
7 | pass | pass | pass | FAIL | pass | pass | pass | Redirect in the middle of two assignments |
details | ||||||||
8 | BUG | pass | pass | pass | FAIL | pass | pass | Redirect in assignment |
details | details | |||||||
9 | pass | pass | pass | pass | pass | pass | pass | Redirect in function body |
10 | pass | pass | pass | pass | pass | pass | pass | Redirect in function body is evaluated multiple times |
11 | pass | pass | pass | pass | pass | pass | pass | Redirect in function body AND function call |
12 | pass | N-I | FAIL | FAIL | FAIL | FAIL | pass | redirect bash extensions: [[ (( for (( |
details | details | details | details | details | ||||
13 | pass | pass | pass | pass | pass | pass | pass | redirect if |
14 | pass | pass | pass | pass | pass | pass | pass | redirect case |
15 | pass | pass | pass | pass | pass | pass | pass | redirect while |
16 | pass | pass | pass | pass | pass | pass | pass | redirect for loop |
17 | pass | pass | pass | pass | pass | pass | pass | redirect subshell |
18 | pass | ok | FAIL | pass | FAIL | FAIL | pass | Prefix redirect for loop -- not allowed |
details | details | details | details | |||||
19 | pass | pass | pass | pass | pass | pass | pass | Brace group redirect |
20 | pass | pass | pass | pass | pass | pass | pass | Redirect function stdout |
21 | pass | pass | pass | FAIL | pass | pass | pass | Nested function stdout redirect |
details |
138 passed, 1 OK, 1 not implemented, 1 BUG, 13 failed, 0 timeouts, 0 cases skipped
sush | 0 >$file touches a file [sush stdout] Expected 'status=1\nstatus=0\n', got 'status=1\nstatus=1\n' stdout: status=1 status=1stderr: |
brush | 1 $(< $file) yields the contents of the file [brush stdout] Expected 'FOO\n', got '\n' stdout: stderr: |
sush | 3 < file in pipeline and subshell doesn't work [sush stdout] Expected 'end\n', got '' [sush status] Expected 0, got 101 stdout: stderr: thread 'main' panicked at src/elements/pipeline.rs:47:32: called `Option::unwrap()` on a `None` value note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
toysh | 7 Redirect in the middle of two assignments [toysh stdout] Expected 'bar\nfoo\n', got '' stdout: stderr: sh: BAR=bar: No such file or directory |
bash | 8 Redirect in assignment stdout: FILE= FOO=stderr: foo |
sush | 8 Redirect in assignment [sush stdout] Expected 'FILE=\nfoo\nFOO=\n', got 'FILE=\nFOO=\n' stdout: FILE= FOO=stderr: foo cat: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/redirect-command.test.sh.3719549/08-sush/no-command.txt: No such file or directory |
mksh | 12 redirect bash extensions: [[ (( for (( stdout: stderr: |
ksh | 12 redirect bash extensions: [[ (( for (( [ksh stdout] Expected '0 dbracket\n0 dparen\n1 for-expr\n1 total\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: <stdin>[9]: syntax error: unexpected '((' |
toysh | 12 redirect bash extensions: [[ (( for (( [toysh stdout] Expected '0 dbracket\n0 dparen\n1 for-expr\n1 total\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 12 redirect bash extensions: [[ (( for (( [sush stdout] Expected '0 dbracket\n0 dparen\n1 for-expr\n1 total\n', got '0 dbracket\n1 for-expr\n1 total\n' [sush status] Expected 0, got 1 stdout: 0 dbracket 1 for-expr 1 totalstderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 8: Unexpected token: > wc: dparen: No such file or directory |
brush | 12 redirect bash extensions: [[ (( for (( [brush stdout] Expected '0 dbracket\n0 dparen\n1 for-expr\n1 total\n', got '0 dparen\n1 for-expr\n1 total\n' stdout: 0 dparen 1 for-expr 1 totalstderr: [31mERROR[0m main: syntax error near token `>' (line 1 col 13) wc: dbracket: No such file or directory |
mksh | 18 Prefix redirect for loop -- not allowed stdout: stderr: mksh: <stdin>[1]: for: not found mksh: <stdin>[2]: syntax error: 'do' unexpected |
ksh | 18 Prefix redirect for loop -- not allowed [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[1]: for: inaccessible or not found E: ksh: <stdin>[2]: syntax error: unexpected 'do' |
sush | 18 Prefix redirect for loop -- not allowed [sush status] Expected 2, got 1 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: Unexpected token: i /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: Unexpected token: do /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: Unexpected token: done cat: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/redirect-command.test.sh.3719549/18-sush/redirect2.txt: No such file or directory |
brush | 18 Prefix redirect for loop -- not allowed [brush status] Expected 2, got 1 stdout: stderr: [31mERROR[0m main: syntax error near token `i' (line 1 col 25) [31mERROR[0m main: syntax error near token ` ' (line 1 col 3) [31mERROR[0m main: syntax error near token ` ' (line 1 col 5) cat: /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/redirect-command.test.sh.3719549/18-brush/redirect2.txt: No such file or directory |
toysh | 21 Nested function stdout redirect [toysh stdout] Expected 'i1\ni2\n--\no1\no2\n', got 'i1\ni2\n\no1\no2\n' stdout: i1 i2 o1 o2stderr: |