Results for word-split.test.sh

statusbashdashmkshashyashosh
pass 474346434242
N-I 032340
BUG 231330
FAIL 000007
total494949494949
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 FAIL IFS='\'
details
27pass pass pass pass pass FAIL IFS='\ '
details
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 FAIL Bug #628 split on : with : in literal word
details
42pass pass pass pass pass pass Bug #698, similar crash
43pass pass pass pass pass FAIL Bug #1664, \\ with noglob
details
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
48pass BUG pass BUG N-I FAIL IFS=x and '' and $@ - same bug as spec/toysh-posix case #12
detailsdetailsdetailsdetails
263 passed, 0 OK, 12 not implemented, 12 BUG, 7 failed, 0 timeouts, 0 cases skipped
7 failed under osh

Details on runs that didn't PASS

yash11 Word elision with non-whitespace IFS

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

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

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

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

stdout:
['a', '', '', '', 'b', '', '', '', '', '', '', '', 'c', 'd', '', '', '']
stderr:
dash34 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
ash34 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
yash34 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'
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:
  s"$*"
  ^
[ stdin ]:10: 'sx:y z' not found (OILS-ERR-100)
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: 
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:
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
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: '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:
yash47 4 x 3 table - with for loop

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

stdout:
stderr: 
osh48 IFS=x and '' and $@ - same bug as spec/toysh-posix case #12

[osh 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: