Results for word-split.test.sh

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

Details on runs that didn't PASS

yash11 Word elision with non-whitespace IFS

stdout:
[]
[' ']
[]
stderr:
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:
yash34 IFS and joining arrays by assignments

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:
dash38 IFS='' with ${a[@]} and ${a[*]} (bug #627)

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

stdout:
stderr: 
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: 
mksh39 IFS='' with ${!prefix@} and ${!prefix*} (bug #627)

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

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

stdout:
stderr: 
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: 
mksh40 IFS='' with ${!a[@]} and ${!a[*]} (bug #627)

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

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

stdout:
stderr: 
dash45 Unicode in IFS

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

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

stdout:
<>
<>
<x>
stderr:
ash: setopt: 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)
yash46 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:
yash: no such command `setopt'
yash47 4 x 3 table - with for loop

stdout:
stderr: 
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
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
yash48 IFS=x and '' and $@ - same bug as spec/toysh-posix case #12

stdout:
stderr: 
bash49 IFS=x and '' and $@ (#2)

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

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

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

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

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

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

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

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

['=', '', '', '', '=']
['=', '', '', '', '=']
stderr:
yash: no such command `setopt'
bash50 IFS=x and '' and $@ (#3)

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

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

stdout:
['', '', '', '', '']
['', '', '', '', '']
['', '', '', '', '']
['', '', '', '', '']
['', '', '', '', '']
stderr:
yash: no such command `setopt'
dash52 Regression: "${!v*}"x should not be split

stdout:
stderr: 
mksh52 Regression: "${!v*}"x should not be split

stdout:
stderr: 
ash52 Regression: "${!v*}"x should not be split

stdout:
stderr: 
yash52 Regression: "${!v*}"x should not be split

stdout:
stderr: