wscript: Fix tests on wow64.
[wine] / programs / cmd / tests / test_builtins.cmd.exp
1
2 @pwd@>echo Tests for cmd's builtin commands@space@
3 Tests for cmd's builtin commands
4
5 @pwd@>echo ------------ Testing 'echo' [ON] --------------@space@
6 ------------ Testing 'echo' [ON] --------------
7
8 @pwd@>echo word@space@
9 word
10
11 @pwd@>echo 'singlequotedword'@space@
12 'singlequotedword'
13
14 @pwd@>echo "doublequotedword"@space@
15 "doublequotedword"
16 at-echoed-word
17
18 @pwd@>echo "/?"@space@
19 "/?"
20
21 @pwd@>echo.
22
23
24 @pwd@>echo .@space@
25 .
26
27 @pwd@>echo.word
28 word
29
30 @pwd@>echo .word@space@
31 .word
32
33 @pwd@>echo:
34
35
36 @pwd@>echo :@space@
37 :
38
39 @pwd@>echo:word
40 word
41
42 @pwd@>echo :word@space@
43 :word
44
45 @pwd@>echo word@space@@space@
46 word@space@
47
48 @pwd@>echo word@space@@space@@space@
49 word@space@@space@
50 ------------ Testing 'echo' [OFF] --------------
51 word
52 'singlequotedword'
53 "doublequotedword"
54 at-echoed-word
55 "/?"
56
57 .
58 word
59 .word
60
61 :
62 word
63 :word
64 word@space@
65 word@space@@space@
66 ------------ Testing redirection operators --------------
67 ...stdout redirection
68 foo
69 foo@space@
70 @todo_wine@foo1
71 @todo_wine@foo11
72 @todo_wine@foo12
73 ...stdout appending
74 foo
75 foo@space@
76 foob@space@
77 foob@space@
78 fooc@space@
79 foob@space@
80 fooc@space@
81 @todo_wine@food1
82 @todo_wine@foob@space@
83 @todo_wine@fooc@space@
84 @todo_wine@food1
85 @todo_wine@food2
86 @todo_wine@food21
87 @todo_wine@------------ Testing ^ escape character --------------
88 @todo_wine@hello, world
89 @todo_wine@hello, world
90 @todo_wine@hell^o, world
91 @todo_wine@hell^o, world
92 baz
93 @todo_wine@baz
94 @todo_wine@foo | echo bar
95 @todo_wine@foo & echo bar
96 @todo_wine@bak &
97 @todo_wine@baz@space@
98 @todo_wine@0@or_broken@1
99 @todo_wine@foo > foo
100 @todo_wine@<
101 @todo_wine@ffoof
102 @todo_wine@FOO=bar | baz
103 @todo_wine@0
104 @todo_wine@FOO=bar ^| baz
105 @todo_wine@bar | baz
106 @todo_wine@0
107 ------------ Testing 'set' --------------
108 1
109 @todo_wine@0
110 FOOBAR not defined
111 @todo_wine@  baz
112 FOOBAR =  baz
113 @todo_wine@0
114 @todo_wine@  baz2
115 @todo_wine@0
116  bar
117 @todo_wine@FOOBAR= bar
118 @todo_wine@FOOBAR =  baz2
119 FOOBAR =  baz2
120 FOOBAR not defined
121 1
122 bar
123 foobar
124 FOO not defined
125 BAZ=bazbaz
126 bazbaz
127 set "FOO=bar" should not include the quotes in the variable value
128 bar
129 ------------ Testing variable expansion --------------
130 ~dp0 should be directory containing batch file
131 @pwd@\
132 @pwd@\
133 CD value @pwd@@or_broken@CD value@space@
134 %
135 P
136 P
137 S
138 P
139 PS
140 ERRORLEVEL
141 0
142 00
143 0ERRORLEVEL
144 0
145 0%
146 P0
147 0S
148 P0S
149 ------------ Testing variable delayed expansion --------------
150 ...default mode (load-time expansion)
151 foo
152 !FOO!
153 foo
154 foo
155 ...runtime (delayed) expansion mode
156 foo
157 @todo_wine@foo@or_broken@!FOO!
158 foo
159 @todo_wine@bar@or_broken@foo
160 0
161 0@or_broken@1
162 foo
163 !FOO!
164 ...using /V cmd flag
165 foo
166 @todo_wine@foo@or_broken@!FOO!
167 foo
168 !FOO!
169 ------------ Testing conditional execution --------------
170 @todo_wine@...unconditional &
171 foo1
172 bar2@space@
173 foo2
174 @todo_wine@foobar deleted
175 @todo_wine@...on success conditional &&
176 @todo_wine@foo3 not created
177 bar4@space@
178 foo4
179 @todo_wine@...on failure conditional ||
180 @todo_wine@foo5
181 @todo_wine@foo6@space@
182 ------------ Testing type ------------
183
184 @pwd@>type foobaz@space@
185 bar
186
187 @pwd@>echo ***@space@
188 ***
189 bar
190 ***
191 ------------ Testing NUL ------------
192 bar
193 bar
194 bar
195 NUL
196 @todo_wine@foo created
197 ------------ Testing if/else --------------
198 if/else should work with blocks
199 if seems to work
200 else seems to work
201 @todo_wine@if seems not to detect /c as parameter
202 Testing case sensitivity with and without /i option
203 if seems to default to case sensitivity
204 if /i seems to work
205 if /I seems to work
206 -----------Testing for -----------
207 ...plain FOR
208 A
209 B
210 C
211 %I
212 %I
213 %I
214 %j
215 %j
216 %j
217 A
218 B
219 C
220 1
221 4
222 1
223 A
224 B
225 C
226 ...imbricated FORs
227 @todo_wine@X Y
228 @todo_wine@X Y
229 @todo_wine@A C
230 @todo_wine@A D
231 @todo_wine@B C
232 @todo_wine@B D
233 @todo_wine@A C
234 @todo_wine@A D
235 @todo_wine@B C
236 @todo_wine@B D
237 ...basic wildcards
238 bazbaz
239 ...for /d
240 baz
241 foo
242 bar
243 ...for /L
244 1
245 3
246 5
247 1
248 3
249 5
250 0
251 2
252 1
253 -1
254 @todo_wine@ErrorLevel 0
255 @todo_wine@ErrorLevel 0
256 ...for /a
257 ......individual operations
258 0
259 @todo_wine@3
260 @todo_wine@-1
261 @todo_wine@3
262 @todo_wine@6
263 @todo_wine@10
264 @todo_wine@4
265 @todo_wine@4
266 @todo_wine@-4
267 0
268 @todo_wine@2
269 @todo_wine@2
270 @todo_wine@-2
271 @todo_wine@1
272 @todo_wine@4
273 0@or_broken@1073741824
274 0@or_broken@-1073741824
275 @todo_wine@-4
276 @todo_wine@9
277 @todo_wine@2
278 0
279 @todo_wine@-1
280 @todo_wine@-3
281 0
282 @todo_wine@1
283 @todo_wine@1
284 @todo_wine@4
285 @todo_wine@1
286 @todo_wine@5
287 @todo_wine@5
288 @todo_wine@7
289 @todo_wine@5
290 @todo_wine@5
291 @todo_wine@5
292 @todo_wine@4
293 @todo_wine@6
294 @todo_wine@1
295 ......precedence and grouping
296 @todo_wine@4
297 @todo_wine@10
298 @todo_wine@18@or_broken@10
299 @todo_wine@2@or_broken@0
300 @todo_wine@2@or_broken@0
301 0@or_broken@4
302 @todo_wine@4
303 @todo_wine@3@or_broken@4
304 ......octal and hexadecimal
305 @todo_wine@3@or_broken@4
306 @todo_wine@18
307 @todo_wine@18
308 @todo_wine@15
309 ......variables
310 @todo_wine@3
311 @todo_wine@3@or_broken@foo not defined
312 @todo_wine@3@or_broken@0
313 @todo_wine@3@or_broken@0
314 @todo_wine@3@or_broken@0
315 @todo_wine@9@or_broken@0
316 0
317 @todo_wine@4@or_broken@0
318 @todo_wine@-7@or_broken@0
319 @todo_wine@-1@or_broken@0
320 @todo_wine@5@or_broken@0
321 @todo_wine@4@or_broken@0
322 @todo_wine@1@or_broken@0
323 0
324 @todo_wine@5@or_broken@0
325
326 -----------Testing del /a-----------
327 not-r.test not found after delete, good
328 r.test found before delete, good
329 r.test not found after delete, good
330 ------------ Testing del /q --------------
331 del /q * succeeded on file1
332 del /q * succeeded on file2.dat
333 ------------ Testing del /s --------------
334 ----------- Testing mkdir -----------
335 0
336 0
337 1
338 1
339 0
340 0
341 0
342 0
343 0
344 1
345 0
346 0
347 0
348 dir created
349 0
350 mkdir ? gives errorlevel 1
351 mkdir ?\foo gives errorlevel 1
352 mkdir foo\? gives errorlevel 1
353 ok, foo created
354 mkdir foo\bar\? gives errorlevel 1
355 ok, foo\bar created
356 foo created
357 bar created
358 foobar created
359 bar\baz created
360 mkdir foo\* errorlevel 1
361 ok, foo created
362 ----------- Testing rmdir -----------
363 0
364 dir removed
365 0
366 dir removed
367 0
368 0
369 file not removed
370 0
371 non-empty dir not removed
372 0
373 non-empty dir not removed
374 recursive rmdir succeeded
375 recursive rmdir succeeded
376 foo removed
377 bar removed
378 foobar removed
379 bar\baz removed
380 ------------ Testing CALL --------------
381 foo@space@
382 @todo_wine@foo 8
383 foo@space@@space@
384 foo bar@space@
385 @todo_wine@foo ""@space@
386 @todo_wine@"" bar@space@
387 foo ''@space@
388 '' bar@space@
389 bar :testRoutine
390 foo@space@
391 foo bar
392 @todo_wine@foo ""
393 @todo_wine@"" bar
394 foo ''
395 '' bar
396 @todo_wine@0
397 @todo_wine@foo created
398 @todo_wine@Should expand foobaz
399 @todo_wine@batfile
400 @todo_wine@robinfile
401 @todo_wine@1
402 @todo_wine@1
403 non-builtin dir
404 ------------ Testing setlocal/endlocal ------------
405 ...enable/disable extensions
406 @todo_wine@ErrLev:@space@
407 ErrLev: 0
408 ErrLev: 0
409 @todo_wine@ErrLev:@space@@or_broken@ErrLev: 0
410 ErrLev: 0
411 ...setlocal with corresponding endlocal
412 globalval
413 localval
414 globalval
415 globalval
416 ...setlocal with no corresponding endlocal
417 globalval
418 localval
419 @todo_wine@globalval
420 -----------Testing Errorlevel-----------
421 9009
422 1
423 errorlevel just right, good
424 abc0def@or_broken@abc1def
425 errorlevel zero, good@or_broken@errorlevel nonzero, bad
426 7 should be 7
427 7 should still be 7
428 -----------Testing GOTO-----------
429 goto with no leading space worked
430 goto with a leading space worked
431 goto with a leading tab worked
432 goto with a following space worked
433 -----------Done, jumping to EOF-----------