79 passed, 9 OK, 14 not implemented, 10 BUG, 48 failed, 0 timeouts, 0 cases skipped 1 failed under osh
dash | 0 NUL bytes with echo -e stdout: stderr: |
zsh | 0 NUL bytes with echo -e stdout: \0 \n 00 0astderr: |
toysh | 0 NUL bytes with echo -e [toysh stdout] Expected ' \\0 - \\n\n 00 2d 0a\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 0 NUL bytes with echo -e [sush stdout] Expected ' \\0 - \\n\n 00 2d 0a\n' Got '' stdout: stderr: thread 'main' panicked at src/utils/c_string.rs:28:35: called `Result::unwrap()` on an `Err` value: NulError(0, [0, 45]) note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
dash | 1 printf - literal NUL in format string stdout: stderr: |
ash | 1 printf - literal NUL in format string stdout: stderr: |
zsh | 1 printf - literal NUL in format string stdout: x \0 z 78 00 7a --- x \0 z 78 00 7a --- \0 z 00 7astderr: |
toysh | 1 printf - literal NUL in format string [toysh stdout] Expected ' x\n 78\n---\n x\n 78\n---\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 1 printf - literal NUL in format string [sush stdout] Expected ' x\n 78\n---\n x\n 78\n---\n' Got ' x 356 220 200 356 214 200 356 210 200 356 204 200 z\n 78 ee 90 80 ee 8c 80 ee 88 80 ee 84 80 7a\n---\n x 356 220 200 356 214 200 356 210 200 356 204 200 z\n 78 ee 90 80 ee 8c 80 ee 88 80 ee 84 80 7a\n---\n 356 220 200 356 214 200 356 210 200 356 204 200 z\n ee 90 80 ee 8c 80 ee 88 80 ee 84 80 7a\n' stdout: x 356 220 200 356 214 200 356 210 200 356 204 200 z 78 ee 90 80 ee 8c 80 ee 88 80 ee 84 80 7a --- x 356 220 200 356 214 200 356 210 200 356 204 200 z 78 ee 90 80 ee 8c 80 ee 88 80 ee 84 80 7a --- 356 220 200 356 214 200 356 210 200 356 204 200 z ee 90 80 ee 8c 80 ee 88 80 ee 84 80 7astderr: |
brush | 1 printf - literal NUL in format string [brush stdout] Expected ' x\n 78\n---\n x\n 78\n---\n' Got ' x \\0 z\n 78 00 7a\n---\n x \\0 z\n 78 00 7a\n---\n \\0 z\n 00 7a\n' stdout: x \0 z 78 00 7a --- x \0 z 78 00 7a --- \0 z 00 7astderr: |
sush | 2 printf - \0 escape shows NUL byte [sush stdout] Expected ' \\0 \\n\n 00 0a\n' Got ' \\ 0 \\n\n 5c 30 0a\n' stdout: \ 0 \n 5c 30 0astderr: |
dash | 3 printf - NUL byte in value (OSH and zsh agree) stdout: stderr: |
zsh | 3 printf - NUL byte in value (OSH and zsh agree) stdout: \0 \n 00 0a \0 \n 00 0astderr: |
toysh | 3 printf - NUL byte in value (OSH and zsh agree) [toysh stdout] Expected ' \\n\n 0a\n \\n\n 0a\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 3 printf - NUL byte in value (OSH and zsh agree) [sush stdout] Expected ' \\n\n 0a\n \\n\n 0a\n' Got ' \\0 \\n\n 00 0a\n' stdout: \0 \n 00 0astderr: thread 'main' panicked at src/utils/c_string.rs:28:35: called `Result::unwrap()` on an `Err` value: NulError(0, [0]) note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
brush | 3 printf - NUL byte in value (OSH and zsh agree) [brush stdout] Expected ' \\n\n 0a\n \\n\n 0a\n' Got ' \\0 \\n\n 00 0a\n \\0 \\n\n 00 0a\n' stdout: \0 \n 00 0a \0 \n 00 0astderr: |
osh | 3 printf - NUL byte in value (OSH and zsh agree) stdout: \0 \n 00 0a \0 \n 00 0astderr: |
dash | 4 NUL bytes with echo $'\0' (OSH and zsh agree) stdout: stderr: |
zsh | 4 NUL bytes with echo $'\0' (OSH and zsh agree) stdout: \0 \n 00 0astderr: |
toysh | 4 NUL bytes with echo $'\0' (OSH and zsh agree) [toysh stdout] Expected ' \\n\n 0a\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 4 NUL bytes with echo $'\0' (OSH and zsh agree) [sush stdout] Expected ' \\n\n 0a\n' Got '' stdout: stderr: thread 'main' panicked at src/utils/c_string.rs:28:35: called `Result::unwrap()` on an `Err` value: NulError(0, [0]) note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
brush | 4 NUL bytes with echo $'\0' (OSH and zsh agree) [brush stdout] Expected ' \\n\n 0a\n' Got ' \\0 \\n\n 00 0a\n' stdout: \0 \n 00 0astderr: |
osh | 4 NUL bytes with echo $'\0' (OSH and zsh agree) stdout: \0 \n 00 0astderr: |
dash | 5 NUL bytes and IFS splitting stdout: stderr: |
zsh | 5 NUL bytes and IFS splitting stdout: ['', ''] [''] ['a', 'b'] ['a']stderr: |
toysh | 5 NUL bytes and IFS splitting [toysh stdout] Expected "[]\n['']\n['ab']\n['ab']\n" Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 5 NUL bytes and IFS splitting [sush stdout] Expected "[]\n['']\n['ab']\n['ab']\n" Got "[]\n['']\n[]\n['']\n" stdout: [] [''] [] ['']stderr: thread 'main' panicked at src/utils/c_string.rs:28:35: called `Result::unwrap()` on an `Err` value: NulError(0, [0]) note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace thread 'main' panicked at src/utils/c_string.rs:28:35: called `Result::unwrap()` on an `Err` value: NulError(0, [0]) note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace thread 'main' panicked at src/utils/c_string.rs:28:35: called `Result::unwrap()` on an `Err` value: NulError(1, [97, 0, 98]) note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace thread 'main' panicked at src/utils/c_string.rs:28:35: called `Result::unwrap()` on an `Err` value: NulError(1, [97, 0, 98]) note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
brush | 5 NUL bytes and IFS splitting [brush stdout] Expected "[]\n['']\n['ab']\n['ab']\n" Got '' stdout: stderr: [31mERROR[0m nul byte found in provided data [31mERROR[0m nul byte found in provided data [31mERROR[0m nul byte found in provided data [31mERROR[0m nul byte found in provided data |
dash | 6 NUL bytes with test -n stdout: stderr: |
zsh | 6 NUL bytes with test -n stdout: status=0 status=0stderr: |
toysh | 6 NUL bytes with test -n [toysh stdout] Expected 'status=1\nstatus=1\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 6 NUL bytes with test -n [sush stdout] Expected 'status=1\nstatus=1\n' Got 'status=1\nstatus=101\n' stdout: status=1 status=101stderr: thread 'main' panicked at src/utils/c_string.rs:28:35: called `Result::unwrap()` on an `Err` value: NulError(0, [0]) note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
brush | 6 NUL bytes with test -n [brush stdout] Expected 'status=1\nstatus=1\n' Got 'status=1\nstatus=0\n' stdout: status=1 status=0stderr: |
osh | 6 NUL bytes with test -n stdout: status=1 status=0stderr: |
dash | 7 NUL bytes with test -f stdout: stderr: |
ash | 7 NUL bytes with test -f stdout: status=1 status=0 status=1 status=1stderr: |
toysh | 7 NUL bytes with test -f [toysh stdout] Expected 'status=1\nstatus=0\nstatus=0\nstatus=1\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 7 NUL bytes with test -f [sush stdout] Expected 'status=1\nstatus=0\nstatus=0\nstatus=1\n' Got 'status=101\nstatus=101\nstatus=101\nstatus=1\n' stdout: status=101 status=101 status=101 status=1stderr: thread 'main' panicked at src/utils/c_string.rs:28:35: called `Result::unwrap()` on an `Err` value: NulError(0, [0]) note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace thread 'main' panicked at src/utils/c_string.rs:28:35: called `Result::unwrap()` on an `Err` value: NulError(3, [102, 111, 111, 0]) note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace thread 'main' panicked at src/utils/c_string.rs:28:35: called `Result::unwrap()` on an `Err` value: NulError(3, [102, 111, 111, 0, 98, 97, 114]) note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace |
brush | 7 NUL bytes with test -f [brush stdout] Expected 'status=1\nstatus=0\nstatus=0\nstatus=1\n' Got 'status=1\nstatus=1\nstatus=1\nstatus=1\n' stdout: status=1 status=1 status=1 status=1stderr: |
dash | 8 NUL bytes with ${#s} (OSH and zsh agree) stdout: stderr: |
zsh | 8 NUL bytes with ${#s} (OSH and zsh agree) stdout: empty=0 nul=1stderr: |
toysh | 8 NUL bytes with ${#s} (OSH and zsh agree) [toysh stdout] Expected 'empty=0\nnul=0\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 8 NUL bytes with ${#s} (OSH and zsh agree) [sush stdout] Expected 'empty=0\nnul=0\n' Got 'empty=0\nnul=1\n' stdout: empty=0 nul=1stderr: |
brush | 8 NUL bytes with ${#s} (OSH and zsh agree) [brush stdout] Expected 'empty=0\nnul=0\n' Got 'empty=0\nnul=1\n' stdout: empty=0 nul=1stderr: |
osh | 8 NUL bytes with ${#s} (OSH and zsh agree) stdout: empty=0 nul=1stderr: |
zsh | 9 Compare \x00 byte versus \x01 byte - command sub stdout: len=3 2e 01 2e len=3 2e 00 2e len=1 00stderr: |
toysh | 9 Compare \x00 byte versus \x01 byte - command sub [toysh stdout] Expected 'len=3\n 2e 01 2e\nlen=2\n 2e 2e\nlen=0\n' Got 'len=3\n 2e 01 2e\nlen=1\n 2e\nlen=0\n' stdout: len=3 2e 01 2e len=1 2e len=0stderr: |
sush | 9 Compare \x00 byte versus \x01 byte - command sub [sush stdout] Expected 'len=3\n 2e 01 2e\nlen=2\n 2e 2e\nlen=0\n' Got 'len=6\n 2e 5c 30 30 31 2e\nlen=6\n 2e 5c 30 30 30 2e\nlen=4\n 5c 30 30 30\n' stdout: len=6 2e 5c 30 30 31 2e len=6 2e 5c 30 30 30 2e len=4 5c 30 30 30stderr: |
brush | 9 Compare \x00 byte versus \x01 byte - command sub [brush stdout] Expected 'len=3\n 2e 01 2e\nlen=2\n 2e 2e\nlen=0\n' Got 'len=3\n 2e 01 2e\nlen=3\n 2e 00 2e\nlen=1\n 00\n' stdout: len=3 2e 01 2e len=3 2e 00 2e len=1 00stderr: |
zsh | 10 Compare \x00 byte versus \x01 byte - read builtin stdout: len=3 2e 01 2e len=3 2e 00 2e len=1 00stderr: |
toysh | 10 Compare \x00 byte versus \x01 byte - read builtin [toysh stdout] Expected 'len=3\n 2e 01 2e\nlen=2\n 2e 2e\nlen=0\n' Got 'len=0\nlen=0\nlen=0\n' stdout: len=0 len=0 len=0stderr: sh: read: No such file or directory sh: read: No such file or directory sh: read: No such file or directory |
sush | 10 Compare \x00 byte versus \x01 byte - read builtin [sush stdout] Expected 'len=3\n 2e 01 2e\nlen=2\n 2e 2e\nlen=0\n' Got 'len=5\n 2e 30 30 31 2e\nlen=5\n 2e 30 30 30 2e\nlen=3\n 30 30 30\n' stdout: len=5 2e 30 30 31 2e len=5 2e 30 30 30 2e len=3 30 30 30stderr: |
brush | 10 Compare \x00 byte versus \x01 byte - read builtin [brush stdout] Expected 'len=3\n 2e 01 2e\nlen=2\n 2e 2e\nlen=0\n' Got 'len=2\n 2e 2e\nlen=2\n 2e 2e\nlen=0\n' stdout: len=2 2e 2e len=2 2e 2e len=0stderr: |
dash | 11 Compare \x00 byte versus \x01 byte - read -n stdout: stderr: |
zsh | 11 Compare \x00 byte versus \x01 byte - read -n stdout: len=0 len=1 2e len=0stderr: |
mksh | 11 Compare \x00 byte versus \x01 byte - read -n stdout: len=3 2e 01 2e len=1 2e len=0stderr: |
ksh | 11 Compare \x00 byte versus \x01 byte - read -n [ksh stdout] Expected 'len=3\n 2e 01 2e\nlen=2\n 2e 2e\nlen=0\n' Got 'len=3\n 2e 01 2e\nlen=1\n 2e\nlen=0\n' stdout: len=3 2e 01 2e len=1 2e len=0stderr: |
toysh | 11 Compare \x00 byte versus \x01 byte - read -n [toysh stdout] Expected 'len=3\n 2e 01 2e\nlen=2\n 2e 2e\nlen=0\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 11 Compare \x00 byte versus \x01 byte - read -n [sush stdout] Expected 'len=3\n 2e 01 2e\nlen=2\n 2e 2e\nlen=0\n' Got 'len=3\n 2e 30 30\nlen=3\n 2e 30 30\nlen=3\n 30 30 30\n' stdout: len=3 2e 30 30 len=3 2e 30 30 len=3 30 30 30stderr: |
brush | 11 Compare \x00 byte versus \x01 byte - read -n [brush stdout] Expected 'len=3\n 2e 01 2e\nlen=2\n 2e 2e\nlen=0\n' Got 'len=2\n 2e 2e\nlen=2\n 2e 2e\nlen=0\n' stdout: len=2 2e 2e len=2 2e 2e len=0stderr: |
dash | 12 Compare \x00 byte versus \x01 byte - mapfile builtin stdout: stderr: |
ash | 12 Compare \x00 byte versus \x01 byte - mapfile builtin stdout: stderr: |
zsh | 12 Compare \x00 byte versus \x01 byte - mapfile builtin stdout: stderr: |
mksh | 12 Compare \x00 byte versus \x01 byte - mapfile builtin stdout: stderr: |
ksh | 12 Compare \x00 byte versus \x01 byte - mapfile builtin [ksh stdout] Expected 'len=2\n 2e\n 2e\n' Got 'len=0\n' stdout: len=0stderr: E: ksh: <stdin>[12]: mapfile: inaccessible or not found printf: write error: Broken pipe printf: write error: Broken pipe |
toysh | 12 Compare \x00 byte versus \x01 byte - mapfile builtin [toysh stdout] Expected 'len=2\n 2e\n 2e\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 12 Compare \x00 byte versus \x01 byte - mapfile builtin [sush stdout] Expected 'len=2\n 2e\n 2e\n' Got 'len=0\n' stdout: len=0stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: mapfile: command not found |
brush | 12 Compare \x00 byte versus \x01 byte - mapfile builtin [brush stdout] Expected 'len=2\n 2e\n 2e\n' Got 'len=2\n 2e 00 2e\n 2e 00 2e\n' stdout: len=2 2e 00 2e 2e 00 2estderr: |
osh | 12 Compare \x00 byte versus \x01 byte - mapfile builtin [osh stdout] Expected 'len=2\n 2e\n 2e\n' Got 'len=2\n 2e 00 2e\n 2e 00 2e\n' stdout: len=2 2e 00 2e 2e 00 2estderr: |
zsh | 13 Strip ops # ## % %% with NUL bytes stdout: len=3 00 2e 00 --- len=2 2e 00 len=2 2e 00 len=2 00 2e len=2 00 2estderr: |
toysh | 13 Strip ops # ## % %% with NUL bytes [toysh stdout] Expected 'len=1\n 2e\n---\nlen=0\nlen=0\nlen=0\nlen=0\n' Got 'len=0\n---\nlen=20\n 28 70 72 69 6e 74 66 20 27 5c 30 30 30 2e 5c 30\n 30 30 27 29\nlen=20\n 28 70 72 69 6e 74 66 20 27 5c 30 30 30 2e 5c 30\n 30 30 27 29\nlen=0\nlen=0\n' stdout: len=0 --- len=20 28 70 72 69 6e 74 66 20 27 5c 30 30 30 2e 5c 30 30 30 27 29 len=20 28 70 72 69 6e 74 66 20 27 5c 30 30 30 2e 5c 30 30 30 27 29 len=0 len=0stderr: |
sush | 13 Strip ops # ## % %% with NUL bytes [sush stdout] Expected 'len=1\n 2e\n---\nlen=0\nlen=0\nlen=0\nlen=0\n' Got 'len=9\n 5c 30 30 30 2e 5c 30 30 30\n---\nlen=8\n 30 30 30 2e 5c 30 30 30\nlen=8\n 30 30 30 2e 5c 30 30 30\nlen=8\n 5c 30 30 30 2e 5c 30 30\nlen=8\n 5c 30 30 30 2e 5c 30 30\n' stdout: len=9 5c 30 30 30 2e 5c 30 30 30 --- len=8 30 30 30 2e 5c 30 30 30 len=8 30 30 30 2e 5c 30 30 30 len=8 5c 30 30 30 2e 5c 30 30 len=8 5c 30 30 30 2e 5c 30 30stderr: |
brush | 13 Strip ops # ## % %% with NUL bytes [brush stdout] Expected 'len=1\n 2e\n---\nlen=0\nlen=0\nlen=0\nlen=0\n' Got 'len=3\n 00 2e 00\n---\nlen=2\n 2e 00\nlen=2\n 2e 00\nlen=2\n 00 2e\nlen=2\n 00 2e\n' stdout: len=3 00 2e 00 --- len=2 2e 00 len=2 2e 00 len=2 00 2e len=2 00 2estderr: |
zsh | 14 Issue 2269 Reduction stdout: len=2 00 78 len=1 78 --- len=2 01 78 len=1 78stderr: |
toysh | 14 Issue 2269 Reduction [toysh stdout] Expected 'len=1\n 78\nlen=0\n---\nlen=2\n 01 78\nlen=1\n 78\n' Got 'len=0\nlen=16\n 28 70 72 69 6e 74 66 20 27 5c 30 30 30 78 27 29\n---\nlen=2\n 01 78\nlen=1\n 78\n' stdout: len=0 len=16 28 70 72 69 6e 74 66 20 27 5c 30 30 30 78 27 29 --- len=2 01 78 len=1 78stderr: |
sush | 14 Issue 2269 Reduction [sush stdout] Expected 'len=1\n 78\nlen=0\n---\nlen=2\n 01 78\nlen=1\n 78\n' Got 'len=5\n 5c 30 30 30 78\nlen=4\n 30 30 30 78\n---\nlen=5\n 5c 30 30 31 78\nlen=4\n 30 30 31 78\n' stdout: len=5 5c 30 30 30 78 len=4 30 30 30 78 --- len=5 5c 30 30 31 78 len=4 30 30 31 78stderr: |
brush | 14 Issue 2269 Reduction [brush stdout] Expected 'len=1\n 78\nlen=0\n---\nlen=2\n 01 78\nlen=1\n 78\n' Got 'len=2\n 00 78\nlen=1\n 78\n---\nlen=2\n 01 78\nlen=1\n 78\n' stdout: len=2 00 78 len=1 78 --- len=2 01 78 len=1 78stderr: |
zsh | 15 Issue 2269 - Do NUL bytes match ? in ${a#?} stdout: escaped that'"'"'s it! that's it! --- writes binary datastderr: len=9 len=8 len=7 len=6 len=5 len=4 len=3 len=2 len=1 len=0 |
toysh | 15 Issue 2269 - Do NUL bytes match ? in ${a#?} [toysh stdout] Expected 'escaped that\'"\'"\'s it!\nthat\'s it!\n---\nescaped ::\n' Got '' [toysh status] Expected 0 Got 2 stdout: stderr: main: line 1: sh: syntax error: ( |
sush | 15 Issue 2269 - Do NUL bytes match ? in ${a#?} [sush stdout] Expected 'escaped that\'"\'"\'s it!\nthat\'s it!\n---\nescaped ::\n' Got 'escaped \n\n---\nescaped \n' stdout: escaped --- escapedstderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: syntax error near unexpected token: do len=0 /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 14: syntax error near unexpected token: done /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 15: syntax error near unexpected token: } /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 16: escape_arg: command not found /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 27: escape_arg: command not found |
brush | 15 Issue 2269 - Do NUL bytes match ? in ${a#?} [brush stdout] Expected 'escaped that\'"\'"\'s it!\nthat\'s it!\n---\nescaped ::\n' Got 'escaped that\'"\'"\'s it!\nthat\'s it!\n---\nescaped :\x00:\n' stdout: escaped that'"'"'s it! that's it! --- escaped : :stderr: len=9 len=8 len=7 len=6 len=5 len=4 len=3 len=2 len=1 len=0 len=2 len=1 len=0 |