Results for builtin-io.test.sh

statusdashbashmkshzshashosh
pass 246649435669
ok 436400
N-I 380714100
BUG 5291050
FAIL 000002
total717171717171
casedashbashmkshzshashoshdescription
0pass pass pass BUG pass pass echo dashes
details
1BUG pass BUG BUG pass pass echo backslashes
detailsdetailsdetails
2N-I pass pass pass pass pass echo -e backslashes
details
3pass pass ok ok pass pass echo builtin should disallow typed args - literal
detailsdetails
4pass pass ok ok pass pass echo builtin should disallow typed args - variable
detailsdetails
5N-I pass pass pass pass pass echo -en
details
6ok pass ok ok pass pass echo -ez (invalid flag)
detailsdetailsdetails
7pass pass pass pass pass pass echo -e with embedded newline
8pass pass pass pass pass pass echo -e line continuation
9N-I pass pass pass pass pass echo -e with C escapes
details
10N-I pass pass pass pass pass echo -e with whitespace C escapes
details
11N-I pass pass pass pass pass \0
details
12pass pass N-I pass pass pass \c stops processing input
details
13N-I pass pass pass pass pass echo -e with hex escape
details
14pass pass pass pass pass pass echo -e with octal escape
15N-I pass pass pass N-I pass echo -e with 4 digit unicode escape
detailsdetails
16N-I pass pass pass N-I pass echo -e with 8 digit unicode escape
detailsdetails
17N-I pass pass pass pass pass \0377 is the highest octal byte
details
18N-I pass pass pass BUG pass \0400 is one more than the highest octal byte
detailsdetails
19pass pass BUG pass BUG pass \0777 is out of range
detailsdetails
20N-I pass pass pass pass pass incomplete hex escape
details
21N-I pass BUG BUG pass pass \x
detailsdetailsdetails
22pass pass pass pass pass pass incomplete octal escape
23N-I pass pass pass BUG pass incomplete unicode escape
detailsdetails
24N-I pass pass pass N-I pass \u6
detailsdetails
25BUG pass pass pass BUG pass \0 \1 \8
detailsdetails
26pass pass pass pass pass pass Read builtin
27ok pass pass pass pass pass Read from empty file
details
28ok pass pass pass pass pass read /dev/null
details
29BUG pass pass pass pass pass read with zero args
details
30pass pass pass pass pass pass Read builtin with no newline.
31pass pass pass pass pass pass Read builtin with multiple variables
32pass pass pass pass pass pass Read builtin with not enough variables
33N-I pass pass N-I pass pass Read -n (with $REPLY)
detailsdetails
34N-I pass pass N-I pass pass IFS= read -n (OSH regression: value saved in tempenv)
detailsdetails
35pass ok pass N-I pass pass read -n with invalid arg
detailsdetails
36N-I pass pass N-I N-I pass read -n from pipe
detailsdetailsdetails
37N-I pass pass pass pass pass Read uses $REPLY (without -n)
details
38N-I pass BUG N-I N-I pass read -n vs. -N
detailsdetailsdetailsdetails
39N-I pass pass N-I N-I pass read -N ignores delimiters
detailsdetailsdetails
40N-I pass pass BUG pass pass read will unset extranous vars
detailsdetails
41pass pass pass pass pass pass read -r ignores backslashes
42pass pass BUG BUG pass pass read -r with other backslash escapes
detailsdetails
43N-I pass pass pass pass pass read with line continuation reads multiple physical lines
details
44pass pass pass pass pass pass read multiple vars spanning many lines
45BUG pass BUG BUG pass pass read -r with \n
detailsdetailsdetails
46N-I pass pass N-I pass pass read -s from pipe, not a terminal
detailsdetails
47N-I pass pass pass pass pass Read with IFS=$'\n'
details
48pass pass pass pass pass pass Read multiple lines with IFS=:
49pass pass pass pass pass pass Read with IFS=''
50BUG pass BUG BUG BUG pass Read should not respect C escapes.
detailsdetailsdetailsdetails
51pass pass pass pass pass pass Read builtin uses dynamic scope
52N-I pass N-I N-I N-I pass read -a reads into array
detailsdetailsdetailsdetails
53N-I pass pass pass pass pass read -d : (colon-separated records)
details
54N-I pass pass pass pass pass read -d '' (null-separated records)
details
55N-I pass pass pass pass pass read -rd
details
56N-I pass pass pass pass pass read -d when there's no delimiter
details
57N-I pass N-I N-I pass pass read -t 0 tests if input is available
detailsdetailsdetails
58N-I pass BUG BUG pass FAIL read -t 0.5
detailsdetailsdetailsdetails
59pass BUG pass BUG pass pass read -t -0.5 is invalid
detailsdetails
60N-I pass N-I pass pass FAIL read -u
detailsdetailsdetails
61pass ok pass ok pass pass read -u syntax error
detailsdetails
62N-I pass ok N-I N-I pass read -N doesn't respect delimiter, while read -n does
detailsdetailsdetailsdetails
63N-I pass N-I N-I pass pass read -p (not fully tested)
detailsdetailsdetails
64pass ok BUG BUG pass pass read usage
detailsdetailsdetails
65N-I pass pass N-I pass pass read with smooshed args
detailsdetails
66N-I pass N-I N-I pass pass read -r -d '' for NUL strings, e.g. find -print0
detailsdetailsdetails
67pass pass ok pass pass pass redirection from directory is non-fatal error)
details
68N-I pass ok pass N-I pass read -n from directory
detailsdetailsdetails
69N-I BUG N-I N-I N-I pass mapfile from directory (bash doesn't handle errors)
detailsdetailsdetailsdetailsdetails
70ok pass pass pass pass pass Redirect to directory
details
307 passed, 17 OK, 69 not implemented, 31 BUG, 2 failed, 0 timeouts, 0 cases skipped
2 failed under osh

Details on runs that didn't PASS

zsh0 echo dashes

stdout:
--
---
stderr:
dash1 echo backslashes

stdout:
\
\
\
\
stderr:
mksh1 echo backslashes

stdout:
\
\
\
\
stderr:
zsh1 echo backslashes

stdout:
\
\
\
\
stderr:
dash2 echo -e backslashes

stdout:
-e \
-e \
-e \
-e \
stderr:
mksh3 echo builtin should disallow typed args - literal

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: '42' unexpected
zsh3 echo builtin should disallow typed args - literal

stdout:
stderr: 
zsh: no matches found: (42)
mksh4 echo builtin should disallow typed args - variable

stdout:
stderr: 
mksh: <stdin>[1]: var: not found
mksh: <stdin>[2]: syntax error: 'x' unexpected
zsh4 echo builtin should disallow typed args - variable

stdout:
stderr: 
zsh: command not found: var
zsh: no matches found: (x)
dash5 echo -en

stdout:
-en abc
def

stderr:
dash6 echo -ez (invalid flag)

stdout:
-ez abc

stderr:
mksh6 echo -ez (invalid flag)

stdout:
-ez abc

stderr:
zsh6 echo -ez (invalid flag)

stdout:
-ez abc

stderr:
dash9 echo -e with C escapes

stdout:
-e \d\e
stderr:
dash10 echo -e with whitespace C escapes

stdout:
-e 

	
stderr:
dash11 \0

stdout:
-e abcd
stderr:
mksh12 \c stops processing input

stdout:
xy abde zzz
stderr:
dash13 echo -e with hex escape

stdout:
-e abcd\x65f
stderr:
dash15 echo -e with 4 digit unicode escape

stdout:
abcd\u0065f
stderr:
ash15 echo -e with 4 digit unicode escape

stdout:
abcd\u0065f
stderr:
dash16 echo -e with 8 digit unicode escape

stdout:
abcd\U00000065f
stderr:
ash16 echo -e with 8 digit unicode escape

stdout:
abcd\U00000065f
stderr:
dash17 \0377 is the highest octal byte

stdout:
 2d 65 6e 20 ff 37 0a
stderr:
dash18 \0400 is one more than the highest octal byte

stdout:
 2d 65 6e 20 00 30 0a
stderr:
ash18 \0400 is one more than the highest octal byte

stdout:
 20 30 30
stderr:
mksh19 \0777 is out of range

stdout:
 c3 bf
stderr:
ash19 \0777 is out of range

stdout:
 3f 37
stderr:
dash20 incomplete hex escape

stdout:
 - e n a b c d \ x 6 \n
stderr:
dash21 \x

stdout:
 - e \ x \ x g \n
stderr:
mksh21 \x

stdout:
 \0 \0 g \n
stderr:
zsh21 \x

stdout:
 \0 \0 g \n
stderr:
dash23 incomplete unicode escape

stdout:
 - e n a b c d \ u 0 0 6 \n
stderr:
ash23 incomplete unicode escape

stdout:
 a b c d \ u 0 0 6
stderr:
dash24 \u6

stdout:
 \ u 6
stderr:
ash24 \u6

stdout:
 \ u 6
stderr:
dash25 \0 \1 \8

stdout:
 \0 001 \ 8
stderr:
ash25 \0 \1 \8

stdout:
 \0 001 \ 8
stderr:
dash27 Read from empty file

stdout:
['status=1', '']
['status=2', '']
stderr:
dash: 5: read: arg count
dash28 read /dev/null

stdout:
2
stderr:
dash: 1: read: Illegal option -n
dash29 read with zero args

stdout:
status=2
stderr:
dash: 1: read: arg count
dash33 Read -n (with $REPLY)

stdout:
[]
stderr:
dash: 2: read: Illegal option -n
dash: 3: read: Illegal option -n
zsh33 Read -n (with $REPLY)

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

stdout:
['']
stderr:
dash: 2: read: Illegal option -n
zsh34 IFS= read -n (OSH regression: value saved in tempenv)

stdout:
['']
stderr:
bash35 read -n with invalid arg

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

stdout:
stderr: 
dash36 read -n from pipe

stdout:
stderr: 
zsh36 read -n from pipe

stdout:
stderr: 
ash36 read -n from pipe

stdout:
stderr: 
dash37 Read uses $REPLY (without -n)

stdout:
stderr: 
dash: 2: read: arg count
dash38 read -n vs. -N

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

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

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

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

stdout:
stderr: 
dash39 read -N ignores delimiters

stdout:
stderr: 
zsh39 read -N ignores delimiters

stdout:
stderr: 
ash39 read -N ignores delimiters

stdout:
stderr: 
dash40 read will unset extranous vars

stdout:
'a' 'b' ''
stderr:
zsh40 read will unset extranous vars

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

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

stdout:
['one twoethree', 'one\\ twoethree']
stderr:
dash43 read with line continuation reads multiple physical lines

stdout:
['-e onetwo', '-e one\\']
stderr:
dash45 read -r with \n

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

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

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

stdout:
stderr: 
zsh46 read -s from pipe, not a terminal

stdout:
stderr: 
dash47 Read with IFS=$'\n'

stdout:
[a b c]
stderr:
dash50 Read should not respect C escapes.

stdout:
 
stderr:
mksh50 Read should not respect C escapes.

stdout:
  d   g h e 145 i
stderr:
zsh50 Read should not respect C escapes.

stdout:
 
stderr:
ash50 Read should not respect C escapes.

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

stdout:
stderr: 
mksh52 read -a reads into array

stdout:
stderr: 
zsh52 read -a reads into array

stdout:
stderr: 
ash52 read -a reads into array

stdout:
stderr: 
ash: read: line 7: illegal option -a
ash: syntax error: bad substitution
dash53 read -d : (colon-separated records)

stdout:
v1=
v1= v2=
v1= v2= v3=
stderr:
dash: 3: read: Illegal option -d
dash: 5: read: Illegal option -d
dash: 7: read: Illegal option -d
dash54 read -d '' (null-separated records)

stdout:
v1=
v1= v2=
v1= v2= v3=
stderr:
dash: 3: read: Illegal option -d
dash: 5: read: Illegal option -d
dash: 7: read: Illegal option -d
dash55 read -rd

stdout:
stderr: 
dash: 1: read: Illegal option -d
dash56 read -d when there's no delimiter

stdout:
2
2
stderr:
dash: 1: read: Illegal option -d
dash: 3: read: Illegal option -d
dash57 read -t 0 tests if input is available

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

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

stdout:
stderr: 
dash58 read -t 0.5

stdout:
stderr: 
mksh58 read -t 0.5

stdout:
1
stderr:
zsh58 read -t 0.5

stdout:
1
stderr:
osh58 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)
bash59 read -t -0.5 is invalid

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

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

stdout:
stderr: 
mksh60 read -u

stdout:
stderr: 
osh60 read -u

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

stdout:
reply=
stderr:
bash61 read -u syntax error

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

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

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

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

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

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

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

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

stdout:
stderr: 
bash64 read usage

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

stdout:
stderr: 
zsh64 read usage

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

stdout:
var=
stderr:
dash: 1: read: Illegal option -n
zsh65 read with smooshed args

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

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

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

stdout:
stderr: 
mksh67 redirection from directory is non-fatal error)

stdout:
stderr: 
dash68 read -n from directory

stdout:
stderr: 
mksh68 read -n from directory

stdout:
stderr: 
ash68 read -n from directory

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

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

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

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

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

stdout:
stderr: 
dash70 Redirect to directory

stdout:
status=2
status=2
stderr:
dash: 3: cannot create ./dir: Is a directory
dash: 5: cannot create ./dir: Is a directory