Results for word-split.test.sh

statusbashdashashzshmkshkshtoyshsushbrushosh
pass 47474718464729453345
ok 3000300000
N-I 0330200000
BUG 2222100000
FAIL 0003205237197
total52525252525252525252
casebashdashashzshmkshkshtoyshsushbrushoshdescription
0pass pass pass FAIL pass pass FAIL pass pass pass IFS is scoped
detailsdetails
1pass pass pass FAIL pass pass pass pass pass pass Tilde sub is not split, but var sub is
details
2pass pass pass FAIL pass pass pass pass pass pass Word splitting
details
3pass pass pass FAIL pass pass pass pass pass pass Word splitting 2
details
4pass pass pass FAIL pass pass pass pass pass pass $*
details
5pass pass pass pass pass pass pass pass pass pass "$*"
6pass pass pass FAIL pass pass pass pass pass pass $@
details
7pass pass pass pass pass pass pass pass pass pass "$@"
8pass pass pass pass pass pass FAIL pass pass pass empty argv
details
9pass pass pass pass pass pass FAIL pass FAIL pass $* with empty IFS
detailsdetails
10pass pass pass FAIL pass pass FAIL pass pass pass Word elision with space
detailsdetails
11pass pass pass FAIL pass pass pass pass FAIL pass Word elision with non-whitespace IFS
detailsdetails
12pass pass pass FAIL pass pass pass pass FAIL pass Leading/trailing word elision with non-whitespace IFS
detailsdetails
13pass pass pass FAIL pass pass FAIL pass FAIL pass Leading ' ' vs leading ' _ '
detailsdetailsdetails
14pass pass pass FAIL pass pass pass pass FAIL pass Multiple non-whitespace IFS chars.
detailsdetails
15pass pass pass FAIL pass pass pass pass FAIL pass IFS with whitespace and non-whitepace.
detailsdetails
16pass pass pass pass pass pass pass pass pass pass empty $@ and $* is elided
17pass pass pass pass pass pass pass pass pass pass unquoted empty arg is elided
18pass pass pass FAIL pass pass FAIL pass pass pass unquoted whitespace arg is elided
detailsdetails
19pass pass pass FAIL pass pass FAIL pass pass pass empty literals are not elided
detailsdetails
20pass pass pass pass pass pass pass pass pass pass no splitting when IFS is empty
21pass pass pass FAIL pass pass FAIL pass FAIL pass default value can yield multiple words
detailsdetailsdetails
22pass pass pass FAIL pass pass FAIL pass FAIL pass default value can yield multiple words with part joining
detailsdetailsdetails
23pass pass pass FAIL pass pass FAIL FAIL FAIL pass default value with unquoted IFS char
detailsdetailsdetailsdetails
24pass pass pass pass pass pass pass pass pass pass IFS empty doesn't do splitting
25pass pass pass FAIL pass pass FAIL pass pass pass IFS unset behaves like $' \t\n'
detailsdetails
26pass pass pass FAIL pass pass pass FAIL pass FAIL IFS='\'
detailsdetailsdetails
27pass pass pass FAIL pass pass pass FAIL FAIL FAIL IFS='\ '
detailsdetailsdetailsdetails
28pass pass pass FAIL pass pass pass pass FAIL pass IFS characters are glob metacharacters
detailsdetails
29pass pass pass pass pass pass pass pass pass pass Trailing space
30pass pass pass FAIL pass pass pass pass FAIL pass Empty IFS (regression for bug)
detailsdetails
31pass pass pass FAIL pass pass pass pass pass pass Unset IFS (regression for bug)
details
32pass pass pass pass pass pass pass pass FAIL pass IFS=o (regression for bug)
details
33pass pass pass pass pass pass FAIL pass pass pass IFS and joining arrays
details
34pass BUG BUG FAIL pass pass FAIL pass FAIL FAIL IFS and joining arrays by assignments
detailsdetailsdetailsdetailsdetailsdetails
35pass pass pass pass pass pass pass pass pass pass TODO
36pass pass pass pass pass pass FAIL pass pass pass IFS='' with $@ and $* (bug #627)
details
37pass pass pass pass pass pass FAIL pass pass pass IFS='' with $@ and $* and printf (bug #627)
details
38pass N-I N-I pass pass pass FAIL pass pass pass IFS='' with ${a[@]} and ${a[*]} (bug #627)
detailsdetailsdetails
39BUG N-I N-I FAIL N-I FAIL FAIL FAIL pass pass IFS='' with ${!prefix@} and ${!prefix*} (bug #627)
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
40BUG N-I N-I FAIL N-I pass FAIL pass pass pass IFS='' with ${!a[@]} and ${!a[*]} (bug #627)
detailsdetailsdetailsdetailsdetailsdetails
41pass pass pass FAIL pass pass pass pass FAIL FAIL Bug #628 split on : with : in literal word
detailsdetailsdetails
42pass pass pass pass pass pass pass pass pass pass Bug #698, similar crash
43pass pass pass FAIL pass pass pass pass pass FAIL Bug #1664, \\ with noglob
detailsdetails
44pass pass pass pass pass pass pass pass pass pass Empty IFS bug #2141 (from pnut)
45pass BUG BUG pass BUG FAIL pass pass FAIL FAIL Unicode in IFS
detailsdetailsdetailsdetailsdetailsdetails
46pass pass pass BUG pass pass FAIL pass FAIL pass 4 x 3 table: (default IFS, IFS='', IFS=zx) x ( $* "$*" $@ "$@" )
detailsdetailsdetails
47pass pass pass FAIL pass pass FAIL pass FAIL pass 4 x 3 table - with for loop
detailsdetailsdetails
48ok pass pass FAIL ok FAIL FAIL FAIL FAIL pass IFS=x and '' and $@ - same bug as spec/toysh-posix case #12
detailsdetailsdetailsdetailsdetailsdetailsdetails
49ok pass pass FAIL ok FAIL FAIL FAIL pass pass IFS=x and '' and $@ (#2)
detailsdetailsdetailsdetailsdetailsdetails
50ok pass pass BUG ok FAIL pass FAIL pass pass IFS=x and '' and $@ (#3)
detailsdetailsdetailsdetailsdetails
51pass pass pass FAIL pass pass FAIL pass pass FAIL ""$A"" - empty string on both sides - derived from spec/toysh-posix #15
detailsdetailsdetails
404 passed, 6 OK, 8 not implemented, 9 BUG, 93 failed, 0 timeouts, 0 cases skipped
7 failed under osh

Details on runs that didn't PASS

zsh0 IFS is scoped

[zsh stdout] Expected "['ab', 'd']\n['a', 'cd']\n", got "['abcd']\n['abcd']\n"

stdout:
['abcd']
['abcd']
stderr:
toysh0 IFS is scoped

[toysh stdout] Expected "['ab', 'd']\n['a', 'cd']\n", got "['a', 'cd']\n['a', 'cd']\n"

stdout:
['a', 'cd']
['a', 'cd']
stderr:
zsh1 Tilde sub is not split, but var sub is

[zsh stdout] Expected "['foo bar']\n['foo', 'bar']\n", got "['foo bar']\n['foo bar']\n"

stdout:
['foo bar']
['foo bar']
stderr:
zsh2 Word splitting

[zsh stdout] Expected "['1', '23 4']\n", got "['1 23 4']\n"

stdout:
['1 23 4']
stderr:
zsh3 Word splitting 2

[zsh stdout] Expected "['1', '23 45', '67 8']\n", got "['1 23 45 67 8']\n"

stdout:
['1 23 45 67 8']
stderr:
zsh4 $*

[zsh stdout] Expected "['-a', '1', 'b', '2', 'c', '3-']\n", got "['-a 1', 'b 2', 'c 3-']\n"

stdout:
['-a 1', 'b 2', 'c 3-']
stderr:
zsh6 $@

[zsh stdout] Expected "['-a', '1', 'b', '2', 'c', '3-']\n", got "['-a 1', 'b 2', 'c 3-']\n"

stdout:
['-a 1', 'b 2', 'c 3-']
stderr:
toysh8 empty argv

[toysh stdout] Expected "['1', '2', '3', '', '4', '5']\n", got "['1', '', '2', '3', '', '4', '5']\n"

stdout:
['1', '', '2', '3', '', '4', '5']
stderr:
toysh9 $* with empty IFS

[toysh stdout] Expected "['1 2', '3 4']\n['1 23 4']\n", got "[]\n['']\n"

stdout:
[]
['']
stderr:
set: bad --
brush9 $* with empty IFS

[brush stdout] Expected "['1 2', '3 4']\n['1 23 4']\n", got "['1 2', '3 4']\n['1 2 3 4']\n"

stdout:
['1 2', '3  4']
['1 2 3  4']
stderr:
zsh10 Word elision with space

[zsh stdout] Expected '[]\n', got "[' ']\n"

stdout:
[' ']
stderr:
toysh10 Word elision with space

[toysh stdout] Expected '[]\n', got "['']\n"

stdout:
['']
stderr:
zsh11 Word elision with non-whitespace IFS

[zsh stdout] Expected "['']\n[' ']\n[]\n", got "['_']\n[' ']\n[]\n"

stdout:
['_']
[' ']
[]
stderr:
brush11 Word elision with non-whitespace IFS

[brush stdout] Expected "['']\n[' ']\n[]\n", got "[]\n[' ']\n[]\n"

stdout:
[]
[' ']
[]
stderr:
zsh12 Leading/trailing word elision with non-whitespace IFS

[zsh stdout] Expected "['', 'a', 'b']\n", got "['_a_b_']\n"

stdout:
['_a_b_']
stderr:
brush12 Leading/trailing word elision with non-whitespace IFS

[brush stdout] Expected "['', 'a', 'b']\n", got "['a', 'b']\n"

stdout:
['a', 'b']
stderr:
zsh13 Leading ' ' vs leading ' _ '

[zsh stdout] Expected "['', 'a', 'b']\n['a', 'b']\n", got "['_ a b _ ']\n[' a b _ ']\n"

stdout:
['_ a  b _ ']
['  a  b _ ']
stderr:
toysh13 Leading ' ' vs leading ' _ '

[toysh stdout] Expected "['', 'a', 'b']\n['a', 'b']\n", got "['', 'a', 'b']\n['', 'a', 'b']\n"

stdout:
['', 'a', 'b']
['', 'a', 'b']
stderr:
brush13 Leading ' ' vs leading ' _ '

[brush stdout] Expected "['', 'a', 'b']\n['a', 'b']\n", got "['a', 'b']\n['a', 'b']\n"

stdout:
['a', 'b']
['a', 'b']
stderr:
zsh14 Multiple non-whitespace IFS chars.

[zsh stdout] Expected "['a', '', 'b', '', '', 'c', 'd']\n", got "['a__b---c_d']\n"

stdout:
['a__b---c_d']
stderr:
brush14 Multiple non-whitespace IFS chars.

[brush stdout] Expected "['a', '', 'b', '', '', 'c', 'd']\n", got "['a', 'b', 'c', 'd']\n"

stdout:
['a', 'b', 'c', 'd']
stderr:
zsh15 IFS with whitespace and non-whitepace.

[zsh stdout] Expected "['a', 'b', '', '', 'c', 'd', 'e']\n", got "['a_b _ _ _ c _d e']\n"

stdout:
['a_b _ _ _ c  _d e']
stderr:
brush15 IFS with whitespace and non-whitepace.

[brush stdout] Expected "['a', 'b', '', '', 'c', 'd', 'e']\n", got "['a', 'b', 'c', 'd', 'e']\n"

stdout:
['a', 'b', 'c', 'd', 'e']
stderr:
zsh18 unquoted whitespace arg is elided

[zsh stdout] Expected "['1', '2']\n", got "['1', ' ', '2']\n"

stdout:
['1', ' ', '2']
stderr:
toysh18 unquoted whitespace arg is elided

[toysh stdout] Expected "['1', '2']\n", got "['1', '', '2']\n"

stdout:
['1', '', '2']
stderr:
zsh19 empty literals are not elided

[zsh stdout] Expected "['1', '', '2']\n", got "['1', ' ', '2']\n"

stdout:
['1', ' ', '2']
stderr:
toysh19 empty literals are not elided

[toysh stdout] Expected "['1', '', '2']\n", got "['1', '', '', '2']\n"

stdout:
['1', '', '', '2']
stderr:
zsh21 default value can yield multiple words

[zsh stdout] Expected "['1', '2 3', '4 5', '6']\n", got "['1', '2 3 4 5', '6']\n"

stdout:
['1', '2 3 4 5', '6']
stderr:
toysh21 default value can yield multiple words

[toysh stdout] Expected "['1', '2 3', '4 5', '6']\n", got '[\'1\', \'"2\', \'3"\', \'"4\', \'5"\', \'6\']\n'

stdout:
['1', '"2', '3"', '"4', '5"', '6']
stderr:
brush21 default value can yield multiple words

[brush stdout] Expected "['1', '2 3', '4 5', '6']\n", got "['1', '2', '3', '4', '5', '6']\n"

stdout:
['1', '2', '3', '4', '5', '6']
stderr:
zsh22 default value can yield multiple words with part joining

[zsh stdout] Expected "['12 3', '4 56']\n", got "['12 3 4 56']\n"

stdout:
['12 3 4 56']
stderr:
toysh22 default value can yield multiple words with part joining

[toysh stdout] Expected "['12 3', '4 56']\n", got '[\'1"2\', \'3"\', \'"4\', \'5"6\']\n'

stdout:
['1"2', '3"', '"4', '5"6']
stderr:
brush22 default value can yield multiple words with part joining

[brush stdout] Expected "['12 3', '4 56']\n", got "['12', '3', '4', '56']\n"

stdout:
['12', '3', '4', '56']
stderr:
zsh23 default value with unquoted IFS char

[zsh stdout] Expected "['12_3x', 'x4_56']\n", got "['12_3x_x4_56']\n"

stdout:
['12_3x_x4_56']
stderr:
toysh23 default value with unquoted IFS char

[toysh stdout] Expected "['12_3x', 'x4_56']\n", got '[\'1"2\', \'3"x\', \'x"4\', \'5"6\']\n'

stdout:
['1"2', '3"x', 'x"4', '5"6']
stderr:
sush23 default value with unquoted IFS char

[sush stdout] Expected "['12_3x', 'x4_56']\n", got "['12_3x_x4_56']\n"

stdout:
['12_3x_x4_56']
stderr:
brush23 default value with unquoted IFS char

[brush stdout] Expected "['12_3x', 'x4_56']\n", got "['12', '3x', 'x4', '56']\n"

stdout:
['12', '3x', 'x4', '56']
stderr:
zsh25 IFS unset behaves like $' \t\n'

[zsh stdout] Expected "['a', 'b', 'c']\n", got "[' a b\\tc']\n"

stdout:
[' a b\tc']
stderr:
toysh25 IFS unset behaves like $' \t\n'

[toysh stdout] Expected "['a', 'b', 'c']\n", got "['', 'a', 'b', 'c']\n"

stdout:
['', 'a', 'b', 'c']
stderr:
zsh26 IFS='\'

[zsh stdout] Expected "['a', 'b']\n", got "['a\\\\b']\n"

stdout:
['a\\b']
stderr:
sush26 IFS='\'

[sush stdout] Expected "['a', 'b']\n", got "['a\\\\b']\n"

stdout:
['a\\b']
stderr:
osh26 IFS='\'

[osh stdout] Expected "['a', 'b']\n", got "['a', '', '', '', 'b']\n"

stdout:
['a', '', '', '', 'b']
stderr:
zsh27 IFS='\ '

[zsh stdout] Expected "['a', 'b', '', 'c', 'd']\n", got "['a\\\\b \\\\\\\\ c d\\\\']\n"

stdout:
['a\\b \\\\ c d\\']
stderr:
sush27 IFS='\ '

[sush stdout] Expected "['a', 'b', '', 'c', 'd']\n", got "['a\\\\b', 'c', 'd\\\\']\n"

stdout:
['a\\b', 'c', 'd\\']
stderr:
brush27 IFS='\ '

[brush stdout] Expected "['a', 'b', '', 'c', 'd']\n", got "['a', 'b', 'c', 'd']\n"

stdout:
['a', 'b', 'c', 'd']
stderr:
osh27 IFS='\ '

[osh stdout] Expected "['a', 'b', '', 'c', 'd']\n", got "['a', '', '', '', 'b', '', '', '', '', '', '', '', 'c', 'd', '', '', '']\n"

stdout:
['a', '', '', '', 'b', '', '', '', '', '', '', '', 'c', 'd', '', '', '']
stderr:
zsh28 IFS characters are glob metacharacters

[zsh stdout] Expected "['a', 'b', 'c']\n['', 'x', 'y', 'z']\n['', 'x', 'y', 'z']\n" Got "['a*b c']\n['?x?y?z?']\n['[x[y[z[']\n"

stdout:
['a*b c']
['?x?y?z?']
['[x[y[z[']
stderr:
brush28 IFS characters are glob metacharacters

[brush stdout] Expected "['a', 'b', 'c']\n['', 'x', 'y', 'z']\n['', 'x', 'y', 'z']\n" Got "['a', 'b', 'c']\n['x', 'y', 'z']\n['x', 'y', 'z']\n"

stdout:
['a', 'b', 'c']
['x', 'y', 'z']
['x', 'y', 'z']
stderr:
zsh30 Empty IFS (regression for bug)

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

stdout:
stderr: 
zsh: no matches found: []
brush30 Empty IFS (regression for bug)

[brush stdout] Expected '[]\n[abc]\n', got '[]\n[a b c]\n'

stdout:
[]
[a b c]
stderr:
zsh31 Unset IFS (regression for bug)

[zsh stdout] Expected '[a b c]\n', got ''
[zsh status] Expected 0, got 1

stdout:
stderr: 
zsh: no matches found: [a b c]
brush32 IFS=o (regression for bug)

[brush stdout] Expected 'hi\n', got ''
[brush status] Expected 0, got 127

stdout:
stderr: 
ech: command not found
toysh33 IFS and joining arrays

[toysh stdout] Expected "['x', 'y z']\n['x', 'y z']\n['x:y z']\n['x', 'y z']\n" Got "['']\n[]\n['']\n[]\n"

stdout:
['']
[]
['']
[]
stderr:
set: bad --
dash34 IFS and joining arrays by assignments

stdout:
['x:y z']
['x:y z']
['x:y z']
['x:y z']
stderr:
ash34 IFS and joining arrays by assignments

stdout:
['x:y z']
['x:y z']
['x:y z']
['x:y z']
stderr:
zsh34 IFS and joining arrays by assignments

[zsh 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:
toysh34 IFS and joining arrays by assignments

[toysh stdout] Expected "['x y z']\n['x y z']\n['x:y z']\n['x:y z']\n" Got "['']\n['']\n['']\n['']\n"

stdout:
['']
['']
['']
['']
stderr:
set: bad --
brush34 IFS and joining arrays by assignments

[brush 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:
osh34 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:
toysh36 IFS='' with $@ and $* (bug #627)

[toysh stdout] Expected "['at', 'a', 'b c']\n['star', 'a', 'b c']\n" Got "['at']\n['star']\n"

stdout:
['at']
['star']
stderr:
set: bad --
toysh37 IFS='' with $@ and $* and printf (bug #627)

[toysh stdout] Expected '[a]\n[b c]\n[a]\n[b c]\n', got '[]\n[]\n'

stdout:
[]
[]
stderr:
set: bad --
dash38 IFS='' with ${a[@]} and ${a[*]} (bug #627)

stdout:
stderr: 
ash38 IFS='' with ${a[@]} and ${a[*]} (bug #627)

stdout:
stderr: 
toysh38 IFS='' with ${a[@]} and ${a[*]} (bug #627)

[toysh stdout] Expected "['at', 'a', 'b c']\n['star', 'a', 'b c']\n" Got ''
[toysh status] Expected 0, got -6

stdout:
stderr: 
munmap_chunk(): invalid pointer
bash39 IFS='' with ${!prefix@} and ${!prefix*} (bug #627)

stdout:
['at', 'gLwbmGzS_var1', 'gLwbmGzS_var2']
['star', 'gLwbmGzS_var1gLwbmGzS_var2']
stderr:
dash39 IFS='' with ${!prefix@} and ${!prefix*} (bug #627)

stdout:
stderr: 
ash39 IFS='' with ${!prefix@} and ${!prefix*} (bug #627)

stdout:
stderr: 
zsh39 IFS='' with ${!prefix@} and ${!prefix*} (bug #627)

[zsh stdout] Expected "['at', 'gLwbmGzS_var1', 'gLwbmGzS_var2']\n['star', 'gLwbmGzS_var1', 'gLwbmGzS_var2']\n" Got ''
[zsh status] Expected 0, got 1

stdout:
stderr: 
zsh: bad substitution
mksh39 IFS='' with ${!prefix@} and ${!prefix*} (bug #627)

stdout:
stderr: 
ksh39 IFS='' with ${!prefix@} and ${!prefix*} (bug #627)

[ksh stdout] Expected "['at', 'gLwbmGzS_var1', 'gLwbmGzS_var2']\n['star', 'gLwbmGzS_var1', 'gLwbmGzS_var2']\n" Got ''
[ksh status] Expected 0, got 1

stdout:
stderr: 
E: ksh: <stdin>[6]: ${!gLwbmGzS_@}: bad substitution
toysh39 IFS='' with ${!prefix@} and ${!prefix*} (bug #627)

[toysh stdout] Expected "['at', 'gLwbmGzS_var1', 'gLwbmGzS_var2']\n['star', 'gLwbmGzS_var1', 'gLwbmGzS_var2']\n" Got ''
[toysh status] Expected 0, got -6

stdout:
stderr: 
munmap_chunk(): invalid pointer
sush39 IFS='' with ${!prefix@} and ${!prefix*} (bug #627)

[sush stdout] Expected "['at', 'gLwbmGzS_var1', 'gLwbmGzS_var2']\n['star', 'gLwbmGzS_var1', 'gLwbmGzS_var2']\n" Got ''
[sush status] Expected 0, got 1

stdout:
stderr: 
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: `${!gLwbmGzS_@}': bad substitution
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: `${!gLwbmGzS_*}': bad substitution
bash40 IFS='' with ${!a[@]} and ${!a[*]} (bug #627)

stdout:
['at', '0', '1', '2']
['star', '0 1 2']
stderr:
dash40 IFS='' with ${!a[@]} and ${!a[*]} (bug #627)

stdout:
stderr: 
ash40 IFS='' with ${!a[@]} and ${!a[*]} (bug #627)

stdout:
stderr: 
zsh40 IFS='' with ${!a[@]} and ${!a[*]} (bug #627)

[zsh stdout] Expected "['at', '0', '1', '2']\n['star', '0', '1', '2']\n" Got ''
[zsh status] Expected 0, got 1

stdout:
stderr: 
zsh: bad substitution
mksh40 IFS='' with ${!a[@]} and ${!a[*]} (bug #627)

stdout:
stderr: 
toysh40 IFS='' with ${!a[@]} and ${!a[*]} (bug #627)

[toysh stdout] Expected "['at', '0', '1', '2']\n['star', '0', '1', '2']\n" Got ''
[toysh status] Expected 0, got -6

stdout:
stderr: 
munmap_chunk(): invalid pointer
zsh41 Bug #628 split on : with : in literal word

[zsh stdout] Expected "['a', ':b']\n['a', ':']\n---\n['a', 'zb']\n['a', 'z']\n" Got "['a::b']\n['a::']\n---\n['azzb']\n['azz']\n"

stdout:
['a::b']
['a::']
---
['azzb']
['azz']
stderr:
brush41 Bug #628 split on : with : in literal word

[brush 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:
osh41 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:
zsh43 Bug #1664, \\ with noglob

[zsh stdout] Expected "['[\\\\]_']\n['[\\\\]_']\nnoglob\n['[\\\\]_']\n['[\\\\]_']\n" Got "['[\\\\]_']\nnoglob\n['[\\\\]_']\n"

stdout:
['[\\]_']
noglob
['[\\]_']
stderr:
zsh: no matches found: [\]_
zsh: no matches found: [\]_
osh43 Bug #1664, \\ with noglob

[osh stdout] Expected "['[\\\\]_']\n['[\\\\]_']\nnoglob\n['[\\\\]_']\n['[\\\\]_']\n" Got "['[\\\\]_']\n['[\\\\]_']\nnoglob\n['[\\\\\\\\]_']\n['[\\\\]_']\n"

stdout:
['[\\]_']
['[\\]_']
noglob
['[\\\\]_']
['[\\]_']
stderr:
dash45 Unicode in IFS

stdout:
<>
<>
<x>
stderr:
dash: 1: setopt: not found
ash45 Unicode in IFS

stdout:
<>
<>
<x>
stderr:
ash: setopt: not found
mksh45 Unicode in IFS

stdout:
<>
<>
<x>
stderr:
mksh: <stdin>[1]: setopt: not found
ksh45 Unicode in IFS

[ksh stdout] Expected '<>\n<x>\n', got '<>\n<>\n<x>\n'

stdout:
<>
<>
<x>
stderr:
E: ksh: <stdin>[1]: setopt: inaccessible or not found
brush45 Unicode in IFS

[brush stdout] Expected '<>\n<x>\n', got '<x>\n'

stdout:
<x>
stderr:
setopt: command not found
osh45 Unicode in IFS

[osh stdout] Expected '<>\n<x>\n', got '<>\n<>\n<x>\n'

stdout:
<>
<>
<x>
stderr:
  setopt SH_WORD_SPLIT
  ^~~~~~
[ stdin ]:1: Command 'setopt' not found (OILS-ERR-100)
zsh46 4 x 3 table: (default IFS, IFS='', IFS=zx) x ( $* "$*" $@ "$@" )

stdout:
['  $*  ', 'a', 'b', 'c']
[' "$*" ', 'a b c ']
['  $@  ', 'a b', 'c']
[' "$@" ', 'a b', 'c', '']

['  $*  ', 'a b', 'c']
[' "$*" ', 'a bc']
['  $@  ', 'a b', 'c']
[' "$@" ', 'a b', 'c', '']

['  $*  ', 'a b', 'c', '']
[' "$*" ', 'a bzcz']
['  $@  ', 'a b', 'c']
[' "$@" ', 'a b', 'c', '']
stderr:
toysh46 4 x 3 table: (default IFS, IFS='', IFS=zx) x ( $* "$*" $@ "$@" )

[toysh stdout] Expected '[\' $* \', \'a\', \'b\', \'c\']\n[\' "$*" \', \'a b c \']\n[\' $@ \', \'a\', \'b\', \'c\']\n[\' "$@" \', \'a b\', \'c\', \'\']\n\n[\' $* \', \'a b\', \'c\']\n[\' "$*" \', \'a bc\']\n[\' $@ \', \'a b\', \'c\']\n[\' "$@" \', \'a b\', \'c\', \'\']\n\n[\' $* \', \'a b\', \'c\']\n[\' "$*" \', \'a bzcz\']\n[\' $@ \', \'a b\', \'c\']\n[\' "$@" \', \'a b\', \'c\', \'\']\n' Got '[\' $* \']\n[\' "$*" \', \'\']\n[\' $@ \']\n[\' "$@" \', \'\']\n\n[\' $* \']\n[\' "$*" \', \'\']\n[\' $@ \']\n[\' "$@" \', \'\']\n\n[\' $* \']\n[\' "$*" \', \'\']\n[\' $@ \']\n[\' "$@" \', \'\']\n'

stdout:
['  $*  ']
[' "$*" ', '']
['  $@  ']
[' "$@" ', '']

['  $*  ']
[' "$*" ', '']
['  $@  ']
[' "$@" ', '']

['  $*  ']
[' "$*" ', '']
['  $@  ']
[' "$@" ', '']
stderr:
sh: setopt: No such file or directory
set: bad --
brush46 4 x 3 table: (default IFS, IFS='', IFS=zx) x ( $* "$*" $@ "$@" )

[brush stdout] Expected '[\' $* \', \'a\', \'b\', \'c\']\n[\' "$*" \', \'a b c \']\n[\' $@ \', \'a\', \'b\', \'c\']\n[\' "$@" \', \'a b\', \'c\', \'\']\n\n[\' $* \', \'a b\', \'c\']\n[\' "$*" \', \'a bc\']\n[\' $@ \', \'a b\', \'c\']\n[\' "$@" \', \'a b\', \'c\', \'\']\n\n[\' $* \', \'a b\', \'c\']\n[\' "$*" \', \'a bzcz\']\n[\' $@ \', \'a b\', \'c\']\n[\' "$@" \', \'a b\', \'c\', \'\']\n' Got '[\' $* \', \'a\', \'b\', \'c\']\n[\' "$*" \', \'a b c \']\n[\' $@ \', \'a\', \'b\', \'c\']\n[\' "$@" \', \'a b\', \'c\', \'\']\n\n[\' $* \', \'a b\', \'c\']\n[\' "$*" \', \'a b c \']\n[\' $@ \', \'a b\', \'c\']\n[\' "$@" \', \'a b\', \'c\', \'\']\n\n[\' $* \', \'a b\', \'c\']\n[\' "$*" \', \'a bzcz\']\n[\' $@ \', \'a b\', \'c\']\n[\' "$@" \', \'a b\', \'c\', \'\']\n'

stdout:
['  $*  ', 'a', 'b', 'c']
[' "$*" ', 'a b c ']
['  $@  ', 'a', 'b', 'c']
[' "$@" ', 'a b', 'c', '']

['  $*  ', 'a b', 'c']
[' "$*" ', 'a b c ']
['  $@  ', 'a b', 'c']
[' "$@" ', 'a b', 'c', '']

['  $*  ', 'a b', 'c']
[' "$*" ', 'a bzcz']
['  $@  ', 'a b', 'c']
[' "$@" ', 'a b', 'c', '']
stderr:
setopt: command not found
zsh47 4 x 3 table - with for loop

[zsh stdout] Expected ' $* -a- -b- -c-\n "$*" -a b c -\n $@ -a- -b- -c-\n "$@" -a b- -c- --\n\n $* -a b- -c-\n "$*" -a bc-\n $@ -a b- -c-\n "$@" -a b- -c- --\n\n $* -a b- -c-\n "$*" -a b c -\n $@ -a b- -c-\n "$@" -a b- -c- --\n' Got ' $* -a- -b- -c-\n "$*" -a b c -\n $@ -a b- -c-\n "$@" -a b- -c- --\n\n $* -a b- -c-\n "$*" -a bc-\n $@ -a b- -c-\n "$@" -a b- -c- --\n\n $* -a b- -c- --\n "$*" -a b c -\n $@ -a b- -c-\n "$@" -a b- -c- --\n'

stdout:
  $*   -a- -b- -c-
 "$*"  -a b c -
  $@   -a b- -c-
 "$@"  -a b- -c- --

  $*   -a b- -c-
 "$*"  -a bc-
  $@   -a b- -c-
 "$@"  -a b- -c- --

  $*   -a b- -c- --
 "$*"  -a b c -
  $@   -a b- -c-
 "$@"  -a b- -c- --
stderr:
toysh47 4 x 3 table - with for loop

[toysh stdout] Expected ' $* -a- -b- -c-\n "$*" -a b c -\n $@ -a- -b- -c-\n "$@" -a b- -c- --\n\n $* -a b- -c-\n "$*" -a bc-\n $@ -a b- -c-\n "$@" -a b- -c- --\n\n $* -a b- -c-\n "$*" -a b c -\n $@ -a b- -c-\n "$@" -a b- -c- --\n' Got ''
[toysh status] Expected 0, got -6

stdout:
stderr: 
munmap_chunk(): invalid pointer
brush47 4 x 3 table - with for loop

[brush stdout] Expected ' $* -a- -b- -c-\n "$*" -a b c -\n $@ -a- -b- -c-\n "$@" -a b- -c- --\n\n $* -a b- -c-\n "$*" -a bc-\n $@ -a b- -c-\n "$@" -a b- -c- --\n\n $* -a b- -c-\n "$*" -a b c -\n $@ -a b- -c-\n "$@" -a b- -c- --\n' Got ' $* -a- -b- -c-\n "$*" -a b c -\n $@ -a- -b- -c-\n "$@" -a b- -c- --\n\n $* -a b- -c-\n "$*" -a b c -\n $@ -a b- -c-\n "$@" -a b- -c- --\n\n $* -a b- -c-\n "$*" -a b c -\n $@ -a b- -c-\n "$@" -a b- -c- --\n'

stdout:
  $*   -a- -b- -c-
 "$*"  -a b c -
  $@   -a- -b- -c-
 "$@"  -a b- -c- --

  $*   -a b- -c-
 "$*"  -a b c -
  $@   -a b- -c-
 "$@"  -a b- -c- --

  $*   -a b- -c-
 "$*"  -a b c -
  $@   -a b- -c-
 "$@"  -a b- -c- --
stderr:
setopt: command not found
bash48 IFS=x and '' and $@ - same bug as spec/toysh-posix case #12

stdout:
  $*   -one- -- -two-
 "$*"  -one  two-
  $@   -one- -- -two-
 "$@"  -one- -- -two-
['  $*  ', 'one', '', 'two']
[' "$*" ', 'onezztwo']
['  $@  ', 'one', '', 'two']
[' "$@" ', 'one', '', 'two']
stderr:
bash: line 3: setopt: command not found
zsh48 IFS=x and '' and $@ - same bug as spec/toysh-posix case #12

[zsh stdout] Expected ' $* -one- -two-\n "$*" -one two-\n $@ -one- -two-\n "$@" -one- -- -two-\n[\' $* \', \'one\', \'two\']\n[\' "$*" \', \'onezztwo\']\n[\' $@ \', \'one\', \'two\']\n[\' "$@" \', \'one\', \'\', \'two\']\n' Got ' $* -one- -- -two-\n "$*" -one two-\n $@ -one- -two-\n "$@" -one- -- -two-\n[\' $* \', \'one\', \'\', \'two\']\n[\' "$*" \', \'onezztwo\']\n[\' $@ \', \'one\', \'two\']\n[\' "$@" \', \'one\', \'\', \'two\']\n'

stdout:
  $*   -one- -- -two-
 "$*"  -one  two-
  $@   -one- -two-
 "$@"  -one- -- -two-
['  $*  ', 'one', '', 'two']
[' "$*" ', 'onezztwo']
['  $@  ', 'one', 'two']
[' "$@" ', 'one', '', 'two']
stderr:
mksh48 IFS=x and '' and $@ - same bug as spec/toysh-posix case #12

stdout:
  $*   -one- -- -two-
 "$*"  -one  two-
  $@   -one- -- -two-
 "$@"  -one- -- -two-
['  $*  ', 'one', '', 'two']
[' "$*" ', 'onezztwo']
['  $@  ', 'one', '', 'two']
[' "$@" ', 'one', '', 'two']
stderr:
mksh: <stdin>[3]: setopt: not found
ksh48 IFS=x and '' and $@ - same bug as spec/toysh-posix case #12

[ksh stdout] Expected ' $* -one- -two-\n "$*" -one two-\n $@ -one- -two-\n "$@" -one- -- -two-\n[\' $* \', \'one\', \'two\']\n[\' "$*" \', \'onezztwo\']\n[\' $@ \', \'one\', \'two\']\n[\' "$@" \', \'one\', \'\', \'two\']\n' Got ' $* -one- -- -two-\n "$*" -one two-\n $@ -one- -- -two-\n "$@" -one- -- -two-\n[\' $* \', \'one\', \'\', \'two\']\n[\' "$*" \', \'onezztwo\']\n[\' $@ \', \'one\', \'\', \'two\']\n[\' "$@" \', \'one\', \'\', \'two\']\n'

stdout:
  $*   -one- -- -two-
 "$*"  -one  two-
  $@   -one- -- -two-
 "$@"  -one- -- -two-
['  $*  ', 'one', '', 'two']
[' "$*" ', 'onezztwo']
['  $@  ', 'one', '', 'two']
[' "$@" ', 'one', '', 'two']
stderr:
E: ksh: <stdin>[3]: setopt: inaccessible or not found
toysh48 IFS=x and '' and $@ - same bug as spec/toysh-posix case #12

[toysh stdout] Expected ' $* -one- -two-\n "$*" -one two-\n $@ -one- -two-\n "$@" -one- -- -two-\n[\' $* \', \'one\', \'two\']\n[\' "$*" \', \'onezztwo\']\n[\' $@ \', \'one\', \'two\']\n[\' "$@" \', \'one\', \'\', \'two\']\n' Got ''
[toysh status] Expected 0, got -6

stdout:
stderr: 
munmap_chunk(): invalid pointer
sush48 IFS=x and '' and $@ - same bug as spec/toysh-posix case #12

[sush stdout] Expected ' $* -one- -two-\n "$*" -one two-\n $@ -one- -two-\n "$@" -one- -- -two-\n[\' $* \', \'one\', \'two\']\n[\' "$*" \', \'onezztwo\']\n[\' $@ \', \'one\', \'two\']\n[\' "$@" \', \'one\', \'\', \'two\']\n' Got ' $* -one- -- -two-\n "$*" -one two-\n $@ -one- -- -two-\n "$@" -one- -- -two-\n[\' $* \', \'one\', \'\', \'two\']\n[\' "$*" \', \'onezztwo\']\n[\' $@ \', \'one\', \'\', \'two\']\n[\' "$@" \', \'one\', \'\', \'two\']\n'

stdout:
  $*   -one- -- -two-
 "$*"  -one  two-
  $@   -one- -- -two-
 "$@"  -one- -- -two-
['  $*  ', 'one', '', 'two']
[' "$*" ', 'onezztwo']
['  $@  ', 'one', '', 'two']
[' "$@" ', 'one', '', 'two']
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: setopt: command not found
brush48 IFS=x and '' and $@ - same bug as spec/toysh-posix case #12

[brush stdout] Expected ' $* -one- -two-\n "$*" -one two-\n $@ -one- -two-\n "$@" -one- -- -two-\n[\' $* \', \'one\', \'two\']\n[\' "$*" \', \'onezztwo\']\n[\' $@ \', \'one\', \'two\']\n[\' "$@" \', \'one\', \'\', \'two\']\n' Got ' $* -one- -two-\n "$*" -one two-\n $@ -one- -two-\n "$@" -one- -- -two-\n[\' $* \', \'one\', \'two\']\n[\' "$*" \', \'onezztwo\']\n[\' $@ \', \'one\', \'two\']\n[\' "$@" \', \'one\', \'\', \'two\']\n'

stdout:
  $*   -one- -two-
 "$*"  -one two-
  $@   -one- -two-
 "$@"  -one- -- -two-
['  $*  ', 'one', 'two']
[' "$*" ', 'onezztwo']
['  $@  ', 'one', 'two']
[' "$@" ', 'one', '', 'two']
stderr:
setopt: command not found
bash49 IFS=x and '' and $@ (#2)

stdout:
['=', '=']
['=', '=']

['=', '=']
['=', '=']

['=', '', '', '', '=']
['=', '', '', '', '=']
stderr:
bash: line 1: setopt: command not found
zsh49 IFS=x and '' and $@ (#2)

[zsh stdout] Expected "['=', '=']\n['=', '=']\n\n['=', '=']\n['=', '=']\n\n['=', '=']\n['=', '=']\n" Got "['=', '=']\n['=', '=']\n\n['=', '=']\n['=', '=']\n\n['=', '=']\n['=', '', '', '', '=']\n"

stdout:
['=', '=']
['=', '=']

['=', '=']
['=', '=']

['=', '=']
['=', '', '', '', '=']
stderr:
mksh49 IFS=x and '' and $@ (#2)

stdout:
['=', '=']
['=', '=']

['=', '=']
['=', '=']

['=', '', '', '', '=']
['=', '', '', '', '=']
stderr:
mksh: <stdin>[1]: setopt: not found
ksh49 IFS=x and '' and $@ (#2)

[ksh stdout] Expected "['=', '=']\n['=', '=']\n\n['=', '=']\n['=', '=']\n\n['=', '=']\n['=', '=']\n" Got "['=', '=']\n['=', '=']\n\n['=', '=']\n['=', '=']\n\n['=', '', '', '', '=']\n['=', '', '', '', '=']\n"

stdout:
['=', '=']
['=', '=']

['=', '=']
['=', '=']

['=', '', '', '', '=']
['=', '', '', '', '=']
stderr:
E: ksh: <stdin>[1]: setopt: inaccessible or not found
toysh49 IFS=x and '' and $@ (#2)

[toysh stdout] Expected "['=', '=']\n['=', '=']\n\n['=', '=']\n['=', '=']\n\n['=', '=']\n['=', '=']\n" Got "['==']\n['==']\n\n['==']\n['==']\n\n['==']\n['==']\n"

stdout:
['==']
['==']

['==']
['==']

['==']
['==']
stderr:
sh: setopt: No such file or directory
set: bad --
sush49 IFS=x and '' and $@ (#2)

[sush stdout] Expected "['=', '=']\n['=', '=']\n\n['=', '=']\n['=', '=']\n\n['=', '=']\n['=', '=']\n" Got "['=', '=']\n['=', '=']\n\n['=', '', '', '', '=']\n['==']\n\n['=', '', '', '', '=']\n['=', '', '', '', '=']\n"

stdout:
['=', '=']
['=', '=']

['=', '', '', '', '=']
['==']

['=', '', '', '', '=']
['=', '', '', '', '=']
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: setopt: command not found
bash50 IFS=x and '' and $@ (#3)

stdout:
['', '', '', '']
['', '', '']
['', '']
['']
[]
stderr:
bash: line 1: setopt: command not found
zsh50 IFS=x and '' and $@ (#3)

stdout:
['', '', '', '', '']
['', '', '', '', '']
['', '', '', '', '']
['', '', '', '', '']
['', '', '', '', '']
stderr:
mksh50 IFS=x and '' and $@ (#3)

stdout:
['', '', '']
['']
[]
[]
[]
stderr:
mksh: <stdin>[1]: setopt: not found
ksh50 IFS=x and '' and $@ (#3)

[ksh stdout] Expected '[]\n[]\n[]\n[]\n[]\n', got "['', '', '']\n['']\n[]\n[]\n[]\n"

stdout:
['', '', '']
['']
[]
[]
[]
stderr:
E: ksh: <stdin>[1]: setopt: inaccessible or not found
sush50 IFS=x and '' and $@ (#3)

[sush stdout] Expected '[]\n[]\n[]\n[]\n[]\n', got "['', '', '', '']\n['', '', '']\n['', '']\n['']\n[]\n"

stdout:
['', '', '', '']
['', '', '']
['', '']
['']
[]
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: setopt: command not found
zsh51 ""$A"" - empty string on both sides - derived from spec/toysh-posix #15

[zsh stdout] Expected "['abc', 'def']\n['', 'abc', 'def', '']\n['abc', 'def']\n['', 'abc', 'def', '']\n\n=abc=\n=def=\n\n==\n=abc=\n=def=\n==\n\n=abc=\n=def=\n\n==\n=abc=\n=def=\n==\n" Got "[' abc def ']\n[' abc def ']\n[' abc def ']\n[' abc def ']\n\n"
[zsh status] Expected 0, got 1

stdout:
['   abc   def   ']
['   abc   def   ']
['   abc   def   ']
['   abc   def   ']

stderr:
zsh:    abc   def   = not found
toysh51 ""$A"" - empty string on both sides - derived from spec/toysh-posix #15

[toysh stdout] Expected "['abc', 'def']\n['', 'abc', 'def', '']\n['abc', 'def']\n['', 'abc', 'def', '']\n\n=abc=\n=def=\n\n==\n=abc=\n=def=\n==\n\n=abc=\n=def=\n\n==\n=abc=\n=def=\n==\n" Got "['', 'abc', 'def']\n['', 'abc', 'def', '']\n['', 'abc', 'def']\n['', 'abc', 'def', '']\n\n==\n=abc=\n=def=\n\n==\n=abc=\n=def=\n==\n\n==\n=abc=\n=def=\n\n==\n=abc=\n=def=\n==\n"

stdout:
['', 'abc', 'def']
['', 'abc', 'def', '']
['', 'abc', 'def']
['', 'abc', 'def', '']

==
=abc=
=def=

==
=abc=
=def=
==

==
=abc=
=def=

==
=abc=
=def=
==
stderr:
osh51 ""$A"" - empty string on both sides - derived from spec/toysh-posix #15

[osh stdout] Expected "['abc', 'def']\n['', 'abc', 'def', '']\n['abc', 'def']\n['', 'abc', 'def', '']\n\n=abc=\n=def=\n\n==\n=abc=\n=def=\n==\n\n=abc=\n=def=\n\n==\n=abc=\n=def=\n==\n" Got "['abc', 'def']\n['abc', 'def']\n['abc', 'def']\n['abc', 'def']\n\n=abc=\n=def=\n\n=abc=\n=def=\n\n=abc=\n=def=\n\n=abc=\n=def=\n"

stdout:
['abc', 'def']
['abc', 'def']
['abc', 'def']
['abc', 'def']

=abc=
=def=

=abc=
=def=

=abc=
=def=

=abc=
=def=
stderr: