status | bash | dash | mksh | ash | yash | osh | |
pass | 43 | 40 | 42 | 40 | 41 | 33 | |
N-I | 0 | 1 | 0 | 1 | 0 | 0 | |
BUG | 0 | 2 | 1 | 2 | 2 | 0 | |
FAIL | 0 | 0 | 0 | 0 | 0 | 10 | |
total | 43 | 43 | 43 | 43 | 43 | 43 | |
case | bash | dash | mksh | ash | yash | osh | description |
0 | pass | pass | pass | pass | pass | pass | IFS is scoped |
1 | pass | pass | pass | pass | pass | pass | Tilde sub is not split, but var sub is |
2 | pass | pass | pass | pass | pass | pass | Word splitting |
3 | pass | pass | pass | pass | pass | pass | Word splitting 2 |
4 | pass | pass | pass | pass | pass | pass | $* |
5 | pass | pass | pass | pass | pass | pass | "$*" |
6 | pass | pass | pass | pass | pass | pass | $@ |
7 | pass | pass | pass | pass | pass | pass | "$@" |
8 | pass | pass | pass | pass | pass | pass | empty argv |
9 | pass | pass | pass | pass | pass | pass | Word elision with space |
10 | pass | pass | pass | pass | BUG | pass | Word elision with non-whitespace IFS |
details | |||||||
11 | pass | pass | pass | pass | pass | pass | Leading/trailing word elision with non-whitespace IFS |
12 | pass | pass | pass | pass | pass | pass | Leading ' ' vs leading ' _ ' |
13 | pass | pass | pass | pass | pass | pass | Multiple non-whitespace IFS chars. |
14 | pass | pass | pass | pass | pass | pass | IFS with whitespace and non-whitepace. |
15 | pass | pass | pass | pass | pass | pass | empty $@ and $* is elided |
16 | pass | pass | pass | pass | pass | pass | unquoted empty arg is elided |
17 | pass | pass | pass | pass | pass | pass | unquoted whitespace arg is elided |
18 | pass | pass | pass | pass | pass | pass | empty literals are not elided |
19 | pass | pass | pass | pass | pass | pass | no splitting when IFS is empty |
20 | pass | pass | pass | pass | pass | pass | default value can yield multiple words |
21 | pass | pass | pass | pass | pass | pass | default value can yield multiple words with part joining |
22 | pass | pass | pass | pass | pass | pass | default value with unquoted IFS char |
23 | pass | pass | pass | pass | pass | pass | IFS empty doesn't do splitting |
24 | pass | pass | pass | pass | pass | pass | IFS unset behaves like $' \t\n' |
25 | pass | pass | pass | pass | pass | FAIL | IFS='\' |
details | |||||||
26 | pass | pass | pass | pass | pass | FAIL | IFS='\ ' |
details | |||||||
27 | pass | pass | pass | pass | pass | pass | IFS characters are glob metacharacters |
28 | pass | pass | pass | pass | pass | pass | Trailing space |
29 | pass | pass | pass | pass | pass | pass | Empty IFS (regression for bug) |
30 | pass | pass | pass | pass | pass | pass | Unset IFS (regression for bug) |
31 | pass | pass | pass | pass | pass | pass | IFS=o (regression for bug) |
32 | pass | pass | pass | pass | pass | pass | IFS and joining arrays |
33 | pass | BUG | pass | BUG | BUG | FAIL | IFS and joining arrays by assignments |
details | details | details | details | ||||
34 | pass | pass | pass | pass | pass | pass | TODO |
35 | pass | pass | pass | pass | pass | FAIL | IFS='' with $@ and $* (bug #627) |
details | |||||||
36 | pass | pass | pass | pass | pass | FAIL | IFS='' with $@ and $* and printf (bug #627) |
details | |||||||
37 | pass | N-I | pass | N-I | pass | FAIL | IFS='' with ${a[@]} and ${a[*]} (bug #627) |
details | details | details | |||||
38 | pass | pass | pass | pass | pass | FAIL | Bug #628 split on : with : in literal word |
details | |||||||
39 | pass | pass | pass | pass | pass | pass | Bug #698, similar crash |
40 | pass | pass | pass | pass | pass | FAIL | Bug #1664, \\ with noglob |
details | |||||||
41 | pass | pass | pass | pass | pass | FAIL | Empty IFS bug #2141 (from pnut) |
details | |||||||
42 | pass | BUG | BUG | BUG | pass | FAIL | Unicode in IFS |
details | details | details | details |
239 passed, 0 OK, 2 not implemented, 7 BUG, 10 failed, 0 timeouts, 0 cases skipped 10 failed under osh
yash | 10 Word elision with non-whitespace IFS stdout: [] [' '] []stderr: |
osh | 25 IFS='\' [osh stdout] Expected "['a', 'b']\n", got "['a', '', '', '', 'b']\n" stdout: ['a', '', '', '', 'b']stderr: |
osh | 26 IFS='\ ' [osh stdout] Expected "['a', 'b', '', 'c', 'd']\n", got "['a', '', '', '', 'b', '', '', '', '', '', '', '', 'c', 'd', '', '', '']\n" stdout: ['a', '', '', '', 'b', '', '', '', '', '', '', '', 'c', 'd', '', '', '']stderr: |
dash | 33 IFS and joining arrays by assignments stdout: ['x:y z'] ['x:y z'] ['x:y z'] ['x:y z']stderr: dash: 10: sx:y z: not found |
ash | 33 IFS and joining arrays by assignments stdout: ['x:y z'] ['x:y z'] ['x:y z'] ['x:y z']stderr: ash: sx:y z: not found |
yash | 33 IFS and joining arrays by assignments stdout: ['x:y z'] ['x:y z'] ['x:y z'] ['x:y z']stderr: yash: no such command `sx:y z' |
osh | 33 IFS and joining arrays by assignments [osh stdout] Expected "['x y z']\n['x y z']\n['x y z']\n['x:y z']\n" Got "['x y z']\n['x:y z']\n['x:y z']\n['x:y z']\n" stdout: ['x y z'] ['x:y z'] ['x:y z'] ['x:y z']stderr: s"$*" ^ [ stdin ]:10: 'sx:y z' not found (OILS-ERR-100) |
osh | 35 IFS='' with $@ and $* (bug #627) [osh stdout] Expected "['at', 'a', 'b c']\n['star', 'a', 'b c']\n" Got "['at', 'ab c']\n['star', 'ab c']\n" stdout: ['at', 'ab c'] ['star', 'ab c']stderr: |
osh | 36 IFS='' with $@ and $* and printf (bug #627) [osh stdout] Expected '[a]\n[b c]\n[a]\n[b c]\n', got '[ab c]\n[ab c]\n' stdout: [ab c] [ab c]stderr: |
dash | 37 IFS='' with ${a[@]} and ${a[*]} (bug #627) stdout: stderr: dash: 1: Syntax error: "(" unexpected |
ash | 37 IFS='' with ${a[@]} and ${a[*]} (bug #627) stdout: stderr: ash: syntax error: unexpected "(" |
osh | 37 IFS='' with ${a[@]} and ${a[*]} (bug #627) [osh stdout] Expected "['at', 'a', 'b c']\n['star', 'a', 'b c']\n" Got "['at', 'ab c']\n['star', 'ab c']\n" stdout: ['at', 'ab c'] ['star', 'ab c']stderr: |
osh | 38 Bug #628 split on : with : in literal word [osh stdout] Expected "['a', ':b']\n['a', ':']\n---\n['a', 'zb']\n['a', 'z']\n" Got "['a', '\\\\', 'b']\n['a', '\\\\']\n---\n['a', '\\\\', 'b']\n['a', '\\\\']\n" stdout: ['a', '\\', 'b'] ['a', '\\'] --- ['a', '\\', 'b'] ['a', '\\']stderr: |
osh | 40 Bug #1664, \\ with noglob [osh stdout] Expected "['[\\\\]_']\n['[\\\\]_']\nnoglob\n['[\\\\]_']\n['[\\\\]_']\n" Got "['[\\\\]_']\n['[\\\\]_']\nnoglob\n['[\\\\\\\\]_']\n['[\\\\]_']\n" stdout: ['[\\]_'] ['[\\]_'] noglob ['[\\\\]_'] ['[\\]_']stderr: |
osh | 41 Empty IFS bug #2141 (from pnut) [osh stdout] Expected '12 + 30 = 42\n12 + 30 = 42\n12 + 30 = 42\n12 + 30 = 42\n12 + 30 = 42\n' Got '12 + 30 = 42\n12 + 30 = 42\n1230 + 0 = 1230\n1230 + = 1230\n' [osh status] Expected 0, got 1 stdout: 12 + 30 = 42 12 + 30 = 42 1230 + 0 = 1230 1230 + = 1230stderr: res=$(($1 + $2)) ^~ [ stdin ]:4: fatal: Undefined variable '2' |
dash | 42 Unicode in IFS stdout: <> <> <x>stderr: dash: 1: setopt: not found |
mksh | 42 Unicode in IFS stdout: <> <> <x>stderr: mksh: <stdin>[1]: setopt: not found |
ash | 42 Unicode in IFS stdout: <> <> <x>stderr: ash: setopt: not found |
osh | 42 Unicode in IFS [osh stdout] Expected '<>\n<x>\n', got '<>\n<>\n<x>\n' stdout: <> <> <x>stderr: setopt SH_WORD_SPLIT ^~~~~~ [ stdin ]:1: 'setopt' not found (OILS-ERR-100) |