Results for nul-bytes.test.sh

statusbashdashashzshmkshkshtoyshsushbrushosh
pass 166132141410211
ok 0014000004
N-I 01021100000
BUG-2 0000100000
BUG 0009000000
FAIL 0000021516141
total16161616161616161616
casebashdashashzshmkshkshtoyshsushbrushoshdescription
0pass N-I pass BUG pass pass FAIL FAIL pass pass NUL bytes with echo -e
detailsdetailsdetailsdetails
1pass N-I N-I BUG pass pass FAIL FAIL FAIL pass printf - literal NUL in format string
detailsdetailsdetailsdetailsdetailsdetails
2pass pass pass pass pass pass pass FAIL pass pass printf - \0 escape shows NUL byte
details
3pass N-I pass ok pass pass FAIL FAIL FAIL ok printf - NUL byte in value (OSH and zsh agree)
detailsdetailsdetailsdetailsdetailsdetails
4pass N-I pass ok pass pass FAIL FAIL FAIL ok NUL bytes with echo $'\0' (OSH and zsh agree)
detailsdetailsdetailsdetailsdetailsdetails
5pass N-I pass BUG pass pass FAIL FAIL FAIL pass NUL bytes and IFS splitting
detailsdetailsdetailsdetailsdetails
6pass N-I pass BUG pass pass FAIL FAIL FAIL ok NUL bytes with test -n
detailsdetailsdetailsdetailsdetailsdetails
7pass N-I ok pass pass pass FAIL FAIL FAIL pass NUL bytes with test -f
detailsdetailsdetailsdetailsdetails
8pass N-I pass ok pass pass FAIL FAIL FAIL ok NUL bytes with ${#s} (OSH and zsh agree)
detailsdetailsdetailsdetailsdetailsdetails
9pass pass pass BUG pass pass FAIL FAIL FAIL pass Compare \x00 byte versus \x01 byte - command sub
detailsdetailsdetailsdetails
10pass pass pass BUG pass pass FAIL FAIL FAIL pass Compare \x00 byte versus \x01 byte - read builtin
detailsdetailsdetailsdetails
11pass N-I pass BUG BUG-2 FAIL FAIL FAIL FAIL pass Compare \x00 byte versus \x01 byte - read -n
detailsdetailsdetailsdetailsdetailsdetailsdetails
12pass N-I N-I N-I N-I FAIL FAIL FAIL FAIL FAIL Compare \x00 byte versus \x01 byte - mapfile builtin
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
13pass pass pass BUG pass pass FAIL FAIL FAIL pass Strip ops # ## % %% with NUL bytes
detailsdetailsdetailsdetails
14pass pass pass BUG pass pass FAIL FAIL FAIL pass Issue 2269 Reduction
detailsdetailsdetailsdetails
15pass pass pass ok pass pass FAIL FAIL FAIL pass Issue 2269 - Do NUL bytes match ? in ${a#?}
detailsdetailsdetailsdetails
79 passed, 9 OK, 14 not implemented, 10 BUG, 48 failed, 0 timeouts, 0 cases skipped
1 failed under osh

Details on runs that didn't PASS

dash0 NUL bytes with echo -e

stdout:
stderr: 
zsh0 NUL bytes with echo -e

stdout:
  \0  \n
  00  0a
stderr:
toysh0 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
sush0 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
Pid: Pid(752353), Signal: SIGABRT
dash1 printf - literal NUL in format string

stdout:
stderr: 
ash1 printf - literal NUL in format string

stdout:
stderr: 
zsh1 printf - literal NUL in format string

stdout:
   x  \0   z
  78  00  7a
---
   x  \0   z
  78  00  7a
---
  \0   z
  00  7a
stderr:
toysh1 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
sush1 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  7a
stderr:
brush1 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  7a
stderr:
sush2 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  0a
stderr:
dash3 printf - NUL byte in value (OSH and zsh agree)

stdout:
stderr: 
zsh3 printf - NUL byte in value (OSH and zsh agree)

stdout:
  \0  \n
  00  0a
  \0  \n
  00  0a
stderr:
toysh3 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
sush3 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  0a
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
Pid: Pid(753113), Signal: SIGABRT
brush3 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  0a
stderr:
osh3 printf - NUL byte in value (OSH and zsh agree)

stdout:
  \0  \n
  00  0a
  \0  \n
  00  0a
stderr:
dash4 NUL bytes with echo $'\0' (OSH and zsh agree)

stdout:
stderr: 
zsh4 NUL bytes with echo $'\0' (OSH and zsh agree)

stdout:
  \0  \n
  00  0a
stderr:
toysh4 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
sush4 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
Pid: Pid(753350), Signal: SIGABRT
brush4 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  0a
stderr:
osh4 NUL bytes with echo $'\0' (OSH and zsh agree)

stdout:
  \0  \n
  00  0a
stderr:
dash5 NUL bytes and IFS splitting

stdout:
stderr: 
zsh5 NUL bytes and IFS splitting

stdout:
['', '']
['']
['a', 'b']
['a']
stderr:
toysh5 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
sush5 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
Pid: Pid(753964), Signal: SIGABRT

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
Pid: Pid(753993), Signal: SIGABRT

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
Pid: Pid(754021), Signal: SIGABRT

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
Pid: Pid(754048), Signal: SIGABRT
brush5 NUL bytes and IFS splitting

[brush stdout] Expected "[]\n['']\n['ab']\n['ab']\n" Got ''

stdout:
stderr: 
error: failed to execute command 'argv.py': nul byte found in provided data
error: failed to execute command 'argv.py': nul byte found in provided data
error: failed to execute command 'argv.py': nul byte found in provided data
error: failed to execute command 'argv.py': nul byte found in provided data
dash6 NUL bytes with test -n

stdout:
stderr: 
zsh6 NUL bytes with test -n

stdout:
status=0
status=0
stderr:
toysh6 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
sush6 NUL bytes with test -n

[sush stdout] Expected 'status=1\nstatus=1\n' Got 'status=1\nstatus=134\n'

stdout:
status=1
status=134
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
Pid: Pid(754364), Signal: SIGABRT
brush6 NUL bytes with test -n

[brush stdout] Expected 'status=1\nstatus=1\n' Got 'status=1\nstatus=0\n'

stdout:
status=1
status=0
stderr:
osh6 NUL bytes with test -n

stdout:
status=1
status=0
stderr:
dash7 NUL bytes with test -f

stdout:
stderr: 
ash7 NUL bytes with test -f

stdout:
status=1
status=0
status=1
status=1
stderr:
toysh7 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
sush7 NUL bytes with test -f

[sush stdout] Expected 'status=1\nstatus=0\nstatus=0\nstatus=1\n' Got 'status=134\nstatus=134\nstatus=134\nstatus=1\n'

stdout:
status=134
status=134
status=134
status=1
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
Pid: Pid(754526), Signal: SIGABRT

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
Pid: Pid(754535), Signal: SIGABRT

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
Pid: Pid(754541), Signal: SIGABRT
brush7 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=1
stderr:
dash8 NUL bytes with ${#s} (OSH and zsh agree)

stdout:
stderr: 
zsh8 NUL bytes with ${#s} (OSH and zsh agree)

stdout:
empty=0
nul=1
stderr:
toysh8 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
sush8 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=1
stderr:
brush8 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=1
stderr:
osh8 NUL bytes with ${#s} (OSH and zsh agree)

stdout:
empty=0
nul=1
stderr:
zsh9 Compare \x00 byte versus \x01 byte - command sub

stdout:
len=3
 2e 01 2e
len=3
 2e 00 2e
len=1
 00
stderr:
toysh9 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=0
stderr:
sush9 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 30
stderr:
brush9 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
 00
stderr:
zsh10 Compare \x00 byte versus \x01 byte - read builtin

stdout:
len=3
 2e 01 2e
len=3
 2e 00 2e
len=1
 00
stderr:
toysh10 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=0
stderr:
sh: read: No such file or directory
sh: read: No such file or directory
sh: read: No such file or directory
sush10 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 30
stderr:
brush10 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=0
stderr:
dash11 Compare \x00 byte versus \x01 byte - read -n

stdout:
stderr: 
zsh11 Compare \x00 byte versus \x01 byte - read -n

stdout:
len=0
len=1
 2e
len=0
stderr:
mksh11 Compare \x00 byte versus \x01 byte - read -n

stdout:
len=3
 2e 01 2e
len=1
 2e
len=0
stderr:
ksh11 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=0
stderr:
toysh11 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
sush11 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 30
stderr:
brush11 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=0
stderr:
dash12 Compare \x00 byte versus \x01 byte - mapfile builtin

stdout:
stderr: 
ash12 Compare \x00 byte versus \x01 byte - mapfile builtin

stdout:
stderr: 
zsh12 Compare \x00 byte versus \x01 byte - mapfile builtin

stdout:
stderr: 
mksh12 Compare \x00 byte versus \x01 byte - mapfile builtin

stdout:
stderr: 
ksh12 Compare \x00 byte versus \x01 byte - mapfile builtin

[ksh stdout] Expected 'len=2\n 2e\n 2e\n' Got 'len=0\n'

stdout:
len=0
stderr:
E: ksh: <stdin>[12]: mapfile: inaccessible or not found
toysh12 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
sush12 Compare \x00 byte versus \x01 byte - mapfile builtin

[sush stdout] Expected 'len=2\n 2e\n 2e\n' Got 'len=0\n'

stdout:
len=0
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: mapfile: command not found
brush12 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 2e
stderr:
osh12 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 2e
stderr:
zsh13 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 2e
stderr:
toysh13 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=0
stderr:
sush13 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 30
stderr:
brush13 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 2e
stderr:
zsh14 Issue 2269 Reduction

stdout:
len=2
 00 78
len=1
 78
---
len=2
 01 78
len=1
 78
stderr:
toysh14 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
 78
stderr:
sush14 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 78
stderr:
brush14 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
 78
stderr:
zsh15 Issue 2269 - Do NUL bytes match ? in ${a#?}

stdout:
escaped that'"'"'s it!
that's it!
---
writes binary data
stderr:
len=9
len=8
len=7
len=6
len=5
len=4
len=3
len=2
len=1
len=0
toysh15 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: (
sush15 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 

---
escaped 
stderr:
/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
brush15 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