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
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
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
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

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
brush5 NUL bytes and IFS splitting

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

stdout:
stderr: 
ERROR nul byte found in provided data
ERROR nul byte found in provided data
ERROR nul byte found in provided data
ERROR 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=101\n'

stdout:
status=1
status=101
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
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=101\nstatus=101\nstatus=101\nstatus=1\n'

stdout:
status=101
status=101
status=101
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

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
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
printf: write error: Broken pipe
printf: write error: Broken pipe
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