cmd/tests: Ensure ATTRIB tests pass on more Windows platforms.
[wine/multimedia.git] / programs / cmd / tests / test_builtins.cmd.exp
bloba9e550b76cdf5888733b96e9a5e02ba9029ee8f6
2 @pwd@>echo Tests for cmd's builtin commands@space@
3 Tests for cmd's builtin commands
5 @pwd@>echo ------------ Testing 'echo' [ON] --------------@space@
6 ------------ Testing 'echo' [ON] --------------
8 @pwd@>echo word@space@
9 word
11 @pwd@>echo 'singlequotedword'@space@
12 'singlequotedword'
14 @pwd@>echo "doublequotedword"@space@
15 "doublequotedword"
16 at-echoed-word
18 @pwd@>echo "/?"@space@
19 "/?"
21 @pwd@>echo.
24 @pwd@>echo .@space@
27 @pwd@>echo.word
28 word
30 @pwd@>echo .word@space@
31 .word
33 @pwd@>echo:
36 @pwd@>echo :@space@
39 @pwd@>echo:word
40 word
42 @pwd@>echo :word@space@
43 :word
45 @pwd@>echo off now@space@
46 off now
48 @pwd@>echo word@space@@space@
49 word@space@
51 @pwd@>echo word@space@@space@@space@
52 word@space@@space@
54 @todo_wine@@pwd@>echo word@space@
55 word
57 @pwd@>echo@tab@word@space@
58 word
60 @pwd@>echo@tab@word@space@@tab@@space@
61 word@space@@tab@
63 @pwd@>echo@tab@word@tab@@space@@space@
64 word@tab@@space@
66 @todo_wine@@pwd@>echo word@space@
67 word
69 @pwd@>echo@space@@tab@word@space@
70 @tab@word
72 @pwd@>echo@space@@space@@tab@word@space@
73 @space@@tab@word
75 @pwd@>echo@tab@@tab@word@space@
76 @tab@word
77 ------------ Testing 'echo' [OFF] --------------
78 word
79 'singlequotedword'
80 "doublequotedword"
81 at-echoed-word
82 "/?"
85 word
86 .word
89 word
90 :word
91 on again
92 word@space@
93 word@space@@space@
94 word
95 word
96 word@space@@tab@
97 word@tab@@space@
98 word
99 @tab@word
100 @space@@tab@word
101 @tab@word
102 ------------ Testing rem --------------
104 @pwd@>rem Hello@space@
106 @pwd@>rem Hello@space@
108 @pwd@>rem Hello || foo@space@
110 @pwd@>rem echo lol@space@
112 @pwd@>rem echo foo & echo bar@space@
114 @pwd@>rem @tab@ Hello@space@
116 @pwd@>rem@tab@ Hello@space@
118 @pwd@>rem@tab@echo foo & echo bar@space@
119 ------------ Testing redirection operators --------------
120 ...stdout redirection
122 foo@space@
123 @todo_wine@foo1
124 @todo_wine@foo11
125 @todo_wine@foo12
126 ...stdout appending
128 foo@space@
129 foob@space@
130 foob@space@
131 fooc@space@
132 foob@space@
133 fooc@space@
134 @todo_wine@food1
135 @todo_wine@foob@space@
136 @todo_wine@fooc@space@
137 @todo_wine@food1
138 @todo_wine@food2
139 @todo_wine@food21
140 @todo_wine@------------ Testing ^ escape character --------------
141 @todo_wine@hello, world
142 @todo_wine@hello, world
143 @todo_wine@hell^o, world
144 @todo_wine@hell^o, world
146 @todo_wine@baz
147 @todo_wine@foo | echo bar
148 @todo_wine@foo & echo bar
149 @todo_wine@bak &
150 @todo_wine@baz@space@
151 @todo_wine@0@or_broken@1
152 @todo_wine@foo > foo
153 @todo_wine@<
154 @todo_wine@ffoof
155 @todo_wine@FOO=bar | baz
156 @todo_wine@0
157 @todo_wine@FOO=bar ^| baz
158 @todo_wine@bar | baz
159 @todo_wine@0
160 ------------ Testing 'set' --------------
162 @todo_wine@0
163 FOOBAR not defined
164 @todo_wine@ baz
165 FOOBAR = baz
166 @todo_wine@0
167 @todo_wine@ baz2
168 @todo_wine@0
170 @todo_wine@FOOBAR= bar
171 @todo_wine@FOOBAR = baz2
172 FOOBAR = baz2
173 FOOBAR not defined
176 foobar
177 FOO not defined
178 BAZ=bazbaz
179 bazbaz
180 set "FOO=bar" should not include the quotes in the variable value
184 'foo@space@'
185 'foo@tab@'
186 ------------ Testing variable expansion --------------
187 ~dp0 should be directory containing batch file
188 @pwd@\
189 @pwd@\
190 CD value @pwd@@or_broken@CD value@space@
197 ERRORLEVEL
200 0ERRORLEVEL
206 ------------ Testing variable substrings --------------
210 @todo_wine@'ty'@or_broken@''
211 't'@or_broken@''
212 ert@or_broken@qwerty
213 e@or_broken@qwerty
214 ''@or_broken@'qwerty'
215 r@or_broken@qwerty
216 ------------ Testing variable delayed expansion --------------
217 ...default mode (load-time expansion)
219 !FOO!
222 ...runtime (delayed) expansion mode
224 @todo_wine@foo@or_broken@!FOO!
226 @todo_wine@bar@or_broken@foo
228 0@or_broken@1
230 !FOO!
231 ...using /V cmd flag
233 @todo_wine@foo@or_broken@!FOO!
235 !FOO!
236 ------------ Testing conditional execution --------------
237 @todo_wine@...unconditional &
238 foo1
239 bar2@space@
240 foo2
241 @todo_wine@foobar deleted
242 @todo_wine@...on success conditional &&
243 @todo_wine@foo3 not created
244 bar4@space@
245 foo4
246 @todo_wine@...on failure conditional ||
247 @todo_wine@foo5
248 @todo_wine@foo6@space@
249 ------------ Testing cd ------------
250 singleFile
251 Current dir: @pwd@\foobar@or_broken@Current dir:@space@
252 @pwd@\foobar
253 @pwd@
254 @pwd@\foobar
255 @pwd@
256 @pwd@\foobar
257 @pwd@
258 @todo_wine@@pwd@
259 @todo_wine@@pwd@
260 @pwd@\foobar\bar bak
261 @pwd@\foobar\bar bak
262 @pwd@\foobar\bar bak
263 @pwd@
264 @pwd@\foobar
265 ------------ Testing type ------------
267 @pwd@>type foobaz@space@
270 @pwd@>echo ***@space@
274 ------------ Testing NUL ------------
279 @todo_wine@foo created
280 ------------ Testing if/else --------------
281 if/else should work with blocks
282 if seems to work
283 else seems to work
284 @todo_wine@if seems not to detect /c as parameter
285 Testing case sensitivity with and without /i option
286 if seems to default to case sensitivity
287 if /i seems to work
288 if /I seems to work
289 doom
290 doom
291 doom
293 quake
294 quake
295 quake
296 -----------Testing for -----------
297 ...plain FOR
325 ...imbricated FORs
326 @todo_wine@X Y
327 @todo_wine@X Y
328 @todo_wine@A C
329 @todo_wine@A D
330 @todo_wine@B C
331 @todo_wine@B D
332 @todo_wine@A C
333 @todo_wine@A D
334 @todo_wine@B C
335 @todo_wine@B D
336 ...basic wildcards
337 bazbaz
338 ...for /d
342 ...for /L
353 @todo_wine@ErrorLevel 0
354 @todo_wine@ErrorLevel 0
355 ...for /a
356 ......individual operations
358 @todo_wine@3
359 @todo_wine@-1
360 @todo_wine@3
361 @todo_wine@6
362 @todo_wine@10
363 @todo_wine@4
364 @todo_wine@4
365 @todo_wine@-4
367 @todo_wine@2
368 @todo_wine@2
369 @todo_wine@-2
370 @todo_wine@1
371 @todo_wine@4
372 0@or_broken@1073741824
373 0@or_broken@-1073741824
374 @todo_wine@-4
375 @todo_wine@9
376 @todo_wine@2
378 @todo_wine@-1
379 @todo_wine@-3
381 @todo_wine@1
382 @todo_wine@1
383 @todo_wine@4
384 @todo_wine@1
385 @todo_wine@5
386 @todo_wine@5
387 @todo_wine@7
388 @todo_wine@5
389 @todo_wine@5
390 @todo_wine@5
391 @todo_wine@4
392 @todo_wine@6
393 @todo_wine@1
394 ......precedence and grouping
395 @todo_wine@4
396 @todo_wine@10
397 @todo_wine@18@or_broken@10
398 @todo_wine@2@or_broken@0
399 @todo_wine@2@or_broken@0
400 0@or_broken@4
401 @todo_wine@4
402 @todo_wine@3@or_broken@4
403 ......octal and hexadecimal
404 @todo_wine@3@or_broken@4
405 @todo_wine@18
406 @todo_wine@18
407 @todo_wine@15
408 ......variables
409 @todo_wine@3
410 @todo_wine@3@or_broken@foo not defined
411 @todo_wine@3@or_broken@0
412 @todo_wine@3@or_broken@0
413 @todo_wine@3@or_broken@0
414 @todo_wine@9@or_broken@0
416 @todo_wine@4@or_broken@0
417 @todo_wine@-7@or_broken@0
418 @todo_wine@-1@or_broken@0
419 @todo_wine@5@or_broken@0
420 @todo_wine@4@or_broken@0
421 @todo_wine@1@or_broken@0
423 @todo_wine@5@or_broken@0
425 -----------Testing del /a-----------
426 not-r.test not found after delete, good
427 r.test found before delete, good
428 r.test not found after delete, good
429 ------------ Testing del /q --------------
430 del /q * succeeded on file1
431 del /q * succeeded on file2.dat
432 ------------ Testing del /s --------------
433 ----------- Testing mkdir -----------
447 dir created
449 mkdir ? gives errorlevel 1
450 mkdir ?\foo gives errorlevel 1
451 mkdir foo\? gives errorlevel 1
452 ok, foo created
453 mkdir foo\bar\? gives errorlevel 1
454 ok, foo\bar created
455 foo created
456 bar created
457 foobar created
458 bar\baz created
459 mkdir foo\* errorlevel 1
460 ok, foo created
461 ----------- Testing rmdir -----------
463 dir removed
465 dir removed
468 file not removed
470 non-empty dir not removed
472 non-empty dir not removed
473 recursive rmdir succeeded
474 recursive rmdir succeeded
475 foo removed
476 bar removed
477 foobar removed
478 bar\baz removed
479 ------------ Testing attrib --------------
480 @todo_wine@A @pwd@\foobar\foo@or_broken@A @pwd@\foobar\foo@or_broken@A I @pwd@\foobar\foo
481 ... read-only attribute
482 @todo_wine@A R @pwd@\foobar\foo@or_broken@A R @pwd@\foobar\foo@or_broken@A R I @pwd@\foobar\foo
484 foo original contents
485 Read-only file not deleted
486 Read-only file forcibly deleted
487 ... recursive behaviour
488 @todo_wine@A @pwd@\foobar\baz\level2@or_broken@A @pwd@\foobar\baz\level2@or_broken@A I @pwd@\foobar\baz\level2
489 @todo_wine@A R @pwd@\foobar\level1@or_broken@A R @pwd@\foobar\level1@or_broken@A R I @pwd@\foobar\level1
490 @todo_wine@A R @pwd@\foobar\baz\level2@or_broken@A R @pwd@\foobar\baz\level2@or_broken@A R I @pwd@\foobar\baz\level2
491 @todo_wine@A @pwd@\foobar\bar@or_broken@A @pwd@\foobar\bar@or_broken@A I @pwd@\foobar\bar
492 ... folders processing
493 @todo_wine@ @pwd@\foobar@or_broken@ @pwd@\foobar@or_broken@ I @pwd@\foobar
494 @todo_wine@ R @pwd@\foobar\baz@or_broken@ R @pwd@\foobar\baz@or_broken@ @pwd@\foobar\baz@or_broken@ R I @pwd@\foobar\baz
495 @todo_wine@A @pwd@\foobar\baz\toto@or_broken@A @pwd@\foobar\baz\toto@or_broken@A I @pwd@\foobar\baz\toto
496 toto
497 lulu
498 file created in read-only dir
499 ------------ Testing CALL --------------
500 foo@space@
501 @todo_wine@foo 8
502 foo@space@@space@
503 foo bar@space@
504 @todo_wine@foo ""@space@
505 @todo_wine@"" bar@space@
506 foo ''@space@
507 '' bar@space@
508 bar :testRoutine
509 foo@space@
510 foo bar
511 @todo_wine@foo ""
512 @todo_wine@"" bar
513 foo ''
514 '' bar
515 @todo_wine@0
516 @todo_wine@foo created
517 @todo_wine@Should expand foobaz
518 @todo_wine@batfile
519 @todo_wine@robinfile
520 @todo_wine@1
521 @todo_wine@1
522 non-builtin dir
523 ------------ Testing setlocal/endlocal ------------
524 ...enable/disable extensions
525 @todo_wine@ErrLev:@space@
526 ErrLev: 0
527 ErrLev: 0
528 @todo_wine@ErrLev:@space@@or_broken@ErrLev: 0
529 ErrLev: 0
530 ...setlocal with corresponding endlocal
531 globalval
532 localval
533 globalval
534 globalval
535 ...setlocal with no corresponding endlocal
536 globalval
537 localval
538 @todo_wine@globalval
539 -----------Testing Errorlevel-----------
540 9009
542 errorlevel just right, good
543 abc0def@or_broken@abc1def
544 errorlevel zero, good@or_broken@errorlevel nonzero, bad
545 7 should be 7
546 7 should still be 7
547 -----------Testing GOTO-----------
548 goto with no leading space worked
549 goto with a leading space worked
550 goto with a leading tab worked
551 goto with a following space worked
552 -----------Done, jumping to EOF-----------