1name: IFS-space-1
2description:
3	Simple test, default IFS
4stdin:
5	showargs() { for i; do echo -n " <$i>"; done; echo; }
6	set -- A B C
7	showargs 1 $*
8	showargs 2 "$*"
9	showargs 3 $@
10	showargs 4 "$@"
11expected-stdout:
12	 <1> <A> <B> <C>
13	 <2> <A B C>
14	 <3> <A> <B> <C>
15	 <4> <A> <B> <C>
16---
17
18name: IFS-colon-1
19description:
20	Simple test, IFS=:
21stdin:
22	showargs() { for i; do echo -n " <$i>"; done; echo; }
23	IFS=:
24	set -- A B C
25	showargs 1 $*
26	showargs 2 "$*"
27	showargs 3 $@
28	showargs 4 "$@"
29expected-stdout:
30	 <1> <A> <B> <C>
31	 <2> <A:B:C>
32	 <3> <A> <B> <C>
33	 <4> <A> <B> <C>
34---
35
36name: IFS-null-1
37description:
38	Simple test, IFS=""
39stdin:
40	showargs() { for i; do echo -n " <$i>"; done; echo; }
41	IFS=""
42	set -- A B C
43	showargs 1 $*
44	showargs 2 "$*"
45	showargs 3 $@
46	showargs 4 "$@"
47expected-stdout:
48	 <1> <A B C>
49	 <2> <ABC>
50	 <3> <A B C>
51	 <4> <A B C>
52---
53
54name: IFS-space-colon-1
55description:
56	Simple test, IFS=<white-space>:
57stdin:
58	showargs() { for i; do echo -n " <$i>"; done; echo; }
59	IFS="IFS:"
60	set --
61	showargs 1 $*
62	showargs 2 "$*"
63	showargs 3 $@
64	showargs 4 "$@"
65	showargs 5 : "$@"
66expected-stdout:
67	 <1>
68	 <2> <>
69	 <3>
70	 <4>
71	 <5> <:>
72---
73
74name: IFS-space-colon-2
75description:
76	Simple test, IFS=<white-space>:
77	At&t ksh fails this, POSIX says the test is correct.
78stdin:
79	showargs() { for i; do echo -n " <$i>"; done; echo; }
80	IFS="IFS:"
81	set --
82	showargs :"$@"
83expected-stdout:
84	 <:>
85---
86
87name: IFS-space-colon-3
88description:
89	Simple test, IFS=<white-space>:
90	pdksh fails both of these tests
91stdin:
92	showargs() { for i; do echo -n " <$i>"; done; echo; }
93	IFS="IFS:"
94	x=
95	set --
96	showargs "$x$@"
97	showargs "$@$x"
98expected-fail: yes
99expected-stdout:
100	 <>
101	 <>
102---
103
104name: IFS-space-colon-4
105description:
106	Simple test, IFS=<white-space>:
107stdin:
108	showargs() { for i; do echo -n " <$i>"; done; echo; }
109	IFS="IFS:"
110	set --
111	showargs "$@$@"
112expected-stdout:
113
114---
115
116name: IFS-space-colon-5
117description:
118	Simple test, IFS=<white-space>:
119	Don't know what POSIX thinks of this.  at&t ksh does not do this.
120stdin:
121	showargs() { for i; do echo -n " <$i>"; done; echo; }
122	IFS="IFS:"
123	set --
124	showargs "${@:-}"
125expected-stdout:
126	 <>
127---
128
129name: IFS-subst-1
130description:
131	Simple test, IFS=<white-space>:
132stdin:
133	showargs() { for i; do echo -n " <$i>"; done; echo; }
134	IFS="$IFS:"
135	x=":b: :"
136	echo -n '1:'; for i in $x ; do echo -n " [$i]" ; done ; echo
137	echo -n '2:'; for i in :b:: ; do echo -n " [$i]" ; done ; echo
138	showargs 3 $x
139	showargs 4 :b::
140	x="a:b:"
141	echo -n '5:'; for i in $x ; do echo -n " [$i]" ; done ; echo
142	showargs 6 $x
143	x="a::c"
144	echo -n '7:'; for i in $x ; do echo -n " [$i]" ; done ; echo
145	showargs 8 $x
146	echo -n '9:'; for i in ${FOO-`echo -n h:i`th:ere} ; do echo -n " [$i]" ; done ; echo
147	showargs 10 ${FOO-`echo -n h:i`th:ere}
148	showargs 11 "${FOO-`echo -n h:i`th:ere}"
149expected-stdout:
150	1: [] [b] [] []
151	2: [:b::]
152	 <3> <> <b> <> <>
153	 <4> <:b::>
154	5: [a] [b] []
155	 <6> <a> <b> <>
156	7: [a] [] [c]
157	 <8> <a> <> <c>
158	9: [h] [ith] [ere]
159	 <10> <h> <ith> <ere>
160	 <11> <h:ith:ere>
161---
162
163