Results for builtin-read.test.sh

statusbashmkshzshashosh
pass 4128213743
ok 33100
N-I 061680
BUG 29810
FAIL 00003
total4646464646
casebashmkshzshashoshdescription
0pass pass pass pass pass read line from here doc
1pass pass pass pass pass read from empty file
2pass pass pass pass pass read /dev/null
3pass pass pass pass pass read with zero args
4pass pass pass pass pass read builtin with no newline returns status 1
5pass pass pass pass pass read builtin splits value across multiple vars
6pass pass pass pass pass read builtin with too few variables
7pass pass N-I pass pass read -n (with $REPLY)
details
8pass pass N-I pass pass IFS= read -n (OSH regression: value saved in tempenv)
details
9pass BUG N-I pass pass read -n doesn't strip whitespace (bug fix)
detailsdetails
10pass BUG N-I N-I pass read -d -n - respects delimiter and splits
detailsdetailsdetails
11ok pass N-I pass pass read -n with invalid arg
detailsdetails
12pass pass N-I N-I pass read -n from pipe
detailsdetails
13pass BUG BUG pass pass read without args uses $REPLY, no splitting occurs (without -n)
detailsdetails
14pass BUG N-I N-I pass read -n vs. -N
detailsdetailsdetails
15pass pass N-I N-I pass read -N ignores delimiters
detailsdetails
16pass pass BUG pass pass read will unset extranous vars
details
17pass pass pass pass pass read -r ignores backslashes
18pass BUG BUG pass pass read -r with other backslash escapes
detailsdetails
19pass pass pass pass pass read with line continuation reads multiple physical lines
20pass pass pass pass pass read multiple vars spanning many lines
21pass BUG BUG pass pass read -r with \n
detailsdetails
22pass pass N-I pass pass read -s from pipe, not a terminal
details
23pass pass pass pass pass read with IFS=$'\n'
24pass pass pass pass pass read multiple lines with IFS=:
25pass pass pass pass pass read with IFS=''
26pass BUG BUG BUG pass read does not respect C backslash escapes
detailsdetailsdetails
27pass pass pass pass pass dynamic scope used to set vars
28pass N-I N-I N-I FAIL read -a reads into array
detailsdetailsdetailsdetails
29pass pass pass pass pass read -d : (colon-separated records)
30pass pass pass pass pass read -d '' (null-separated records)
31pass pass pass pass pass read -rd
32pass pass pass pass pass read -d when there's no delimiter
33pass N-I N-I pass pass read -t 0 tests if input is available
detailsdetails
34pass BUG BUG pass FAIL read -t 0.5
detailsdetailsdetails
35BUG pass BUG pass pass read -t -0.5 is invalid
detailsdetails
36pass N-I pass pass FAIL read -u
detailsdetails
37ok pass ok pass pass read -u syntax error
detailsdetails
38pass ok N-I N-I pass read -N doesn't respect delimiter, while read -n does
detailsdetailsdetails
39pass N-I N-I pass pass read -p (not fully tested)
detailsdetails
40ok BUG BUG pass pass read usage
detailsdetailsdetails
41pass pass N-I pass pass read with smooshed args
details
42pass N-I N-I pass pass read -r -d '' for NUL strings, e.g. find -print0
detailsdetails
43pass ok pass pass pass read from redirected directory is non-fatal error
details
44pass ok pass N-I pass read -n from directory
detailsdetails
45BUG N-I N-I N-I pass mapfile from directory (bash doesn't handle errors)
detailsdetailsdetailsdetails
170 passed, 7 OK, 30 not implemented, 20 BUG, 3 failed, 0 timeouts, 0 cases skipped
3 failed under osh

Details on runs that didn't PASS

zsh7 read -n (with $REPLY)

stdout:
[]
stderr:
zsh8 IFS= read -n (OSH regression: value saved in tempenv)

stdout:
['']
stderr:
mksh9 read -n doesn't strip whitespace (bug fix)

stdout:
[a]
[a b]
[a b]

one var strips whitespace
[a]
[a b]
[a b]

three vars
[a] [] []
[a] [b] []
[a] [b] []
stderr:
zsh9 read -n doesn't strip whitespace (bug fix)

stdout:
stderr: 
mksh10 read -d -n - respects delimiter and splits

stdout:
delim c
[a]
[a]
[a b]

one var
[a]
[a]
[a b]

three vars
[a] [] []
[a] [] []
[a] [b] []
stderr:
zsh10 read -d -n - respects delimiter and splits

stdout:
stderr: 
ash10 read -d -n - respects delimiter and splits

stdout:
stderr: 
bash11 read -n with invalid arg

stdout:
status=1
stderr:
bash: line 1: read: not_a_number: invalid number
zsh11 read -n with invalid arg

stdout:
stderr: 
zsh12 read -n from pipe

stdout:
stderr: 
ash12 read -n from pipe

stdout:
stderr: 
mksh13 read without args uses $REPLY, no splitting occurs (without -n)

stdout:
[a b]
[a b]
[a b    line2]
[a b    line2]
[a b  \]
[a b  \]
stderr:
zsh13 read without args uses $REPLY, no splitting occurs (without -n)

stdout:
[a b]
[a b]
[a b    line2]
[a b    line2]
[a b  \]
[a b  \]
stderr:
mksh14 read -n vs. -N

stdout:
read -n
'a' 'b' 'c'
'a' 'b' ''

read -N
'a' 'b' 'c'
'a' 'b' ''
stderr:
zsh14 read -n vs. -N

stdout:
stderr: 
ash14 read -n vs. -N

stdout:
stderr: 
zsh15 read -N ignores delimiters

stdout:
stderr: 
ash15 read -N ignores delimiters

stdout:
stderr: 
zsh16 read will unset extranous vars

stdout:
'a' 'b' ''
'b' '' ''
stderr:
mksh18 read -r with other backslash escapes

stdout:
['one twoethree', 'one\\ twoethree']
stderr:
zsh18 read -r with other backslash escapes

stdout:
['one twoethree', 'one\\ twoethree']
stderr:
mksh21 read -r with \n

stdout:
['', '']
stderr:
zsh21 read -r with \n

stdout:
['', '']
stderr:
zsh22 read -s from pipe, not a terminal

stdout:
stderr: 
mksh26 read does not respect C backslash escapes

stdout:
  d   g h e 145 i
stderr:
zsh26 read does not respect C backslash escapes

stdout:
 
stderr:
ash26 read does not respect C backslash escapes

stdout:
abcdefghx65 145 i
stderr:
mksh28 read -a reads into array

stdout:
stderr: 
zsh28 read -a reads into array

stdout:
stderr: 
ash28 read -a reads into array

stdout:
stderr: 
ash: read: line 7: illegal option -a
ash: syntax error: bad substitution
osh28 read -a reads into array

[osh stdout] Expected "['a', 'b', 'c d']\n['a', 'b', 'c\\\\', 'd']\n[]\n[]\n" Got ''
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1253, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 336, in Batch
    was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags)
  File "/home/uke/oil/core/main_loop.py", line 401, in Batch2
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple
    allow_assign=True)
  File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1932, in _EvalWordPart
    self._EvalDoubleQuoted(part.parts, part_vals)
  File "/home/uke/oil/osh/word_eval.py", line 1453, in _EvalDoubleQuoted
    self._EvalWordPart(p, part_vals, QUOTED)
  File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1750, in _EvalBracedVarSub
    part_val = _ValueToPartValue(val, quoted or quoted2, part)
  File "/home/uke/oil/osh/word_eval.py", line 235, in _ValueToPartValue
    return part_value.Array(bash_impl.BashArray_GetValues(val), quoted)
NameError: global name 'bash_impl' is not defined
mksh33 read -t 0 tests if input is available

stdout:
stderr: 
zsh33 read -t 0 tests if input is available

stdout:
stderr: 
mksh34 read -t 0.5

stdout:
1
stderr:
zsh34 read -t 0.5

stdout:
1
stderr:
osh34 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 ]:3: fatal: read -t isn't implemented (except t=0)
bash35 read -t -0.5 is invalid

stdout:
1
stderr:
zsh35 read -t -0.5 is invalid

stdout:
stderr: 
zsh: not an identifier: -0.5
mksh36 read -u

stdout:
stderr: 
osh36 read -u

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

stdout:
reply=
stderr:
  read -u 3 3<<EOF
  ^~~~
[ stdin ]:3: 'read' -u flag not implemented
bash37 read -u syntax error

stdout:
status=1
stderr:
bash: line 1: read: -3: invalid file descriptor specification
zsh37 read -u syntax error

stdout:
status=1
stderr:
mksh38 read -N doesn't respect delimiter, while read -n does

stdout:
fooba
fooba
stderr:
zsh38 read -N doesn't respect delimiter, while read -n does

stdout:
stderr: 
ash38 read -N doesn't respect delimiter, while read -n does

stdout:
stderr: 
mksh39 read -p (not fully tested)

stdout:
stderr: 
zsh39 read -p (not fully tested)

stdout:
stderr: 
bash40 read usage

stdout:
status=1
stderr:
bash: line 1: read: -1: invalid number
mksh40 read usage

stdout:
stderr: 
zsh40 read usage

stdout:
stderr: 
zsh: not an identifier: -1
zsh41 read with smooshed args

stdout:
var=
stderr:
zsh: bad option: -1
mksh42 read -r -d '' for NUL strings, e.g. find -print0

stdout:
stderr: 
zsh42 read -r -d '' for NUL strings, e.g. find -print0

stdout:
stderr: 
mksh43 read from redirected directory is non-fatal error

stdout:
stderr: 
mksh44 read -n from directory

stdout:
stderr: 
ash44 read -n from directory

stdout:
stderr: 
bash45 mapfile from directory (bash doesn't handle errors)

stdout:
status=0
stderr:
mksh45 mapfile from directory (bash doesn't handle errors)

stdout:
stderr: 
zsh45 mapfile from directory (bash doesn't handle errors)

stdout:
stderr: 
ash45 mapfile from directory (bash doesn't handle errors)

stdout:
stderr: