Results for word-split.test.sh

statusdashbashmkshosh
pass 36404033
ok 1000
N-I 3000
FAIL 0007
total40404040
casedashbashmkshoshdescription
0pass pass pass pass IFS is scoped
1pass pass pass pass Tilde sub is not split, but var sub is
2pass pass pass pass Word splitting
3pass pass pass pass Word splitting 2
4pass pass pass pass $*
5pass pass pass pass "$*"
6pass pass pass pass $@
7pass pass pass pass "$@"
8pass pass pass pass empty argv
9pass pass pass pass Word elision with space
10pass pass pass pass Word elision with non-whitespace IFS
11pass pass pass pass Leading/trailing word elision with non-whitespace IFS
12pass pass pass pass Leading ' ' vs leading ' _ '
13pass pass pass pass Multiple non-whitespace IFS chars.
14pass pass pass pass IFS with whitespace and non-whitepace.
15pass pass pass pass empty $@ and $* is elided
16pass pass pass pass unquoted empty arg is elided
17pass pass pass pass unquoted whitespace arg is elided
18pass pass pass pass empty literals are not elided
19pass pass pass pass no splitting when IFS is empty
20pass pass pass pass default value can yield multiple words
21pass pass pass pass default value can yield multiple words with part joining
22pass pass pass pass default value with unquoted IFS char
23N-I pass pass pass IFS empty doesn't do splitting
details
24N-I pass pass pass IFS unset behaves like $' \t\n'
details
25pass pass pass FAIL IFS='\'
details
26pass pass pass FAIL IFS='\ '
details
27pass pass pass pass IFS characters are glob metacharacters
28pass pass pass pass Trailing space
29pass pass pass pass Empty IFS (regression for bug)
30pass pass pass pass Unset IFS (regression for bug)
31pass pass pass pass IFS=o (regression for bug)
32pass pass pass pass IFS and joining arrays
33ok pass pass FAIL IFS and joining arrays by assignments
detailsdetails
34pass pass pass pass TODO
35pass pass pass FAIL IFS='' with $@ and $*
details
36pass pass pass FAIL IFS='' with $@ and $* and printf
details
37N-I pass pass FAIL IFS='' with ${a[@]} and ${a[*]}
detailsdetails
38pass pass pass FAIL Bug #628 split on : with : in literal word
details
39pass pass pass pass Bug #698, similar crash
149 passed, 1 OK, 3 not implemented, 0 BUG, 7 failed, 0 timeouts, 0 cases skipped
7 failed under osh

Details on runs that didn't PASS

dash23 IFS empty doesn't do splitting

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

stdout:
['-e', 'a', 'b', 'c']
stderr:
osh25 IFS='\'

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

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

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

stdout:
['a', '', '', '', 'b', '', '', '', '', '', '', '', 'c', 'd', '', '', '']
stderr:
dash33 IFS and joining arrays by assignments

stdout:
['x:y z']
['x:y z']
['x:y z']
['x:y z']
stderr:
dash: 7: sx:y z: not found
osh33 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 ]:7: 'sx:y z' not found
osh35 IFS='' with $@ and $*

[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:
osh36 IFS='' with $@ and $* and printf

[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:
dash37 IFS='' with ${a[@]} and ${a[*]}

stdout:
stderr: 
dash: 1: Syntax error: "(" unexpected
osh37 IFS='' with ${a[@]} and ${a[*]}

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