Results for builtin-io.test.sh

statusoshosh_.pyosh_.cc
pass 644017
FAIL 73154
total717171
caseoshosh_.pyosh_.ccdescription
0pass pass pass echo dashes
1pass pass pass echo backslashes
2pass pass pass echo -e backslashes
3pass pass pass echo -en
4pass pass pass echo -ez (invalid flag)
5pass pass pass echo -e with embedded newline
6pass pass pass echo -e line continuation
7pass pass pass echo -e with C escapes
8pass pass pass echo -e with whitespace C escapes
9pass pass FAIL \0
details
10pass pass pass \c stops processing input
11pass pass pass echo -e with hex escape
12pass pass pass echo -e with octal escape
13pass pass pass echo -e with 4 digit unicode escape
14pass pass pass echo -e with 8 digit unicode escape
15pass FAIL FAIL \0377 is the highest octal byte
detailsdetails
16pass FAIL FAIL \0400 is one more than the highest octal byte
detailsdetails
17pass FAIL FAIL \0777 is out of range
detailsdetails
18pass FAIL FAIL incomplete hex escape
detailsdetails
19pass FAIL FAIL \x
detailsdetails
20pass FAIL FAIL incomplete octal escape
detailsdetails
21pass FAIL FAIL incomplete unicode escape
detailsdetails
22pass FAIL FAIL \u6
detailsdetails
23pass FAIL FAIL \0 \1 \8
detailsdetails
24pass pass FAIL Read builtin
details
25pass FAIL FAIL Read from empty file
detailsdetails
26pass pass FAIL read /dev/null
details
27pass pass FAIL read with zero args
details
28pass pass FAIL Read builtin with no newline.
details
29pass pass FAIL Read builtin with multiple variables
details
30pass pass FAIL Read builtin with not enough variables
details
31pass FAIL FAIL Read -n (with $REPLY)
detailsdetails
32pass FAIL FAIL IFS= read -n (OSH regression: value saved in tempenv)
detailsdetails
33pass FAIL FAIL Read uses $REPLY (without -n)
detailsdetails
34pass FAIL FAIL read -r ignores backslashes
detailsdetails
35pass FAIL FAIL read -r with other backslash escapes
detailsdetails
36pass FAIL FAIL read with line continuation reads multiple physical lines
detailsdetails
37pass FAIL FAIL read multiple vars spanning many lines
detailsdetails
38pass FAIL FAIL read -r with \n
detailsdetails
39pass pass FAIL read -s from pipe, not a terminal
details
40pass pass FAIL Read with IFS=$'\n'
details
41pass FAIL FAIL Read multiple lines with IFS=:
detailsdetails
42pass pass FAIL Read with IFS=''
details
43pass FAIL FAIL Read should not respect C escapes.
detailsdetails
44pass pass FAIL Read builtin uses dynamic scope
details
45pass FAIL FAIL read -a reads into array
detailsdetails
46pass pass pass read -n with invalid arg
47pass FAIL FAIL read returns correct number of bytes without EOF
detailsdetails
48pass pass FAIL read -d : (colon-separated records)
details
49pass pass FAIL read -d '' (null-separated records)
details
50pass pass FAIL read -rd
details
51pass pass FAIL read -d when there's no delimiter
details
52pass pass FAIL read -t 0 tests if input is available
details
53FAIL FAIL FAIL read -t 0.5
detailsdetailsdetails
54pass pass FAIL read -t -0.5 is invalid
details
55FAIL FAIL FAIL read -u
detailsdetailsdetails
56pass pass pass read -u syntax error
57FAIL FAIL FAIL read -N doesn't respect delimiter, while read -n does
detailsdetailsdetails
58pass pass FAIL read -p (not fully tested)
details
59pass pass pass read usage
60pass pass FAIL read with smooshed args
details
61pass pass FAIL mapfile
details
62pass pass FAIL readarray (synonym for mapfile)
details
63pass pass FAIL mapfile (array name): arr
details
64FAIL FAIL FAIL mapfile (delimiter): -d delim
detailsdetailsdetails
65FAIL FAIL FAIL mapfile (delimiter): -d '' (null-separated)
detailsdetailsdetails
66pass pass FAIL mapfile (truncate delim): -t
details
67pass FAIL FAIL mapfile -t doesn't remove \r
detailsdetails
68FAIL FAIL FAIL mapfile (store position): -O start
detailsdetailsdetails
69FAIL FAIL FAIL mapfile (input range): -s start -n count
detailsdetailsdetails
70pass FAIL FAIL read -r -d '' for NUL strings, e.g. find -print0
detailsdetails
121 passed, 0 OK, 0 not implemented, 0 BUG, 92 failed, 0 timeouts, 0 cases skipped
7 failed under osh

Details on runs that didn't PASS

osh_.cc9 \0

[osh_.cc stdout] Expected u'ab\x00cd\n', got 'abcd\n'

stdout:
abcd
stderr:
osh_.py15 \0377 is the highest octal byte

[osh_.py stdout] Expected u' ff 37\n', got ''

stdout:
stderr: 
  echo -en '\03777' | od -A n -t x1 | sed 's/ \+/ /g'
                      ^~
[ stdin ]:1: 'od' not found
osh_.cc15 \0377 is the highest octal byte

[osh_.cc stdout] Expected u' ff 37\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py16 \0400 is one more than the highest octal byte

[osh_.py stdout] Expected u' 00 30\n', got ''

stdout:
stderr: 
  echo -en '\04000' | od -A n -t x1 | sed 's/ \+/ /g'
                      ^~
[ stdin ]:1: 'od' not found
osh_.cc16 \0400 is one more than the highest octal byte

[osh_.cc stdout] Expected u' 00 30\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py17 \0777 is out of range

[osh_.py stdout] Expected u' ff\n', got ''

stdout:
stderr: 
  echo $flags '\0777' | od -A n -t x1 | sed 's/ \+/ /g'
                        ^~
[ stdin ]:3: 'od' not found
osh_.cc17 \0777 is out of range

[osh_.cc stdout] Expected u' ff\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py18 incomplete hex escape

[osh_.py stdout] Expected u' a b c d 006\n', got ''

stdout:
stderr: 
  echo -en 'abcd\x6' | od -A n -c | sed 's/ \+/ /g'
                       ^~
[ stdin ]:1: 'od' not found
osh_.cc18 incomplete hex escape

[osh_.cc stdout] Expected u' a b c d 006\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py19 \x

[osh_.py stdout] Expected u' \\ x \\ x g \\n\n', got ''

stdout:
stderr: 
  echo -e '\x' '\xg' | od -A n -c | sed 's/ \+/ /g'
                       ^~
[ stdin ]:1: 'od' not found
osh_.cc19 \x

[osh_.cc stdout] Expected u' \\ x \\ x g \\n\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py20 incomplete octal escape

[osh_.py stdout] Expected u' a b c d 004\n', got ''

stdout:
stderr: 
  echo $flags 'abcd\04' | od -A n -c | sed 's/ \+/ /g'
                          ^~
[ stdin ]:3: 'od' not found
osh_.cc20 incomplete octal escape

[osh_.cc stdout] Expected u' a b c d 004\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py21 incomplete unicode escape

[osh_.py stdout] Expected u' a b c d 006\n', got ''

stdout:
stderr: 
  echo -en 'abcd\u006' | od -A n -c | sed 's/ \+/ /g'
                         ^~
[ stdin ]:1: 'od' not found
osh_.cc21 incomplete unicode escape

[osh_.cc stdout] Expected u' a b c d 006\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py22 \u6

[osh_.py stdout] Expected u' 006\n', got ''

stdout:
stderr: 
  echo $flags '\u6' | od -A n -c | sed 's/ \+/ /g'
                      ^~
[ stdin ]:3: 'od' not found
osh_.cc22 \u6

[osh_.cc stdout] Expected u' 006\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py23 \0 \1 \8

[osh_.py stdout] Expected u' \\0 \\ 1 \\ 8\n', got ''

stdout:
stderr: 
  echo $flags '\0' '\1' '\8' | od -A n -c | sed 's/ \+/ /g'
                               ^~
[ stdin ]:3: 'od' not found
osh_.cc23 \0 \1 \8

[osh_.cc stdout] Expected u' \\0 \\ 1 \\ 8\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc24 Read builtin

[osh_.cc stdout] Expected '[A\t\tB C D E]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py25 Read from empty file

[osh_.py stdout] Expected "['status=1', '']\n['status=1', '']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  echo -n '' > $TMP/empty.txt
             ^
[ stdin ]:1: Can't open '/empty.txt': Permission denied
  read x < $TMP/empty.txt
         ^
[ stdin ]:2: Can't open '/empty.txt': No such file or directory
  argv.py "status=$?" "$x"
  ^~~~~~~
[ stdin ]:3: 'argv.py' not found
  read < $TMP/empty.txt
       ^
[ stdin ]:4: Can't open '/empty.txt': No such file or directory
  argv.py "status=$?" "$REPLY"
  ^~~~~~~
[ stdin ]:5: 'argv.py' not found
osh_.cc25 Read from empty file

[osh_.cc stdout] Expected "['status=1', '']\n['status=1', '']\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.cc26 read /dev/null

[osh_.cc stdout] Expected '1\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.cc27 read with zero args

[osh_.cc stdout] Expected 'status=0\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc28 Read builtin with no newline.

[osh_.cc stdout] Expected u'1\nZZZ\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc29 Read builtin with multiple variables

[osh_.cc stdout] Expected '[A/B/C D E]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc30 Read builtin with not enough variables

[osh_.cc stdout] Expected '/A/B//\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py31 Read -n (with $REPLY)

[osh_.py stdout] Expected "['1234', '12']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  echo 12345 > $TMP/readn.txt
             ^
[ stdin ]:1: Can't open '/readn.txt': Permission denied
  read -n 4 x < $TMP/readn.txt
              ^
[ stdin ]:2: Can't open '/readn.txt': No such file or directory
  read -n 2 < $TMP/readn.txt  # Do it again with no variable
            ^
[ stdin ]:3: Can't open '/readn.txt': No such file or directory
  argv.py $x $REPLY
  ^~~~~~~
[ stdin ]:4: 'argv.py' not found
osh_.cc31 Read -n (with $REPLY)

[osh_.cc stdout] Expected "['1234', '12']\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.py32 IFS= read -n (OSH regression: value saved in tempenv)

[osh_.py stdout] Expected "['X']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  echo XYZ > "$TMP/readn.txt"
           ^
[ stdin ]:1: Can't open '/readn.txt': Permission denied
  IFS= TMOUT= read -n 1 char < "$TMP/readn.txt"
                             ^
[ stdin ]:2: Can't open '/readn.txt': No such file or directory
  argv.py "$char"
  ^~~~~~~
[ stdin ]:3: 'argv.py' not found
osh_.cc32 IFS= read -n (OSH regression: value saved in tempenv)

[osh_.cc stdout] Expected "['X']\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.py33 Read uses $REPLY (without -n)

[osh_.py stdout] Expected '123\n', got '\n'

stdout:
stderr: 
  echo 123 > $TMP/readreply.txt
           ^
[ stdin ]:1: Can't open '/readreply.txt': Permission denied
  read < $TMP/readreply.txt
       ^
[ stdin ]:2: Can't open '/readreply.txt': No such file or directory
osh_.cc33 Read uses $REPLY (without -n)

[osh_.cc stdout] Expected '123\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.py34 read -r ignores backslashes

[osh_.py stdout] Expected "['one two', 'one\\\\ two']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  echo 'one\ two' > $TMP/readr.txt
                  ^
[ stdin ]:1: Can't open '/readr.txt': Permission denied
  read escaped < $TMP/readr.txt
               ^
[ stdin ]:2: Can't open '/readr.txt': No such file or directory
  read -r raw < $TMP/readr.txt
              ^
[ stdin ]:3: Can't open '/readr.txt': No such file or directory
  argv.py "$escaped" "$raw"
  ^~~~~~~
[ stdin ]:4: 'argv.py' not found
osh_.cc34 read -r ignores backslashes

[osh_.cc stdout] Expected "['one two', 'one\\\\ two']\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.py35 read -r with other backslash escapes

[osh_.py stdout] Expected "['one twox65three', 'one\\\\ two\\\\x65three']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  echo 'one\ two\x65three' > $TMP/readr.txt
                           ^
[ stdin ]:1: Can't open '/readr.txt': Permission denied
  read escaped < $TMP/readr.txt
               ^
[ stdin ]:2: Can't open '/readr.txt': No such file or directory
  read -r raw < $TMP/readr.txt
              ^
[ stdin ]:3: Can't open '/readr.txt': No such file or directory
  argv.py "$escaped" "$raw"
  ^~~~~~~
[ stdin ]:4: 'argv.py' not found
osh_.cc35 read -r with other backslash escapes

[osh_.cc stdout] Expected "['one twox65three', 'one\\\\ two\\\\x65three']\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.py36 read with line continuation reads multiple physical lines

[osh_.py stdout] Expected "['onetwo', 'one\\\\']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  tmp=$TMP/$(basename $SH)-readr.txt
             ^~~~~~~~
[ stdin ]:1: 'basename' not found
  echo -e 'one\\\ntwo\n' > $tmp
                         ^
[ stdin ]:2: Can't open '/-readr.txt': Permission denied
  read escaped < $tmp
               ^
[ stdin ]:3: Can't open '/-readr.txt': No such file or directory
  read -r raw < $tmp
              ^
[ stdin ]:4: Can't open '/-readr.txt': No such file or directory
  argv.py "$escaped" "$raw"
  ^~~~~~~
[ stdin ]:5: 'argv.py' not found
osh_.cc36 read with line continuation reads multiple physical lines

[osh_.cc stdout] Expected "['onetwo', 'one\\\\']\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py37 read multiple vars spanning many lines

[osh_.py stdout] Expected "['one-two', 'three-four five-six', '']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "$x" "$y" "$z"
  ^~~~~~~
[ stdin ]:7: 'argv.py' not found
osh_.cc37 read multiple vars spanning many lines

[osh_.cc stdout] Expected "['one-two', 'three-four five-six', '']\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py38 read -r with \n

[osh_.py stdout] Expected "['nline', '\\\\nline']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  echo '\nline' > $TMP/readr.txt
                ^
[ stdin ]:1: Can't open '/readr.txt': Permission denied
  read escaped < $TMP/readr.txt
               ^
[ stdin ]:2: Can't open '/readr.txt': No such file or directory
  read -r raw < $TMP/readr.txt
              ^
[ stdin ]:3: Can't open '/readr.txt': No such file or directory
  argv.py "$escaped" "$raw"
  ^~~~~~~
[ stdin ]:4: 'argv.py' not found
osh_.cc38 read -r with \n

[osh_.cc stdout] Expected "['nline', '\\\\nline']\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.cc39 read -s from pipe, not a terminal

[osh_.cc stdout] Expected 'foo\nba\n0\nb\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc40 Read with IFS=$'\n'

[osh_.cc stdout] Expected '[ a b c]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py41 Read multiple lines with IFS=:

[osh_.py stdout] Expected '[ \\a |b: c|d e|]\n', got '[|||]\n'

stdout:
[|||]
stderr:
  tmp=$TMP/$(basename $SH)-read-ifs.txt
             ^~~~~~~~
[ stdin ]:1: 'basename' not found
  cat >$tmp <<'EOF'
      ^
[ stdin ]:3: Can't open '/-read-ifs.txt': Permission denied
  read a b c d < $tmp
               ^
[ stdin ]:7: Can't open '/-read-ifs.txt': No such file or directory
osh_.cc41 Read multiple lines with IFS=:

[osh_.cc stdout] Expected '[ \\a |b: c|d e|]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc42 Read with IFS=''

[osh_.cc stdout] Expected '[ a b c d|]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py43 Read should not respect C escapes.

[osh_.py stdout] Expected u'a b c d e f g h x65 145 i\n', got '\n'

stdout:
stderr: 
  echo '\a \b \c \d \e \f \g \h \x65 \145 \i' > $TMP/read-c.txt
                                              ^
[ stdin ]:1: Can't open '/read-c.txt': Permission denied
  read line < $TMP/read-c.txt
            ^
[ stdin ]:2: Can't open '/read-c.txt': No such file or directory
osh_.cc43 Read should not respect C escapes.

[osh_.cc stdout] Expected u'a b c d e f g h x65 145 i\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.cc44 Read builtin uses dynamic scope

[osh_.cc stdout] Expected 'ref: refs/heads/dev/andy\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py45 read -a reads into array

[osh_.py stdout] Expected "['a', 'b', 'c d']\n['a', 'b', 'c\\\\', 'd']\n[]\n[]\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${myarray[@]}"
  ^~~~~~~
[ stdin ]:9: 'argv.py' not found
  argv.py "${array2[@]}"
  ^~~~~~~
[ stdin ]:13: 'argv.py' not found
  argv.py "${extra[@]}"
  ^~~~~~~
[ stdin ]:14: 'argv.py' not found
  argv.py "${arguments[@]}"
  ^~~~~~~
[ stdin ]:15: 'argv.py' not found
osh_.cc45 read -a reads into array

[osh_.cc stdout] Expected "['a', 'b', 'c d']\n['a', 'b', 'c\\\\', 'd']\n[]\n[]\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.py47 read returns correct number of bytes without EOF

[osh_.py stdout] Expected 'xxx\n', got ''

stdout:
stderr: 
osh_.cc47 read returns correct number of bytes without EOF

[osh_.cc stdout] Expected 'xxx\n', got ''

stdout:
stderr: 
osh_.cc48 read -d : (colon-separated records)

[osh_.cc stdout] Expected 'v1=a,b,c\nv1=d v2=e,f\nv1=g v2=h v3=i\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc49 read -d '' (null-separated records)

[osh_.cc stdout] Expected 'v1=a,b,c\nv1=d v2=e,f\nv1=g v2=h v3=i\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc50 read -rd

[osh_.cc stdout] Expected 'foo\nbar\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc51 read -d when there's no delimiter

[osh_.cc stdout] Expected 'foo 0\nbar 1\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc52 read -t 0 tests if input is available

[osh_.cc stdout] Expected '0\n0\nreply=\n0\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh53 read -t 0.5

[osh stdout] Expected '1\n', got ''
[osh status] Expected 0, got 1

stdout:
stderr: 
  read -t 0.5 < /dev/null
  ^~~~
[ stdin ]:2: fatal: read -t isn't implemented (except t=0)
osh_.py53 read -t 0.5

[osh_.py stdout] Expected '1\n', got ''
[osh_.py status] Expected 0, got 1

stdout:
stderr: 
  read -t 0.5 < /dev/null
  ^~~~
[ stdin ]:2: fatal: read -t isn't implemented (except t=0)
osh_.cc53 read -t 0.5

[osh_.cc stdout] Expected '1\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.cc54 read -t -0.5 is invalid

[osh_.cc stdout] Expected '2\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh55 read -u

[osh stdout] Expected 'reply=hi\n', got 'reply=\n'

stdout:
reply=
stderr:
osh_.py55 read -u

[osh_.py stdout] Expected 'reply=hi\n', got 'reply=\n'

stdout:
reply=
stderr:
osh_.cc55 read -u

[osh_.cc stdout] Expected 'reply=hi\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh57 read -N doesn't respect delimiter, while read -n does

[osh stdout] Expected 'foo\nfooba\n', got 'fooba\nfooba\n'

stdout:
fooba
fooba
stderr:
  echo foobar | { read -N 5 -d b; echo $REPLY; }
                       ^~
[ stdin ]:3: 'read' doesn't accept flag -N
osh_.py57 read -N doesn't respect delimiter, while read -n does

[osh_.py stdout] Expected 'foo\nfooba\n', got 'fooba\nfooba\n'

stdout:
fooba
fooba
stderr:
  echo foobar | { read -N 5 -d b; echo $REPLY; }
                       ^~
[ stdin ]:3: 'read' doesn't accept flag -N
osh_.cc57 read -N doesn't respect delimiter, while read -n does

[osh_.cc stdout] Expected 'foo\nfooba\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc58 read -p (not fully tested)

[osh_.cc stdout] Expected 'hi\nh\n', got ''
[osh_.cc stderr] Expected u'', got "osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.\n"
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc60 read with smooshed args

[osh_.cc stdout] Expected 'var=h\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc61 mapfile

[osh_.cc stdout] Expected 'n=3\n[1\n]\n[3\n]\n[5\n]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.cc62 readarray (synonym for mapfile)

[osh_.cc stdout] Expected 'n=3\n[1\n]\n[3\n]\n[5\n]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.cc63 mapfile (array name): arr

[osh_.cc stdout] Expected 'n=3\n[1\n]\n[3\n]\n[5\n]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh64 mapfile (delimiter): -d delim

[osh stdout] Expected 'n=3\n[1:]\n[3:]\n[5:]\n', got 'n=0\n[]\n'

stdout:
n=0
[]
stderr:
    mapfile -d : arr
            ^~
[ stdin ]:3: 'mapfile' doesn't accept flag -d
osh_.py64 mapfile (delimiter): -d delim

[osh_.py stdout] Expected 'n=3\n[1:]\n[3:]\n[5:]\n', got 'n=0\n[]\n'

stdout:
n=0
[]
stderr:
    mapfile -d : arr
            ^~
[ stdin ]:3: 'mapfile' doesn't accept flag -d
osh_.cc64 mapfile (delimiter): -d delim

[osh_.cc stdout] Expected 'n=3\n[1:]\n[3:]\n[5:]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh65 mapfile (delimiter): -d '' (null-separated)

[osh stdout] Expected 'n=3\n[1]\n[3]\n[5]\n', got 'n=0\n[]\n'

stdout:
n=0
[]
stderr:
    mapfile -d '' arr
            ^~
[ stdin ]:3: 'mapfile' doesn't accept flag -d
osh_.py65 mapfile (delimiter): -d '' (null-separated)

[osh_.py stdout] Expected 'n=3\n[1]\n[3]\n[5]\n', got 'n=0\n[]\n'

stdout:
n=0
[]
stderr:
    mapfile -d '' arr
            ^~
[ stdin ]:3: 'mapfile' doesn't accept flag -d
osh_.cc65 mapfile (delimiter): -d '' (null-separated)

[osh_.cc stdout] Expected 'n=3\n[1]\n[3]\n[5]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.cc66 mapfile (truncate delim): -t

[osh_.cc stdout] Expected 'n=3\n[1]\n[3]\n[5]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.py67 mapfile -t doesn't remove \r

[osh_.py stdout] Expected "['1\\r', '3\\r', '5\\r']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
    argv.py "${arr[@]}"
    ^~~~~~~
[ stdin ]:4: 'argv.py' not found
osh_.cc67 mapfile -t doesn't remove \r

[osh_.cc stdout] Expected "['1\\r', '3\\r', '5\\r']\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh68 mapfile (store position): -O start

[osh stdout] Expected 'n=5\n[x]\n[y]\n[a0]\n[a1]\n[a2]\n', got 'n=3\n[x]\n[y]\n[z]\n'

stdout:
n=3
[x]
[y]
[z]
stderr:
    mapfile -O 2 -t arr
            ^~
[ stdin ]:4: 'mapfile' doesn't accept flag -O
osh_.py68 mapfile (store position): -O start

[osh_.py stdout] Expected 'n=5\n[x]\n[y]\n[a0]\n[a1]\n[a2]\n', got 'n=3\n[x]\n[y]\n[z]\n'

stdout:
n=3
[x]
[y]
[z]
stderr:
    mapfile -O 2 -t arr
            ^~
[ stdin ]:4: 'mapfile' doesn't accept flag -O
osh_.cc68 mapfile (store position): -O start

[osh_.cc stdout] Expected 'n=5\n[x]\n[y]\n[a0]\n[a1]\n[a2]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh69 mapfile (input range): -s start -n count

[osh stdout] Expected 'n=3\n[a5]\n[a6]\n[a7]\n', got 'n=0\n[]\n'

stdout:
n=0
[]
stderr:
    mapfile -s 5 -n 3 -t arr
            ^~
[ stdin ]:3: 'mapfile' doesn't accept flag -s
osh_.py69 mapfile (input range): -s start -n count

[osh_.py stdout] Expected 'n=3\n[a5]\n[a6]\n[a7]\n', got 'n=0\n[]\n'

stdout:
n=0
[]
stderr:
    mapfile -s 5 -n 3 -t arr
            ^~
[ stdin ]:3: 'mapfile' doesn't accept flag -s
osh_.cc69 mapfile (input range): -s start -n count

[osh_.cc stdout] Expected 'n=3\n[a5]\n[a6]\n[a7]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.py70 read -r -d '' for NUL strings, e.g. find -print0

[osh_.py stdout] Expected '[./a\\b\\c\\d]\n', got '[]\n'

stdout:
[]
stderr:
  find . -type f -a -print0 | { read -r -d ''; echo "[$REPLY]"; }
  ^~~~
[ stdin ]:6: 'find' not found
osh_.cc70 read -r -d '' for NUL strings, e.g. find -print0

[osh_.cc stdout] Expected '[./a\\b\\c\\d]\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.