| status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
| pass | 37 | 20 | 28 | 34 | 31 | 31 | 20 | 23 | 31 | 38 | |
| ok | 0 | 11 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 1 | |
| N-I | 0 | 8 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | |
| BUG | 3 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | |
| FAIL | 0 | 0 | 11 | 6 | 0 | 9 | 20 | 17 | 9 | 1 | |
| total | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | |
| case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
| 0 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | >& and <& are the same |
| 1 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | <& |
| details | |||||||||||
| 2 | pass | pass | pass | FAIL | pass | pass | pass | pass | pass | pass | 2>&1 with no command |
| details | |||||||||||
| 3 | pass | ok | FAIL | FAIL | ok | FAIL | FAIL | FAIL | pass | pass | 2&>1 (is it a redirect or is it like a&>1) |
| details | details | details | details | details | details | details | |||||
| 4 | pass | ok | pass | pass | pass | pass | pass | pass | pass | pass | Nonexistent file |
| details | |||||||||||
| 5 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Descriptor redirect with spaces |
| 6 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Filename redirect with spaces |
| 7 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Quoted filename redirect with spaces |
| 8 | BUG | ok | FAIL | FAIL | pass | pass | FAIL | pass | pass | pass | Descriptor redirect with filename |
| details | details | details | details | details | |||||||
| 9 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Redirect echo to stderr, and then redirect all of stdout somewhere. |
| 10 | pass | N-I | FAIL | pass | N-I | FAIL | pass | FAIL | FAIL | pass | Named file descriptor |
| details | details | details | details | details | details | ||||||
| 11 | pass | BUG | pass | FAIL | pass | FAIL | pass | pass | pass | pass | Double digit fd (20> file) |
| details | details | details | |||||||||
| 12 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | : 9> fdleak (OSH regression) |
| details | |||||||||||
| 13 | pass | pass | pass | pass | BUG | pass | FAIL | FAIL | pass | pass | : 3>&3 (OSH regression) |
| details | details | details | |||||||||
| 14 | pass | N-I | FAIL | pass | N-I | FAIL | pass | pass | pass | pass | : 3>&3- |
| details | details | details | details | ||||||||
| 15 | pass | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | 3>&- << EOF (OSH regression: fail to restore fds) |
| details | |||||||||||
| 16 | pass | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | Open file on descriptor 3 and write to it many times |
| details | |||||||||||
| 17 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Open file on descriptor 4 and write to it many times |
| 18 | pass | ok | pass | pass | pass | pass | FAIL | FAIL | FAIL | pass | Redirect to empty string |
| details | details | details | details | ||||||||
| 19 | pass | ok | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Redirect to file descriptor that's not open |
| details | details | details | |||||||||
| 20 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Open descriptor with exec |
| 21 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Open multiple descriptors with exec |
| 22 | pass | ok | pass | pass | pass | pass | FAIL | FAIL | pass | pass | >| to clobber |
| details | details | details | |||||||||
| 23 | pass | N-I | pass | pass | pass | pass | pass | pass | pass | pass | &> redirects stdout and stderr |
| details | |||||||||||
| 24 | pass | N-I | pass | pass | N-I | FAIL | FAIL | FAIL | FAIL | FAIL | >&word redirects stdout and stderr when word is not a number or - |
| details | details | details | details | details | details | details | |||||
| 25 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | 1>&- to close file descriptor |
| details | |||||||||||
| 26 | pass | N-I | FAIL | FAIL | N-I | FAIL | FAIL | FAIL | FAIL | pass | 1>&2- to move file descriptor |
| details | details | details | details | details | details | details | details | ||||
| 27 | BUG | ok | FAIL | FAIL | pass | pass | FAIL | FAIL | FAIL | pass | 1>&2- (Bash bug: fail to restore closed fd) |
| details | details | details | details | details | details | details | |||||
| 28 | pass | pass | pass | pass | pass | pass | FAIL | FAIL | pass | pass | <> for read/write |
| details | details | ||||||||||
| 29 | pass | pass | pass | pass | pass | pass | FAIL | FAIL | pass | pass | <> for read/write named pipes |
| details | details | ||||||||||
| 30 | pass | N-I | FAIL | pass | pass | pass | FAIL | FAIL | pass | pass | &>> appends stdout and stderr |
| details | details | details | details | ||||||||
| 31 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | exec redirect then various builtins |
| 32 | BUG | pass | FAIL | pass | pass | pass | FAIL | FAIL | FAIL | ok | can't mention big file descriptor |
| details | details | details | details | details | details | ||||||
| 33 | pass | ok | FAIL | pass | ok | FAIL | pass | pass | pass | pass | : >/dev/null 2> / (OSH regression: fail to pop fd frame) |
| details | details | details | details | ||||||||
| 34 | pass | ok | pass | pass | pass | pass | FAIL | pass | pass | pass | echo foo >&100 (OSH regression: does not fail with invalid fd 100) |
| details | details | ||||||||||
| 35 | pass | ok | pass | pass | pass | pass | FAIL | pass | pass | pass | echo foo >&N where N is first unused fd |
| details | details | ||||||||||
| 36 | pass | N-I | FAIL | pass | N-I | FAIL | FAIL | FAIL | FAIL | pass | exec {fd}>&- (OSH regression: fails to close fd) |
| details | details | details | details | details | details | details | |||||
| 37 | pass | ok | FAIL | pass | pass | pass | pass | FAIL | pass | pass | noclobber can still write to non-regular files like /dev/null |
| details | details | details | |||||||||
| 38 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Parsing of x=1> and related cases |
| 39 | pass | N-I | BUG | pass | BUG | FAIL | FAIL | FAIL | FAIL | pass | Parsing of x={myvar} and related cases |
| details | details | details | details | details | details | details |
293 passed, 14 OK, 13 not implemented, 7 BUG, 73 failed, 0 timeouts, 0 cases skipped 1 failed under osh
| toysh | 1 <& [toysh stdout] Expected '[foo51]\n' Got '[]\n' stdout: []stderr: sh: read: No such file or directory |
| zsh | 2 2>&1 with no command [zsh stdout] Expected 'status=42\nstatus=0\n' Got 'status=42\necho status=$?\n' stdout: status=42 echo status=$?stderr: |
| dash | 3 2&>1 (is it a redirect or is it like a&>1) stdout: status=0stderr: dash: 1: 2: not found |
| ash | 3 2&>1 (is it a redirect or is it like a&>1) [ash stdout] Expected 'status=127\n' Got 'status=0\n' stdout: status=0stderr: |
| zsh | 3 2&>1 (is it a redirect or is it like a&>1) [zsh stdout] Expected 'status=127\n' Got 'echo status=$?\n' stdout: echo status=$?stderr: |
| mksh | 3 2&>1 (is it a redirect or is it like a&>1) stdout: status=0stderr: |
| ksh | 3 2&>1 (is it a redirect or is it like a&>1) [ksh stdout] Expected 'status=127\n' Got 'status=0\n' stdout: status=0stderr: |
| toysh | 3 2&>1 (is it a redirect or is it like a&>1) [toysh stdout] Expected 'status=127\n' Got 'status=0\n' stdout: status=0stderr: |
| sush | 3 2&>1 (is it a redirect or is it like a&>1) [sush stdout] Expected 'status=127\n' Got 'status=0\n' stdout: status=0stderr: |
| dash | 4 Nonexistent file stdout: status=2stderr: dash: 1: cannot open /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/redirect.test.sh/04-dash/nonexistent.txt: No such file |
| bash | 8 Descriptor redirect with filename stdout: status=0stderr: |
| dash | 8 Descriptor redirect with filename stdout: stderr: dash: 2: Syntax error: Bad fd number |
| ash | 8 Descriptor redirect with filename [ash stdout] Expected 'status=1\n' Got 'status=0\n' stdout: status=0stderr: |
| zsh | 8 Descriptor redirect with filename [zsh stdout] Expected 'status=1\n' Got 'status=0\n' stdout: status=0stderr: |
| toysh | 8 Descriptor redirect with filename [toysh stdout] Expected 'status=1\n' Got 'status=0\n' stdout: status=0stderr: |
| dash | 10 Named file descriptor stdout: stderr: dash: 1: exec: {myfd}: not found
|
| ash | 10 Named file descriptor [ash stdout] Expected 'named-fd-contents\n' Got '' [ash status] Expected 0 Got 127 stdout: stderr: ash: exec: line 1: {myfd}: not found
|
| mksh | 10 Named file descriptor stdout: stderr: mksh: <stdin>[1]: {myfd}: not found
|
| ksh | 10 Named file descriptor [ksh stdout] Expected 'named-fd-contents\n' Got '' [ksh status] Expected 0 Got 127 stdout: stderr: E: ksh: <stdin>[1]: {myfd}: inaccessible or not found
|
| sush | 10 Named file descriptor [sush stdout] Expected 'named-fd-contents\n' Got '' [sush status] Expected 0 Got 127 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: {myfd}: command not found
|
| brush | 10 Named file descriptor [brush stdout] Expected 'named-fd-contents\n' Got '' stdout: stderr: error: invalid redirection |
| dash | 11 Double digit fd (20> file) stdout: stderr: dash: 1: exec: 20: not found |
| zsh | 11 Double digit fd (20> file) [zsh stdout] Expected 'hello20\n' Got '' [zsh status] Expected 0 Got 127 stdout: stderr: zsh: command not found: 20 |
| ksh | 11 Double digit fd (20> file) [ksh stdout] Expected 'hello20\n' Got '' [ksh status] Expected 0 Got 127 stdout: stderr: E: ksh: <stdin>[1]: 20: inaccessible or not found |
| toysh | 12 : 9> fdleak (OSH regression) [toysh stdout] Expected u'' Got 'world\n' stdout: worldstderr: |
| mksh | 13 : 3>&3 (OSH regression) stdout: stderr: |
| toysh | 13 : 3>&3 (OSH regression) [toysh stdout] Expected 'hello\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
| sush | 13 : 3>&3 (OSH regression) [sush stdout] Expected 'hello\n' Got '' [sush status] Expected 0 Got -6 stdout: stderr: thread 'main' panicked at src/elements/io.rs:17:27: cannot close: EBADF note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
| dash | 14 : 3>&3- stdout: stderr: dash: 2: Syntax error: Bad fd number |
| ash | 14 : 3>&3- [ash stdout] Expected 'hello\n' Got '' [ash status] Expected 0 Got 2 stdout: stderr: ash: redir error |
| mksh | 14 : 3>&3- stdout: stderr: mksh: <stdin>[1]: 3>&3- : illegal file descriptor name |
| ksh | 14 : 3>&3- [ksh stdout] Expected 'hello\n' Got '' [ksh status] Expected 0 Got 1 stdout: stderr: W: ksh: <stdin>[1]: 3>&3- : illegal file descriptor name E: ksh: <stdin>[1]: redirection failure |
| sush | 15 3>&- << EOF (OSH regression: fail to restore fds) [sush stdout] Expected 'hello\nworld\n' Got '' [sush status] Expected 0 Got -6 stdout: stderr: thread 'main' panicked at src/elements/io.rs:17:27: cannot close: EBADF note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
| sush | 16 Open file on descriptor 3 and write to it many times [sush stdout] Expected 'hello\nworld\n' Got '' [sush status] Expected 0 Got -6 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: 1: bad file descriptor /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: 1: bad file descriptor thread 'main' panicked at src/elements/io.rs:17:27: cannot close: EBADF note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
| dash | 18 Redirect to empty string stdout: result=2stderr: dash: 2: cannot create : Directory nonexistent dash: 5: cannot create : Directory nonexistent |
| toysh | 18 Redirect to empty string [toysh stdout] Expected 'result=1\n' Got 'result=1\nDONE\n' [toysh status] Expected 1 Got 0 stdout: result=1 DONEstderr: sh: : No such file or directory set: bad -o errexit sh: : No such file or directory |
| sush | 18 Redirect to empty string [sush stdout] Expected 'result=1\n' Got 'result=1\nDONE\n' [sush status] Expected 1 Got 0 stdout: result=1 DONEstderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: : entity not found /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: set: errexit: invalid option name /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: : entity not found |
| brush | 18 Redirect to empty string [brush stdout] Expected 'result=1\n' Got 'result=1\nDONE\n' [brush status] Expected 1 Got 0 stdout: result=1 DONEstderr: error: failed to redirect to : No such file or directory (os error 2) error: failed to redirect to : No such file or directory (os error 2) |
| dash | 19 Redirect to file descriptor that's not open stdout: stderr: dash: 8: 7: Bad file descriptor |
| toysh | 19 Redirect to file descriptor that's not open [toysh status] Expected 1 Got 2 stdout: stderr: main: line 8: sh: syntax error: 1>& |
| brush | 19 Redirect to file descriptor that's not open [brush stdout] Expected u'' Got "7\nFD 7 shouldn't be open\nOPENED:\n0\n1\n10\n11\n12\n13\n14\n16\n2\n3\n4\n5\n6\n7\n8\n9\n" stdout: 7 FD 7 shouldn't be open OPENED: 0 1 10 11 12 13 14 16 2 3 4 5 6 7 8 9stderr: error: bad file descriptor: 7 |
| dash | 22 >| to clobber stdout: status=2 XX ZZstderr: dash: 5: cannot create /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/redirect.test.sh/22-dash/c.txt: File exists |
| toysh | 22 >| to clobber [toysh stdout] Expected 'status=1\nXX\nZZ\n' Got 'status=0\nYY\nZZ\n' stdout: status=0 YY ZZstderr: |
| sush | 22 >| to clobber [sush stdout] Expected 'status=1\nXX\nZZ\n' Got 'status=0\nYY\nYY\n' stdout: status=0 YY YYstderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: syntax error near unexpected token: >| /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 10: syntax error near unexpected token: >| |
| dash | 23 &> redirects stdout and stderr stdout: STDOUTstderr: STDERR |
| dash | 24 >&word redirects stdout and stderr when word is not a number or - stdout: stderr: |
| mksh | 24 >&word redirects stdout and stderr when word is not a number or - stdout: stderr: |
| ksh | 24 >&word redirects stdout and stderr when word is not a number or - [ksh stdout] Expected 'STDOUT\nSTDERR\n' Got '' [ksh status] Expected 0 Got 2 stdout: stderr: W: ksh: <stdin>[5]: >&ksh-767480.txt : illegal file descriptor name grep: ksh-767480.txt: No such file or directory grep: ksh-767480.txt: No such file or directory |
| toysh | 24 >&word redirects stdout and stderr when word is not a number or - [toysh stdout] Expected 'STDOUT\nSTDERR\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
| sush | 24 >&word redirects stdout and stderr when word is not a number or - [sush stdout] Expected 'STDOUT\nSTDERR\n' Got '' [sush status] Expected 0 Got 2 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: sush-767493.txt: ambiguous redirect grep: sush-767493.txt: No such file or directory grep: sush-767493.txt: No such file or directory |
| brush | 24 >&word redirects stdout and stderr when word is not a number or - [brush stdout] Expected 'STDOUT\nSTDERR\n' Got '' stdout: stderr: error: invalid redirection grep: brush-767529.txt: No such file or directory grep: brush-767529.txt: No such file or directory |
| osh | 24 >&word redirects stdout and stderr when word is not a number or - [osh stdout] Expected 'STDOUT\nSTDERR\n' Got '' [osh status] Expected 0 Got 2 stdout: stderr: stdout_stderr.py >&$tmp
^~~~
[ stdin ]:5: Invalid descriptor 'osh-767543.txt'. Expected D, -, or D- where D is an integer
grep: osh-767543.txt: No such file or directory
grep: osh-767543.txt: No such file or directory
|
| toysh | 25 1>&- to close file descriptor [toysh stdout] Expected 'hello\n' Got '' [toysh status] Expected 0 Got 2 stdout: stderr: main: line 4: sh: syntax error: >& |
| dash | 26 1>&2- to move file descriptor stdout: stderr: dash: 4: Syntax error: Bad fd number |
| ash | 26 1>&2- to move file descriptor [ash stdout] Expected 'hello5\nworld6\n' Got '' [ash status] Expected 0 Got 2 stdout: stderr: ash: redir error |
| zsh | 26 1>&2- to move file descriptor [zsh stdout] Expected 'hello5\nworld6\n' Got 'hello5\nworld5\n' stdout: hello5 world5stderr: |
| mksh | 26 1>&2- to move file descriptor stdout: stderr: mksh: <stdin>[3]: 6>&5- : illegal file descriptor name |
| ksh | 26 1>&2- to move file descriptor [ksh stdout] Expected 'hello5\nworld6\n' Got '' [ksh status] Expected 0 Got 1 stdout: stderr: W: ksh: <stdin>[3]: 6>&5- : illegal file descriptor name E: ksh: <stdin>[3]: redirection failure |
| toysh | 26 1>&2- to move file descriptor [toysh stdout] Expected 'hello5\nworld6\n' Got '' [toysh status] Expected 0 Got 2 stdout: stderr: main: line 4: sh: syntax error: >& |
| sush | 26 1>&2- to move file descriptor [sush stdout] Expected 'hello5\nworld6\n' Got '' [sush status] Expected 0 Got -6 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: 5-: ambiguous redirect /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: 1: bad file descriptor thread 'main' panicked at src/elements/io.rs:17:27: cannot close: EBADF note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
| brush | 26 1>&2- to move file descriptor [brush stdout] Expected 'hello5\nworld6\n' Got 'hello5\nworld5\n' stdout: hello5 world5stderr: error: bad file descriptor: 6 |
| bash | 27 1>&2- (Bash bug: fail to restore closed fd) stdout: hellostderr: bash: line 19: 7: Bad file descriptor |
| dash | 27 1>&2- (Bash bug: fail to restore closed fd) stdout: stderr: dash: 19: Syntax error: Bad fd number |
| ash | 27 1>&2- (Bash bug: fail to restore closed fd) [ash status] Expected 1 Got 2 stdout: stderr: ash: redir error |
| zsh | 27 1>&2- (Bash bug: fail to restore closed fd) [zsh stdout] Expected u'' Got 'hello\nworld\n' [zsh status] Expected 1 Got 0 stdout: hello worldstderr: |
| toysh | 27 1>&2- (Bash bug: fail to restore closed fd) [toysh stdout] Expected u'' Got 'hello\nworld\n' [toysh status] Expected 1 Got 0 stdout: hello worldstderr: |
| sush | 27 1>&2- (Bash bug: fail to restore closed fd) [sush status] Expected 1 Got -6 stdout: stderr: thread 'main' panicked at src/elements/io.rs:17:27: cannot close: EBADF note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
| brush | 27 1>&2- (Bash bug: fail to restore closed fd) [brush stdout] Expected u'' Got "7\nFD 7 shouldn't be open\nOPENED:\n0\n1\n10\n11\n12\n13\n14\n16\n2\n3\n4\n5\n6\n7\n8\n9\n6\nFD 6 shouldn't be open\nOPENED:\n0\n1\n10\n11\n12\n13\n14\n16\n2\n3\n4\n5\n6\n7\n8\n9\nhello\nworld\n" [brush status] Expected 1 Got 0 stdout: 7 FD 7 shouldn't be open OPENED: 0 1 10 11 12 13 14 16 2 3 4 5 6 7 8 9 6 FD 6 shouldn't be open OPENED: 0 1 10 11 12 13 14 16 2 3 4 5 6 7 8 9 hello worldstderr: |
| toysh | 28 <> for read/write [toysh stdout] Expected 'line=first\nCONTENTS\nfirst\nsecond\n' Got 'line=\nCONTENTS\nsecond\n' stdout: line= CONTENTS secondstderr: sh: read: No such file or directory |
| sush | 28 <> for read/write [sush stdout] Expected 'line=first\nCONTENTS\nfirst\nsecond\n' Got 'line=\nCONTENTS\nfirst\n' stdout: line= CONTENTS firststderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: syntax error near unexpected token: <>$TMP/rw.txt /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: 0: bad file descriptor /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: 1: bad file descriptor |
| toysh | 29 <> for read/write named pipes [toysh stdout] Expected 'line1=first line2=second\n' Got 'line1= line2=\n' stdout: line1= line2=stderr: sh: read: No such file or directory sh: read: No such file or directory |
| sush | 29 <> for read/write named pipes [sush stdout] Expected 'line1=first line2=second\n' Got '' [sush status] Expected 0 Got -6 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: syntax error near unexpected token: <> /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: 1: bad file descriptor /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: 1: bad file descriptor /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: 0: bad file descriptor /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: 0: bad file descriptor thread 'main' panicked at src/elements/io.rs:17:27: cannot close: EBADF note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
| dash | 30 &>> appends stdout and stderr stdout: stderr: |
| ash | 30 &>> appends stdout and stderr [ash stdout] Expected 'ok\nok\nok\n' Got '' [ash status] Expected 0 Got 2 stdout: stderr: ash: syntax error: unexpected redirection |
| toysh | 30 &>> appends stdout and stderr [toysh stdout] Expected 'ok\nok\nok\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
| sush | 30 &>> appends stdout and stderr [sush stdout] Expected 'ok\nok\nok\n' Got 'ok\nSTDOUT\n' [sush status] Expected 0 Got 1 stdout: ok STDOUTstderr: 768179 STDERR |
| bash | 32 can't mention big file descriptor stdout: hi hi histderr: |
| ash | 32 can't mention big file descriptor [ash stdout] Expected 'hi\nhi 99\nhi 100\n' Got 'hi\nhi\nhi\n' stdout: hi hi histderr: |
| toysh | 32 can't mention big file descriptor [toysh stdout] Expected 'hi\nhi 99\nhi 100\n' Got 'hi\nhi\nhi\n' stdout: hi hi histderr: |
| sush | 32 can't mention big file descriptor [sush stdout] Expected 'hi\nhi 99\nhi 100\n' Got 'hi\nhi\nhi\n' stdout: hi hi histderr: |
| brush | 32 can't mention big file descriptor [brush stdout] Expected 'hi\nhi 99\nhi 100\n' Got 'hi\nhi\nhi\n' stdout: hi hi histderr: |
| osh | 32 can't mention big file descriptor stdout: hi hi hi 100stderr: |
| dash | 33 : >/dev/null 2> / (OSH regression: fail to pop fd frame) stdout: stderr: dash: 1: cannot create /: Is a directory |
| ash | 33 : >/dev/null 2> / (OSH regression: fail to pop fd frame) [ash stdout] Expected 'hello\n' Got '' [ash status] Expected 0 Got 1 stdout: stderr: ash: can't create /: Is a directory |
| mksh | 33 : >/dev/null 2> / (OSH regression: fail to pop fd frame) stdout: stderr: mksh: <stdin>[1]: can't create /: Is a directory |
| ksh | 33 : >/dev/null 2> / (OSH regression: fail to pop fd frame) [ksh stdout] Expected 'hello\n' Got '' [ksh status] Expected 0 Got 1 stdout: stderr: W: ksh: <stdin>[1]: /: create: Is a directory E: ksh: <stdin>[1]: redirection failure |
| dash | 34 echo foo >&100 (OSH regression: does not fail with invalid fd 100) stdout: stderr: dash: 3: Syntax error: Bad fd number |
| toysh | 34 echo foo >&100 (OSH regression: does not fail with invalid fd 100) [toysh status] Expected 1 Got 2 stdout: stderr: main: line 2: sh: syntax error: >& |
| dash | 35 echo foo >&N where N is first unused fd stdout: stderr: dash: 13: Syntax error: Bad fd number |
| toysh | 35 echo foo >&N where N is first unused fd [toysh status] Expected 1 Got 2 stdout: stderr: main: line 2: sh: syntax error: ( |
| dash | 36 exec {fd}>&- (OSH regression: fails to close fd) stdout: stderr: |
| ash | 36 exec {fd}>&- (OSH regression: fails to close fd) [ash stdout] Expected 'foo55\n' Got '' [ash status] Expected 0 Got 127 stdout: stderr: ash: exec: line 2: {fd}: not found
|
| mksh | 36 exec {fd}>&- (OSH regression: fails to close fd) stdout: stderr: |
| ksh | 36 exec {fd}>&- (OSH regression: fails to close fd) [ksh stdout] Expected 'foo55\n' Got '' [ksh status] Expected 0 Got 127 stdout: stderr: E: ksh: <stdin>[2]: {fd}: inaccessible or not found
|
| toysh | 36 exec {fd}>&- (OSH regression: fails to close fd) [toysh stdout] Expected 'foo55\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
| sush | 36 exec {fd}>&- (OSH regression: fails to close fd) [sush stdout] Expected 'foo55\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: {fd}: command not found
|
| brush | 36 exec {fd}>&- (OSH regression: fails to close fd) [brush stdout] Expected 'foo55\n' Got '' stdout: stderr: error: invalid redirection error: invalid redirection |
| dash | 37 noclobber can still write to non-regular files like /dev/null stdout: a astderr: |
| ash | 37 noclobber can still write to non-regular files like /dev/null [ash status] Expected 0 Got 2 stdout: stderr: ash: syntax error: unexpected redirection |
| sush | 37 noclobber can still write to non-regular files like /dev/null [sush status] Expected 0 Got 1 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: /dev/null: cannot overwrite existing file |
| dash | 39 Parsing of x={myvar} and related cases stdout: stderr: |
| ash | 39 Parsing of x={myvar} and related cases stdout: {myvar}
x={myvar}
0
x={myvar}
0
x= {myvar}
0
+{myvar}
0
+{myvar}
0
+ {myvar}
0
stderr: |
| mksh | 39 Parsing of x={myvar} and related cases stdout: {myvar}
x={myvar}
0
x={myvar}
0
x= {myvar}
0
+{myvar}
0
+{myvar}
0
+ {myvar}
0
stderr: |
| ksh | 39 Parsing of x={myvar} and related cases [ksh stdout] Expected '\nx={myvar}\n0\nx={myvar}\n0\nx=\n1\n+{myvar}\n1\n+{myvar}\n1\n+\n2\n' Got '{myvar}\nx={myvar}\n0\nx={myvar}\n0\nx= {myvar}\n0\n+{myvar}\n0\n+{myvar}\n0\n+ {myvar}\n0\n' stdout: {myvar}
x={myvar}
0
x={myvar}
0
x= {myvar}
0
+{myvar}
0
+{myvar}
0
+ {myvar}
0
stderr: |
| toysh | 39 Parsing of x={myvar} and related cases [toysh stdout] Expected '\nx={myvar}\n0\nx={myvar}\n0\nx=\n1\n+{myvar}\n1\n+{myvar}\n1\n+\n2\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
| sush | 39 Parsing of x={myvar} and related cases [sush stdout] Expected '\nx={myvar}\n0\nx={myvar}\n0\nx=\n1\n+{myvar}\n1\n+{myvar}\n1\n+\n2\n' Got '{myvar}\nx={myvar}\n0\nx={myvar}\n0\nx= {myvar}\n0\n+{myvar}\n0\n+{myvar}\n0\n+ {myvar}\n0\n' stdout: {myvar}
x={myvar}
0
x={myvar}
0
x= {myvar}
0
+{myvar}
0
+{myvar}
0
+ {myvar}
0
stderr: |
| brush | 39 Parsing of x={myvar} and related cases [brush stdout] Expected '\nx={myvar}\n0\nx={myvar}\n0\nx=\n1\n+{myvar}\n1\n+{myvar}\n1\n+\n2\n' Got '{myvar}\nx={myvar}\n0\nx={myvar}\n0\nx= {myvar}\n0\n+{myvar}\n0\n+{myvar}\n0\n+ {myvar}\n0\n' stdout: {myvar}
x={myvar}
0
x={myvar}
0
x= {myvar}
0
+{myvar}
0
+{myvar}
0
+ {myvar}
0
stderr: |