spec test index / oilshell.org
307 passed, 17 OK, 69 not implemented, 31 BUG, 2 failed, 0 timeouts, 0 cases skipped 2 failed under osh
zsh | 0 echo dashes stdout: -- ---stderr: |
dash | 1 echo backslashes stdout: \ \ \ \stderr: |
mksh | 1 echo backslashes stdout: \ \ \ \stderr: |
zsh | 1 echo backslashes stdout: \ \ \ \stderr: |
dash | 2 echo -e backslashes stdout: -e \ -e \ -e \ -e \stderr: |
mksh | 3 echo builtin should disallow typed args - literal stdout: stderr: mksh: <stdin>[1]: syntax error: '42' unexpected |
zsh | 3 echo builtin should disallow typed args - literal stdout: stderr: zsh: no matches found: (42) |
mksh | 4 echo builtin should disallow typed args - variable stdout: stderr: mksh: <stdin>[1]: var: not found mksh: <stdin>[2]: syntax error: 'x' unexpected |
zsh | 4 echo builtin should disallow typed args - variable stdout: stderr: zsh: command not found: var zsh: no matches found: (x) |
dash | 5 echo -en stdout: -en abc defstderr: |
dash | 6 echo -ez (invalid flag) stdout: -ez abcstderr: |
mksh | 6 echo -ez (invalid flag) stdout: -ez abcstderr: |
zsh | 6 echo -ez (invalid flag) stdout: -ez abcstderr: |
dash | 9 echo -e with C escapes stdout: -e \d\estderr: |
dash | 10 echo -e with whitespace C escapes stdout: -estderr: |
dash | 11 \0 stdout: -e ab cdstderr: |
mksh | 12 \c stops processing input stdout: xy abde zzzstderr: |
dash | 13 echo -e with hex escape stdout: -e abcd\x65fstderr: |
dash | 15 echo -e with 4 digit unicode escape stdout: abcd\u0065fstderr: |
ash | 15 echo -e with 4 digit unicode escape stdout: abcd\u0065fstderr: |
dash | 16 echo -e with 8 digit unicode escape stdout: abcd\U00000065fstderr: |
ash | 16 echo -e with 8 digit unicode escape stdout: abcd\U00000065fstderr: |
dash | 17 \0377 is the highest octal byte stdout: 2d 65 6e 20 ff 37 0astderr: |
dash | 18 \0400 is one more than the highest octal byte stdout: 2d 65 6e 20 00 30 0astderr: |
ash | 18 \0400 is one more than the highest octal byte stdout: 20 30 30stderr: |
mksh | 19 \0777 is out of range stdout: c3 bfstderr: |
ash | 19 \0777 is out of range stdout: 3f 37stderr: |
dash | 20 incomplete hex escape stdout: - e n a b c d \ x 6 \nstderr: |
dash | 21 \x stdout: - e \ x \ x g \nstderr: |
mksh | 21 \x stdout: \0 \0 g \nstderr: |
zsh | 21 \x stdout: \0 \0 g \nstderr: |
dash | 23 incomplete unicode escape stdout: - e n a b c d \ u 0 0 6 \nstderr: |
ash | 23 incomplete unicode escape stdout: a b c d \ u 0 0 6stderr: |
dash | 24 \u6 stdout: \ u 6stderr: |
ash | 24 \u6 stdout: \ u 6stderr: |
dash | 25 \0 \1 \8 stdout: \0 001 \ 8stderr: |
ash | 25 \0 \1 \8 stdout: \0 001 \ 8stderr: |
dash | 27 Read from empty file stdout: ['status=1', ''] ['status=2', '']stderr: dash: 5: read: arg count |
dash | 28 read /dev/null stdout: 2stderr: dash: 1: read: Illegal option -n |
dash | 29 read with zero args stdout: status=2stderr: dash: 1: read: arg count |
dash | 33 Read -n (with $REPLY) stdout: []stderr: dash: 2: read: Illegal option -n dash: 3: read: Illegal option -n |
zsh | 33 Read -n (with $REPLY) stdout: []stderr: |
dash | 34 IFS= read -n (OSH regression: value saved in tempenv) stdout: ['']stderr: dash: 2: read: Illegal option -n |
zsh | 34 IFS= read -n (OSH regression: value saved in tempenv) stdout: ['']stderr: |
bash | 35 read -n with invalid arg stdout: status=1stderr: bash: line 1: read: not_a_number: invalid number |
zsh | 35 read -n with invalid arg stdout: stderr: |
dash | 36 read -n from pipe stdout: stderr: |
zsh | 36 read -n from pipe stdout: stderr: |
ash | 36 read -n from pipe stdout: stderr: |
dash | 37 Read uses $REPLY (without -n) stdout: stderr: dash: 2: read: arg count |
dash | 38 read -n vs. -N stdout: stderr: |
mksh | 38 read -n vs. -N stdout: read -n 'a' 'b' 'c' 'a' 'b' '' read -N 'a' 'b' 'c' 'a' 'b' ''stderr: |
zsh | 38 read -n vs. -N stdout: stderr: |
ash | 38 read -n vs. -N stdout: stderr: |
dash | 39 read -N ignores delimiters stdout: stderr: |
zsh | 39 read -N ignores delimiters stdout: stderr: |
ash | 39 read -N ignores delimiters stdout: stderr: |
dash | 40 read will unset extranous vars stdout: 'a' 'b' ''stderr: |
zsh | 40 read will unset extranous vars stdout: 'a' 'b' '' 'b' '' ''stderr: |
mksh | 42 read -r with other backslash escapes stdout: ['one twoethree', 'one\\ twoethree']stderr: |
zsh | 42 read -r with other backslash escapes stdout: ['one twoethree', 'one\\ twoethree']stderr: |
dash | 43 read with line continuation reads multiple physical lines stdout: ['-e onetwo', '-e one\\']stderr: |
dash | 45 read -r with \n stdout: ['', '']stderr: |
mksh | 45 read -r with \n stdout: ['', '']stderr: |
zsh | 45 read -r with \n stdout: ['', '']stderr: |
dash | 46 read -s from pipe, not a terminal stdout: stderr: |
zsh | 46 read -s from pipe, not a terminal stdout: stderr: |
dash | 47 Read with IFS=$'\n' stdout: [a b c]stderr: |
dash | 50 Read should not respect C escapes. stdout: stderr: |
mksh | 50 Read should not respect C escapes. stdout: d g h e 145 istderr: |
zsh | 50 Read should not respect C escapes. stdout: stderr: |
ash | 50 Read should not respect C escapes. stdout: abcdefghx65 145 istderr: |
dash | 52 read -a reads into array stdout: stderr: |
mksh | 52 read -a reads into array stdout: stderr: |
zsh | 52 read -a reads into array stdout: stderr: |
ash | 52 read -a reads into array stdout: stderr: ash: read: line 7: illegal option -a ash: syntax error: bad substitution |
dash | 53 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 |
dash | 54 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 |
dash | 55 read -rd stdout: stderr: dash: 1: read: Illegal option -d |
dash | 56 read -d when there's no delimiter stdout: 2 2stderr: dash: 1: read: Illegal option -d dash: 3: read: Illegal option -d |
dash | 57 read -t 0 tests if input is available stdout: stderr: |
mksh | 57 read -t 0 tests if input is available stdout: stderr: |
zsh | 57 read -t 0 tests if input is available stdout: stderr: |
dash | 58 read -t 0.5 stdout: stderr: |
mksh | 58 read -t 0.5 stdout: 1stderr: |
zsh | 58 read -t 0.5 stdout: 1stderr: |
osh | 58 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) |
bash | 59 read -t -0.5 is invalid stdout: 1stderr: |
zsh | 59 read -t -0.5 is invalid stdout: stderr: zsh: not an identifier: -0.5 |
dash | 60 read -u stdout: stderr: |
mksh | 60 read -u stdout: stderr: |
osh | 60 read -u [osh stdout] Expected 'reply=hi\n', got 'reply=\n' stdout: reply=stderr: |
bash | 61 read -u syntax error stdout: status=1stderr: bash: line 1: read: -3: invalid file descriptor specification |
zsh | 61 read -u syntax error stdout: status=1stderr: |
dash | 62 read -N doesn't respect delimiter, while read -n does stdout: stderr: |
mksh | 62 read -N doesn't respect delimiter, while read -n does stdout: fooba foobastderr: |
zsh | 62 read -N doesn't respect delimiter, while read -n does stdout: stderr: |
ash | 62 read -N doesn't respect delimiter, while read -n does stdout: stderr: |
dash | 63 read -p (not fully tested) stdout: stderr: |
mksh | 63 read -p (not fully tested) stdout: stderr: |
zsh | 63 read -p (not fully tested) stdout: stderr: |
bash | 64 read usage stdout: status=1stderr: bash: line 1: read: -1: invalid number |
mksh | 64 read usage stdout: stderr: |
zsh | 64 read usage stdout: stderr: zsh: not an identifier: -1 |
dash | 65 read with smooshed args stdout: var=stderr: dash: 1: read: Illegal option -n |
zsh | 65 read with smooshed args stdout: var=stderr: zsh: bad option: -1 |
dash | 66 read -r -d '' for NUL strings, e.g. find -print0 stdout: stderr: |
mksh | 66 read -r -d '' for NUL strings, e.g. find -print0 stdout: stderr: |
zsh | 66 read -r -d '' for NUL strings, e.g. find -print0 stdout: stderr: |
mksh | 67 redirection from directory is non-fatal error) stdout: stderr: |
dash | 68 read -n from directory stdout: stderr: |
mksh | 68 read -n from directory stdout: stderr: |
ash | 68 read -n from directory stdout: stderr: |
dash | 69 mapfile from directory (bash doesn't handle errors) stdout: stderr: |
bash | 69 mapfile from directory (bash doesn't handle errors) stdout: status=0stderr: |
mksh | 69 mapfile from directory (bash doesn't handle errors) stdout: stderr: |
zsh | 69 mapfile from directory (bash doesn't handle errors) stdout: stderr: |
ash | 69 mapfile from directory (bash doesn't handle errors) stdout: stderr: |
dash | 70 Redirect to directory stdout: status=2 status=2stderr: dash: 3: cannot create ./dir: Is a directory dash: 5: cannot create ./dir: Is a directory |