[CMD_WINETEST] Sync with Wine Staging 1.9.4. CORE-10912
[reactos.git] / rostests / winetests / cmd / 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/
46
47
48 @pwd@>echo /@space@
49 /
50
51 @pwd@>echo/word
52 word
53
54 @pwd@>echo /word@space@
55 /word
56
57 @pwd@>echo off now@space@
58 off now
59
60 @pwd@>echo word@space@@space@
61 word@space@
62
63 @pwd@>echo word@space@@space@@space@
64 word@space@@space@
65
66 @pwd@>echo word@space@
67 word
68
69 @pwd@>echo@tab@word@space@
70 word
71
72 @pwd@>echo@tab@word@space@@tab@@space@
73 word@space@@tab@
74
75 @pwd@>echo@tab@word@tab@@space@@space@
76 word@tab@@space@
77
78 @pwd@>echo word@space@
79 word
80
81 @pwd@>echo@space@@tab@word@space@
82 @tab@word
83
84 @pwd@>echo@space@@space@@tab@word@space@
85 @space@@tab@word
86
87 @pwd@>echo@tab@@tab@word@space@
88 @tab@word
89
90 @pwd@>echo @tab@ on @space@@space@
91 noecho1
92 noecho2
93 echo3
94 ------------ Testing 'echo' [OFF] ------------
95 word
96 'singlequotedword'
97 "doublequotedword"
98 at-echoed-word
99 "/?"
100
101 .
102 word
103 .word
104
105 :
106 word
107 :word
108
109 /
110 word
111 /word
112 on again
113 word@space@
114 word@space@@space@
115 word
116 word
117 word@space@@tab@
118 word@tab@@space@
119 word
120 @tab@word
121 @space@@tab@word
122 @tab@word
123 ------------ Testing mixed echo modes ------------
124 @echo on
125 if 1==1 echo foo
126 if 1==1 @echo bar
127 @echo off
128 if 1==1 echo foo2
129 if 1==1 @echo bar2
130
131 @todo_wine@@pwd@>if 1 == 1 echo foo@space@
132 foo
133
134 @todo_wine@@pwd@>if 1 == 1@space@
135 bar
136 foo2
137 bar2
138 ------------ Testing parameterization ------------
139 'a', 'b', 'c'
140 '"a b c"', '', ''
141 '"a b"\c', '', ''
142 'a', '~`+', '.{}!+b'
143 'a', 'b', ''
144 '"a;b"', '', ''
145 'a', 'b', ''
146 'a[b]{c}(d)e', '', ''
147 'a', '', ''
148 second line
149 'a', 'b', 'c'
150 'a', 'b', 'c'
151 'a', 'b', ''
152 ------------ Testing rem ------------
153
154 @pwd@>rem Hello@space@
155
156 @pwd@>rem Hello@space@
157
158 @pwd@>rem Hello || foo@space@
159
160 @pwd@>rem echo lol@space@
161
162 @pwd@>rem echo foo & echo bar@space@
163
164 @pwd@>rem @tab@ Hello@space@
165
166 @pwd@>rem@tab@ Hello@space@
167
168 @pwd@>rem@tab@echo foo & echo bar@space@
169 ------------ Testing redirection operators ------------
170 --- stdout redirection
171 foo
172 foo@space@
173 foo@tab@
174 foo@space@
175 foo@tab@
176 foo7@space@@or_broken@foo@tab@
177 foo9@space@@or_broken@foo@tab@
178 foo1
179 foo11
180 foo12
181 foo13
182 foo14
183 foo15
184 --- stdout appending
185 foo
186 foo@space@
187 foob@space@
188 foob@space@
189 fooc@space@
190 foob@space@
191 fooc@space@
192 food1
193 foob@space@
194 fooc@space@
195 food1
196 food2
197 food21
198 @todo_wine@foo7@space@@space@@or_broken@not supported@space@
199 @todo_wine@foo@or_broken@not supported
200 --- redirections within IF statements
201 @todo_wine@foo1
202 -----
203 foo2
204 foo3
205 file does not exist, ok
206 foo4
207 baz5
208 baz6@space@
209 baz7
210 baz8
211 baz
212 foo@space@
213 baz
214 foo
215 A
216 B
217 C
218 ------------ Testing circumflex escape character ------------
219 hello, world
220 hello, world
221 hell^o, world
222 hell^o, world
223 helloworld
224 hello
225 world
226 hello
227
228 finished
229 baz
230 baz
231 foo | echo bar
232 foo & echo bar
233 bak &
234 baz@space@
235 0@or_broken@1
236 foo > foo
237 <
238 ffoof
239 WINE_FOO=bar | baz
240 0
241 WINE_FOO=bar ^| baz
242 bar | baz
243 0
244 ------------ Testing 'set' ------------
245 1
246 0
247 WINE_FOOBAR not defined
248 baz
249 WINE_FOOBAR = baz
250 0
251 baz2
252 0
253 bar
254 WINE_FOOBAR= bar
255 WINE_FOOBAR = baz2
256 WINE_FOOBAR = baz2
257 WINE_FOOBAR not defined
258 1
259 bar
260 foobar
261 WINE_FOO not defined
262 WINE_BAZ=bazbaz
263 bazbaz
264 set "WINE_FOO=bar" should not include the quotes in the variable value
265 bar
266 foo
267 ''
268 'foo@space@'
269 'foo@tab@'
270 'value@space@'
271 'value'
272 'jim fred'
273 '"jim" fred'
274 'jim fred'
275 'jim'
276 'apple"banana"grape'
277 ------------ Testing variable expansion ------------
278 ~p0 should be path containing batch file
279 @path@
280 @path@
281 ~dp0 should be directory containing batch file
282 @drive@@path@
283 @drive@@path@
284 CD value @pwd@@or_broken@CD value@space@
285 %
286 P
287 P
288 S
289 P
290 PS
291 ERRORLEVEL
292 0
293 00
294 0ERRORLEVEL
295 0
296 0%
297 P0
298 0S
299 P0S
300 ------------ Testing variable substrings ------------
301 q
302 qwe
303 er
304 'ty'@or_broken@''
305 't'@or_broken@''
306 ert@or_broken@qwerty
307 e@or_broken@qwerty
308 ''@or_broken@'qwerty'
309 r@or_broken@qwerty
310 ------------ Testing variable substitution ------------
311 --- in FOR variables
312 "A B"
313 C
314 "A B"
315 C
316 'A B'@or_broken@''
317 'C'@or_broken@''
318 @drive@@path@C D@or_broken@%~ff
319 @drive@@path@E@or_broken@%~ff
320 @drive@
321 @drive@
322 @path@@or_broken@%~pd
323 @path@@or_broken@%~pd
324 L M
325 N
326 '.OOL'
327 '.TABC'
328 ''
329 @todo_wine@'@drive@@shortpath@R S'@or_broken@''
330 @todo_wine@'@drive@@shortpath@T'@or_broken@''
331 @todo_wine@'@drive@@shortpath@ABCDEFGHIJK.LMNOP'@or_broken@''
332 ''@or_broken@'%~ai'
333 ''@or_broken@'%~ai'
334 '--a------'@or_broken@'--a--------'@or_broken@'%~ai'
335 '5'@or_broken@'%~zi'
336 ''@or_broken@'%~ti'
337 ''@or_broken@'%~ti'
338 ''@or_broken@'%~zi'
339 ''@or_broken@'%~zi'
340 @drive@@path@
341 @drive@@path@
342 @drive@
343 @drive@
344 @drive@
345 @drive@
346 ''
347 '.eh'
348 ',,,,,,,,,'
349 --- in parameters
350 "A B"
351 C
352 'A B'@or_broken@''
353 'C'@or_broken@''
354 @drive@@path@C D
355 @drive@@path@E
356 @drive@
357 @drive@
358 @path@
359 @path@
360 L M
361 N
362 '.OOL'
363 '.TABC'
364 ''
365 @todo_wine@'@drive@@shortpath@R S'@or_broken@''
366 @todo_wine@'@drive@@shortpath@T'@or_broken@''
367 @todo_wine@'@drive@@shortpath@ABCDEFGHIJK.LMNOP'@or_broken@''
368 @drive@@path@
369 @drive@@path@
370 @drive@
371 @drive@
372 @drive@
373 @drive@
374 ''
375 '.eh'@or_broken@''
376 ------------ Testing variable delayed expansion ------------
377 --- default mode (load-time expansion)
378 foo
379 !WINE_FOO!
380 foo
381 foo
382 --- runtime (delayed) expansion mode
383 foo
384 foo@or_broken@!WINE_FOO!
385 foo
386 bar@or_broken@foo
387 0
388 0@or_broken@1
389 foo
390 !WINE_FOO!
391 --- using /V cmd flag
392 foo
393 foo@or_broken@!WINE_FOO!
394 foo
395 !WINE_FOO!
396 ------------ Testing conditional execution ------------
397 --- unconditional ampersand
398 foo1
399 bar2@space@
400 foo2
401 foobar deleted
402 --- on success conditional and
403 @todo_wine@foo3 not created
404 bar4@space@
405 foo4
406 --- on failure conditional or
407 foo5
408 foo6@space@
409 @todo_wine@------------ Testing cd ------------
410 singleFile
411 Current dir: @drive@@path@foobar@or_broken@Current dir:@space@
412 @drive@@path@foobar
413 @pwd@
414 @drive@@path@foobar
415 @pwd@
416 @drive@@path@foobar
417 @pwd@
418 @pwd@
419 @pwd@
420 @drive@@path@foobar\bar bak
421 @drive@@path@foobar\bar bak
422 @drive@@path@foobar\bar bak
423 @drive@@path@foobar\bar bak
424 @drive@@path@foobar\bar bak
425 @pwd@
426 @drive@@path@foobar
427 ------------ Testing type ------------
428
429 @pwd@>type foobaz@space@
430 bar
431
432 @pwd@>echo ---@space@
433 ---
434 bar
435 ---1
436 bar
437 ---2
438 bar
439 ---3
440 ------------ Testing NUL ------------
441 bar
442 bar
443 bar
444 NUL
445 foo created
446 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
447 Passed: file size check on b.b [8]@or_broken@Skipping file size check on NT4
448 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
449 Passed: file size check on b.b [8]@or_broken@Skipping file size check on NT4
450 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
451 Passed: file size check on subdir\a.a [8]@or_broken@Skipping file size check on NT4
452 ------------ Testing if/else ------------
453 --- if/else should work with blocks
454 if seems to work
455 else seems to work
456 if seems not to detect /c as parameter
457 else if seems to work
458 else if seems to work
459 else if seems to work
460 --- case sensitivity with and without /i option
461 if seems to default to case sensitivity
462 if /i seems to work
463 if /I seems to work
464 --- string comparisons
465 equal
466 non equal
467 non equal
468 equal
469 --- tabs handling
470 doom
471 doom
472 doom
473 lol
474 quake
475 quake
476 quake
477 --- comparison operators
478 ------ for strings
479 LSS string can be used as operand for LSS comparison
480 floats are handled as strings
481 numbers in quotes are handled as strings
482 negative numbers as well@or_broken@NT4
483 if /i seems to work for LSS
484 A LSS B
485 A LSS AB
486 A LSS BA
487 A LSS AA
488 B LSS BA
489 AB LSS B
490 AB LSS BA
491 AA LSS B
492 AA LSS AB
493 AA LSS BA
494 b LSS B@or_broken@NT4
495 a LSS B@or_broken@NT4
496 a LSS B insensitive
497 A LSS b
498 A LSS b insensitive
499 A LEQ A
500 A LEQ B
501 A LEQ AB
502 A LEQ BA
503 A LEQ AA
504 B LEQ B
505 B LEQ BA
506 AB LEQ B
507 AB LEQ AB
508 AB LEQ BA
509 BA LEQ BA
510 AA LEQ B
511 AA LEQ AB
512 AA LEQ BA
513 AA LEQ AA
514 b LEQ B@or_broken@NT4
515 b LEQ B insensitive
516 a LEQ B@or_broken@NT4
517 a LEQ B insensitive
518 A LEQ b
519 A LEQ b insensitive
520 A EQU A
521 B EQU B
522 AB EQU AB
523 BA EQU BA
524 AA EQU AA
525 A EQU a insensitive
526 A NEQ B
527 A NEQ AB
528 A NEQ BA
529 A NEQ AA
530 B NEQ A
531 B NEQ AB
532 B NEQ BA
533 B NEQ AA
534 AB NEQ A
535 AB NEQ B
536 AB NEQ BA
537 AB NEQ AA
538 BA NEQ A
539 BA NEQ B
540 BA NEQ AB
541 BA NEQ AA
542 AA NEQ A
543 AA NEQ B
544 AA NEQ AB
545 AA NEQ BA
546 A GEQ A
547 B GEQ A
548 B GEQ B
549 B GEQ AB
550 B GEQ AA
551 AB GEQ A
552 AB GEQ AB
553 AB GEQ AA
554 BA GEQ A
555 BA GEQ B
556 BA GEQ AB
557 BA GEQ BA
558 BA GEQ AA
559 AA GEQ A
560 AA GEQ AA
561 B GTR A
562 B GTR AB
563 B GTR AA
564 AB GTR A
565 AB GTR AA
566 BA GTR A
567 BA GTR B
568 BA GTR AB
569 BA GTR AA
570 AA GTR A
571 ------ for numbers
572 negative numbers handled
573 negative numbers handled
574 octal handled
575 also in negative form
576 hexa handled
577 also in negative form
578 11 LSS 101
579 0 LSS 1
580 0 LSS 10
581 0 LSS 9
582 1 LSS 10
583 1 LSS 9
584 9 LSS 10
585 0 LEQ 0
586 0 LEQ 1
587 0 LEQ 10
588 0 LEQ 9
589 1 LEQ 1
590 1 LEQ 10
591 1 LEQ 9
592 10 LEQ 10
593 9 LEQ 10
594 9 LEQ 9
595 0 EQU 0
596 1 EQU 1
597 10 EQU 10
598 9 EQU 9
599 octal ok
600 hexa ok
601 string/hexa compare ok
602 string/hexa compare ok
603 0 NEQ 1
604 0 NEQ 10
605 0 NEQ 9
606 1 NEQ 0
607 1 NEQ 10
608 1 NEQ 9
609 10 NEQ 0
610 10 NEQ 1
611 10 NEQ 9
612 9 NEQ 0
613 9 NEQ 1
614 9 NEQ 10
615 0 GEQ 0
616 1 GEQ 0
617 1 GEQ 1
618 10 GEQ 0
619 10 GEQ 1
620 10 GEQ 10
621 10 GEQ 9
622 9 GEQ 0
623 9 GEQ 1
624 9 GEQ 9
625 1 GTR 0
626 10 GTR 0
627 10 GTR 1
628 10 GTR 9
629 9 GTR 0
630 9 GTR 1
631 ------ for numbers and stringified numbers
632 strings and integers not equal
633 strings and integers not equal
634 foo
635 "10" GEQ "1"
636 '1' GEQ 1@or_broken@NT4
637 1 GEQ "1"
638 "1" GEQ "1"
639 '1' GEQ "1"
640 "10" GEQ "1"
641 non NT4@or_broken@1 GEQ '1'
642 '1' GEQ '1'
643 foo
644 1 GEQ "10"
645 foo
646 '1' GEQ "10"
647 "10" GEQ "10"
648 ------------ Testing for ------------
649 --- plain FOR
650 A
651 B
652 C
653 %I
654 %I
655 %I
656 %j
657 %j
658 %j
659 A
660 B
661 C
662 1
663 4
664 1
665 A
666 B
667 C
668 X
669 X2
670 X3
671 foo
672 M
673 X
674 M
675 N
676 O
677 `echo
678 A
679 B`
680 'echo
681 A
682 B'
683 "echo A B"
684 "A B"
685 C
686 --- imbricated FORs
687 X Y
688 X Y
689 A C
690 A D
691 B C
692 B D
693 A C
694 A D
695 B C
696 B D
697 --- basic wildcards
698 bazbaz
699 --- for /d
700 baz@space@
701 foo@space@
702 bar@space@
703 PASSED
704 xxx - Should be xxx
705 Expected second line
706 --- for /R
707 Plain directory enumeration
708 Plain directory enumeration from provided root
709 File enumeration
710 File enumeration from provided root
711 Mixed enumeration
712 Mixed enumeration from provided root
713 With duplicates enumeration
714 Strip missing wildcards, keep unwildcarded names
715 for /R passed
716 --- Complex wildcards unix and windows slash
717 Windows slashs, valid path
718 ASIS: foobar\baz\bazbaz
719 WC : foobar\baz\bazbaz
720 Windows slashs, invalid path
721 ASIS: foobar\jim\bazbaz
722 Unix slashs, valid path
723 ASIS: foobar/baz/bazbaz
724 WC : bazbaz
725 Unix slashs, invalid path
726 ASIS: foobar/jim/bazbaz
727 Done
728 --- for /L
729 1
730 3
731 5
732 1
733 3
734 5
735 0
736 2
737 1
738 -1
739 ErrorLevel 0
740 ErrorLevel 0
741 1
742 2
743 3
744 4
745 1
746 3
747 4
748 3
749 2
750 1
751 4
752 2
753 0
754 1
755 1
756 -1
757 -1
758 1
759 3
760 --- set /a
761 ------ individual operations
762 WINE_foo correctly 3
763 WINE_foo correctly -1
764 WINE_foo correctly 3
765 WINE_foo correctly 6
766 WINE_foo correctly 10
767 WINE_foo correctly 4
768 WINE_foo correctly 4
769 WINE_foo correctly -4
770 WINE_foo correctly 0
771 WINE_foo correctly 2
772 WINE_foo correctly 2
773 WINE_foo correctly -2
774 WINE_foo correctly 1
775 WINE_foo correctly 4
776 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 1073741824 [0]
777 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly -1073741824 [0]
778 WINE_foo correctly -4
779 WINE_foo correctly 9
780 WINE_foo correctly 2
781 WINE_foo correctly 0
782 WINE_foo correctly -1
783 WINE_foo correctly -3
784 WINE_foo correctly 0
785 WINE_foo correctly 1
786 WINE_foo correctly 1
787 WINE_foo correctly 4
788 WINE_foo correctly 1
789 WINE_foo correctly 5
790 WINE_foo correctly 5
791 WINE_foo correctly 7
792 WINE_foo correctly 5
793 WINE_foo correctly 5
794 WINE_foo correctly 5
795 WINE_foo correctly 4
796 WINE_foo correctly 6
797 WINE_foo correctly 1
798 WINE_foo correctly 4
799 ------ precedence and grouping
800 WINE_foo correctly 10
801 WINE_foo correctly 18@or_broken@ERROR: WINE_foo incorrectly [18]
802 WINE_foo correctly 2@or_broken@ERROR: WINE_foo incorrectly 0 [2]
803 WINE_foo correctly 2@or_broken@ERROR: WINE_foo incorrectly [2]
804 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 4 [0]
805 WINE_foo correctly 4@or_broken@ERROR: WINE_foo incorrectly [4]
806 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly [3]
807 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly [3]
808 ------ octal and hexadecimal
809 WINE_foo correctly 18
810 WINE_foo correctly 18
811 WINE_foo correctly 15
812 WINE_foo correctly 3
813 ------ variables
814 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
815 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
816 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
817 WINE_bar correctly 4@or_broken@ERROR: WINE_bar incorrectly [4]
818 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
819 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
820 WINE_baz correctly 4@or_broken@ERROR: WINE_baz incorrectly [4]
821 WINE_foo correctly 9@or_broken@ERROR: WINE_foo incorrectly 3 [9]
822 WINE_bar correctly 9@or_broken@ERROR: WINE_bar incorrectly 3 [9]
823 WINE_foo correctly 0
824 WINE_foo correctly 4
825 WINE_bar correctly 4
826 WINE_foo correctly -7@or_broken@ERROR: WINE_foo incorrectly 4 [-7]
827 WINE_bar correctly -7@or_broken@ERROR: WINE_bar incorrectly 4 [-7]
828 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly -7 [-1]
829 WINE_bar correctly -1@or_broken@ERROR: WINE_bar incorrectly -7 [-1]
830 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
831 WINE_bar correctly 1@or_broken@ERROR: WINE_bar incorrectly [1]
832 WINE_foo correctly 4@or_broken@ERROR: WINE_foo incorrectly 1 [4]
833 WINE_bar correctly 4@or_broken@ERROR: WINE_bar incorrectly 1 [4]
834 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 4 [1]
835 WINE_bar correctly 1@or_broken@ERROR: WINE_bar incorrectly 4 [1]
836 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 1 [0]
837 WINE_bar correctly 0@or_broken@ERROR: WINE_bar incorrectly 1 [0]
838 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
839 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly [7]
840 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
841 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly [7]
842 WINE_foo correctly 19@or_broken@ERROR: WINE_foo incorrectly 0 [19]
843 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
844 WINE_baz correctly 4
845 --- quotes
846 WINE_foo correctly 1
847 WINE_foo correctly 1
848 WINE_foo correctly 1
849 WINE_bar correctly 2
850 WINE_foo correctly 1
851 WINE_bar correctly 2
852 WINE_foo correctly 1
853 WINE_bar correctly 2
854 WINE_foo correctly 1
855 WINE_bar correctly 2
856 WINE_foo correctly 1
857 WINE_bar correctly 2
858 WINE_baz correctly 3
859 WINE_foo correctly 1
860 WINE_bar correctly 2
861 WINE_baz correctly 3
862 WINE_foo correctly 1
863 WINE_bar correctly 2
864 WINE_baz correctly 3
865 WINE_foo correctly 1
866 WINE_bar correctly 2
867 WINE_baz correctly 3
868 WINE_foo correctly 1
869 WINE_bar correctly 2
870 WINE_baz correctly 3
871 WINE_foo correctly 1
872 WINE_foo correctly 1
873 WINE_bar correctly 5
874 WINE_baz correctly 2
875 WINE_foo correctly 18
876 WINE_foo correctly 3
877 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly 4 [7]
878 --- whitespace are ignored between double char operators
879 WINE_foo correctly 10@or_broken@ERROR: WINE_foo incorrectly 4 [10]
880 WINE_bar correctly 50@or_broken@ERROR: WINE_bar incorrectly 5 [50]
881 WINE_foo correctly 772@or_broken@ERROR: WINE_foo incorrectly 4 [772]
882 WINE_bar correctly 7720@or_broken@ERROR: WINE_bar incorrectly 5 [7720]
883 --- invalid operator sequence
884 4
885 4
886 ----- negative prefix
887 WINE_foo correctly -1
888 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
889 WINE_foo correctly 6
890 WINE_foo correctly 0
891 WINE_foo correctly 6
892 WINE_foo correctly 2
893 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
894 WINE_foo correctly 5
895 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly -5 [3]
896 ----- assignment tests involving the end destination
897 WINE_foo correctly 11@or_broken@ERROR: WINE_foo incorrectly 3 [11]
898 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 2 [6]
899 WINE_bar correctly 9@or_broken@ERROR: WINE_bar incorrectly [9]
900 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 2 [6]
901 WINE_bar correctly 10@or_broken@ERROR: WINE_bar incorrectly [10]
902 WINE_baz correctly 7@or_broken@ERROR: WINE_baz incorrectly [7]
903 WINE_foo correctly 7@or_broken@ERROR: WINE_foo incorrectly 2 [7]
904 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly 2 [7]
905 ----- equal precedence on stack
906 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 0 [1]
907 WINE_foo correctly 0
908 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
909 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
910 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
911 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly [-1]
912 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly [-1]
913 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
914 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
915 WINE_foo correctly -1
916 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly -1 [0]
917 WINE_foo correctly 0
918 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 0 [1]
919 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly 0 [-1]
920 WINE_foo correctly 25@or_broken@ERROR: WINE_foo incorrectly 20 [25]
921 WINE_foo correctly 20
922 WINE_foo correctly 1
923 WINE_foo correctly 4
924 WINE_foo correctly 7
925 WINE_foo correctly 8@or_broken@ERROR: WINE_foo incorrectly 4 [8]
926 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 5 [6]
927 WINE_bar correctly 6@or_broken@ERROR: WINE_bar incorrectly 5 [6]
928 --- for /F
929 ------ string argument
930 a
931 a@or_broken@no output
932 a
933 a@or_broken@no output
934 a
935 a@or_broken@no output
936 a
937 a@or_broken@no output
938 a
939 a@or_broken@no output
940 ------ fileset argument
941 --------- basic blank handling
942 a
943 a
944 a
945 a
946 a
947 b
948 --------- multi-line with empty lines
949 a
950 b
951 c
952 --------- multiple files
953 a
954 b
955 c
956 q
957 kkk
958 q
959 kkk
960 a
961 b
962 c
963 ------ command argument
964 Passed1@or_broken@Missing functionality - Broken1
965 Passed2@or_broken@Missing functionality - Broken2
966 Passed3@or_broken@Missing functionality - Broken3
967 ------ eol option
968 and@or_broken@Broken NT4 functionality1
969 Line@or_broken@Broken NT4 functionality2
970 Line@or_broken@Broken NT4 functionality3
971 ad
972 z@y
973 a|d
974 no output
975 no output
976 ------ delims option
977 a
978 a@space@
979 a d
980 a
981 C r
982 foo bar baz
983 @todo_wine@c:\
984 ------ skip option
985 c
986 no output
987 no output
988 c
989 c
990 no output
991 ------ tokens= option
992 h=%h i=a j=%j k=%k l=%l m=%m o=%o
993 h=%h i=b j=%j k=%k l=%l m=%m o=%o
994 h=%h i=a j=c k=e l=f m=g o=%o
995 h=%h i=a j=e k=f g l=%l m=%m o=%o
996 h=%h i=f j=i k=j k l m n o p q r s t u v w x y z l=%l m=%m o=%o
997 h=%h i=f j=i k=j k l m n;;== o p q r s t u v w x y z l=%l m=%m o=%o
998 h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o
999 h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o
1000 h=%h i=a j=b k= l= m=%m n=%n o=%o
1001 h=%h i=a j=e k=y l=z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z m=%m n=%n o=%o
1002 h=%h i=a j=b k= l= m= n=%n o=%o
1003 h=%h i=a j=b k= l= m= n= o=%o
1004 u=a v=b w=c x=d y=e z=f A=%A a=%a
1005 @todo_wine@U=a V=b W=c X=d Y=e Z=f A=%A a=m
1006 h=%h i=a j=b k=c l=e m=%m o=%o@or_broken@h=%h i=a j=b k=c l=e m= o=%o
1007 h=%h i=e j=%j k=%k l=%l m=%m o=%o
1008 h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o@or_broken@h=%h i=a j=b k=c l=d e f g m= n=%n o=%o
1009 h=%h i=a j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=a j=c k= l= m= n=%n o=%o
1010 h=%h i=b j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=b j=c k= l= m= n=%n o=%o
1011 h=%h i=b j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=b j=c k= l= m= n=%n o=%o
1012 ------------ Testing del ------------
1013 deleting 'file'
1014 errorlevel is 0, good
1015 successfully deleted 'file'
1016 attempting to delete 'file', even though it is not present
1017 errorlevel is 0, good
1018 ------------ Testing del /a ------------
1019 not-r.test not found after delete, good
1020 r.test found before delete, good
1021 r.test not found after delete, good
1022 ------------ Testing del /q ------------
1023 del /q * succeeded on file1
1024 del /q * succeeded on file2.dat
1025 ------------ Testing del /s ------------
1026 ------------ Testing rename ------------
1027 --- ren and rename are synonymous
1028 foo renamed to bar
1029 bar renamed to foo
1030 --- name collision
1031 foo
1032 bar
1033 --- rename read-only files
1034 read-only file renamed
1035 --- rename directories
1036 dir renamed
1037 read-only dir renamed
1038 --- rename in other directory
1039 rename impossible in other directory
1040 original file still present
1041 ------------ Testing move ------------
1042 --- file move
1043 file move succeeded
1044 @todo_wine@file move with overwrite succeeded@or_broken@file overwrite impossible!
1045 @todo_wine@bar@or_broken@baz
1046 read-only files are moveable
1047 file moved in subdirectory
1048 @todo_wine@moving a file to itself is a no-op@or_broken@moving a file to itself should be a no-op!
1049 @todo_wine@ErrorLevel: 0@or_broken@ErrorLevel: 1
1050 --- directory move
1051 simple directory move succeeded
1052 moving a directory to itself gives error; errlevel 1
1053 ------ dir in dir move
1054 foo
1055 bar2
1056 foo2
1057 ------------ Testing mkdir ------------
1058 --- md and mkdir are synonymous
1059 0
1060 0
1061 --- creating an already existing directory/file must fail
1062 1
1063 1
1064 --- multilevel path creation
1065 0
1066 0
1067 0
1068 0
1069 0
1070 1
1071 0
1072 0
1073 --- trailing backslashes
1074 0
1075 dir created
1076 0
1077 --- invalid chars
1078 mkdir ? gives errorlevel 1
1079 mkdir ?\foo gives errorlevel 1
1080 mkdir foo\? gives errorlevel 1
1081 ok, foo created
1082 mkdir foo\bar\? gives errorlevel 1
1083 ok, foo\bar created
1084 --- multiple directories at once
1085 foo created
1086 bar created
1087 foobar created
1088 bar\baz created
1089 bazbaz created
1090 zabzab created
1091 mkdir foo\* errorlevel 1
1092 ok, foo created
1093 ------------ Testing rmdir ------------
1094 0
1095 dir removed
1096 0
1097 dir removed
1098 0
1099 0
1100 file not removed
1101 0
1102 non-empty dir not removed
1103 0
1104 non-empty dir not removed
1105 recursive rmdir succeeded
1106 recursive rmdir succeeded
1107 foo removed
1108 bar removed
1109 foobar removed
1110 bar\baz removed
1111 ------------ Testing pushd/popd ------------
1112 @pwd@
1113 --- popd is no-op when dir stack is empty
1114 @pwd@
1115 --- pushing non-existing dir
1116 @pwd@
1117 --- basic behaviour
1118 @drive@@path@foobar
1119 @pwd@
1120 @drive@@path@foobar\baz
1121 @drive@@path@foobar
1122 @drive@@path@foobar
1123 @pwd@
1124 @drive@@path@foobar
1125 @pwd@
1126 ------------ Testing attrib ------------
1127 A @drive@@path@foobar\foo@or_broken@A @drive@@path@foobar\foo@or_broken@A I @drive@@path@foobar\foo
1128 --- read-only attribute
1129 A R @drive@@path@foobar\foo@or_broken@A R @drive@@path@foobar\foo@or_broken@A R I @drive@@path@foobar\foo
1130 foo
1131 foo original contents
1132 Read-only file not deleted
1133 Read-only file forcibly deleted
1134 --- recursive behaviour
1135 A @drive@@path@foobar\baz\level2@or_broken@A @drive@@path@foobar\baz\level2@or_broken@A I @drive@@path@foobar\baz\level2
1136 A R @drive@@path@foobar\level1@or_broken@A R @drive@@path@foobar\level1@or_broken@A R I @drive@@path@foobar\level1
1137 A R @drive@@path@foobar\baz\level2@or_broken@A R @drive@@path@foobar\baz\level2@or_broken@A R I @drive@@path@foobar\baz\level2
1138 A @drive@@path@foobar\bar@or_broken@A @drive@@path@foobar\bar@or_broken@A I @drive@@path@foobar\bar
1139 --- folders processing
1140 @drive@@path@foobar@or_broken@ @drive@@path@foobar@or_broken@ I @drive@@path@foobar
1141 @todo_wine@ R @drive@@path@foobar\baz@or_broken@ R @drive@@path@foobar\baz@or_broken@ @drive@@path@foobar\baz@or_broken@ R I @drive@@path@foobar\baz
1142 A @drive@@path@foobar\baz\toto@or_broken@A @drive@@path@foobar\baz\toto@or_broken@A I @drive@@path@foobar\baz\toto
1143 toto
1144 lulu
1145 file created in read-only dir
1146 ------------ Testing assoc ------------
1147 --- setting association
1148 ---
1149 .foo=bar
1150 .foo=bar
1151 +++
1152 .foo=bar
1153 --- resetting association
1154 ---
1155 +++
1156 ---
1157 ------------ Testing ftype ------------
1158 --- setting association
1159 ---
1160 footype=foo_opencmd
1161 .foo=footype
1162 footype=foo_opencmd
1163 +++
1164 footype=foo_opencmd
1165 --- resetting association
1166 @todo_wine@original value@or_broken@buggyXP@or_broken@!WINE_FOO!
1167 ------------ Testing CALL ------------
1168 --- external script
1169 foo@space@
1170 foo 8
1171 foo@space@@space@
1172 foo bar@space@
1173 foo ""@space@
1174 "" bar@space@
1175 foo ''@space@
1176 '' bar@space@
1177 --- internal routines
1178 bar :testRoutine
1179 foo@space@
1180 foo bar
1181 foo ""
1182 "" bar
1183 foo ''
1184 '' bar
1185 --- with builtins
1186 0
1187 foo created
1188 Should expand foobaz
1189 batfile
1190 robinfile
1191 1
1192 1
1193 non-builtin dir
1194 Line one
1195 Line two
1196 Get if
1197 ... and else!
1198 passed
1199 ------------ Testing SHIFT ------------
1200 'p1' 'p2' 'p3' 'p4' 'p5'
1201 'p2' 'p3' 'p4' 'p5' ''
1202 'p3' 'p4' 'p5' '' ''
1203 'p3' 'p5' '' '' ''
1204 'p3' 'p5' '' '' ''
1205 'p5' '' '' '' ''
1206 ------------ Testing cmd invocation ------------
1207 --- a batch file can delete itself
1208 file correctly deleted
1209 --- a batch file can alter itself
1210 bar
1211 ---------- Testing copy
1212 Passed: Found expected dummy.file
1213 Passed: Found expected dir1\file1
1214 Passed: Found expected dir1\file1
1215 Passed: Found expected dir1\file99
1216 Passed: Found expected file1
1217 Passed: Did not find dir2
1218 Passed: Did not find dir2\file1
1219 Passed: Found expected dir1\file1
1220 Passed: Found expected dir1\file2
1221 Passed: Found expected dir1\file3
1222 Passed: Found expected dir1\file1
1223 Passed: Found expected dir1\file2
1224 Passed: Found expected dir1\file3
1225 Passed: Found expected file1
1226 Passed: Found expected file2
1227 Passed: Found expected file3
1228 Passed: Did not find dir2
1229 Passed: Did not find dir2\file1
1230 Passed: Did not find dir2\file2
1231 Passed: Did not find dir2\file3
1232 Passed: Found expected testfile
1233 Passed: Found expected testfile
1234 Passed: Found expected testfile
1235 Passed: Found expected testfile
1236 Passed: Found expected testfile
1237 Passed: Found expected dir1\fred
1238 Passed: Found expected dir1\fred
1239 Passed: Found expected fred
1240 Passed: Found expected fred
1241 Passed: file size check on file1 [5]@or_broken@Skipping file size check on NT4
1242 Passed: file size check on file2 [8]@or_broken@Skipping file size check on NT4
1243 Passed: file size check on file3 [11]@or_broken@Skipping file size check on NT4
1244 Passed: file size check on file1_default [5]@or_broken@Skipping file size check on NT4
1245 Passed: file size check on file1_default2 [5]@or_broken@Skipping file size check on NT4
1246 Passed: file size check on file1_plus_eof [6]@or_broken@Skipping file size check on NT4
1247 Passed: file size check on file2_plus_eof [9]@or_broken@Skipping file size check on NT4
1248 Passed: file size check on file3_plus_eof [12]@or_broken@Skipping file size check on NT4
1249 Passed: file size check on file12_plus_eof [14]@or_broken@Skipping file size check on NT4
1250 Passed: file size check on file12_no_eof [13]@or_broken@Skipping file size check on NT4
1251 Passed: file size check on file12_eof2 [14]@or_broken@Skipping file size check on NT4
1252 Passed: file size check on file1_binary_srccopy [6]@or_broken@Skipping file size check on NT4
1253 Passed: file size check on file1_ascii_srccopy [5]@or_broken@Skipping file size check on NT4
1254 Passed: file size check on file123_default_copy [25]@or_broken@Skipping file size check on NT4
1255 Passed: file size check on file123_ascii_copy [25]@or_broken@Skipping file size check on NT4
1256 Passed: file size check on file123_binary_copy [27]@or_broken@Skipping file size check on NT4
1257 Passed: file size check on file123_mixed_copy1 [26]@or_broken@Skipping file size check on NT4
1258 Passed: file size check on file123_mixed_copy2 [27]@or_broken@Skipping file size check on NT4
1259 Passed: file size check on file123_mixed_copy3 [26]@or_broken@Skipping file size check on NT4
1260 Passed: file size check on file123_mixed_copy4 [25]@or_broken@Skipping file size check on NT4
1261 Passed: file size check on file123_mixed_copy5 [28]@or_broken@Skipping file size check on NT4
1262 Passed: file size check on file123_mixed_copy6 [19]@or_broken@Skipping file size check on NT4
1263 Passed: file size check on file123_mixed_copy7 [6]@or_broken@Skipping file size check on NT4
1264 Passed: file size check on file123_mixed_copy8 [7]@or_broken@Skipping file size check on NT4
1265 Passed: errorlevel invalid check 1
1266 Passed: Did not find dir1\file1
1267 Passed: errorlevel invalid check 2
1268 Passed: errorlevel invalid check 3
1269 ------------ Testing setlocal/endlocal ------------
1270 --- enable/disable extensions
1271 @todo_wine@ErrLev:@space@
1272 ErrLev: 0
1273 ErrLev: 0
1274 @todo_wine@ErrLev:@space@@or_broken@ErrLev: 0
1275 ErrLev: 0
1276 --- setlocal with corresponding endlocal
1277 globalval
1278 localval
1279 @drive@@path@foobar\foobar2
1280 globalval
1281 @drive@@path@foobar
1282 globalval
1283 @drive@@path@foobar
1284 --- setlocal with no corresponding endlocal
1285 globalval
1286 localval
1287 @drive@@path@foobar\foobar2
1288 globalval
1289 @drive@@path@foobar
1290 --- setlocal within same batch program
1291 Var1 ok 1
1292 Var2 ok 2
1293 Var3 ok 3
1294 Directory is ok 1
1295 Var1 ok 1
1296 Var2 ok 2
1297 Var3 ok 3
1298 Directory is ok 2
1299 Var1 ok 1
1300 Var2 ok 2
1301 Var3 ok 3
1302 Directory is ok 3
1303 --- Mismatched set and end locals
1304 --- Extra setlocal in called batch
1305 value2
1306 2set1endvalue1
1307 @drive@@path@foobar\foodir3
1308 Finished:
1309 value2
1310 @drive@@path@foobar\foodir2
1311 value1
1312 @drive@@path@foobar
1313 --- Extra endlocal in called batch
1314 value2
1315 value2
1316 @drive@@path@foobar\foodir2
1317 value2
1318 @drive@@path@foobar\foodir2
1319 Finished:
1320 value2
1321 @drive@@path@foobar\foodir2
1322 value1
1323 @drive@@path@foobar
1324 --- endlocal in called function rather than batch pgm is ineffective
1325 2
1326 2
1327 1
1328 2
1329 1
1330 2
1331 1
1332 1
1333 ------------ Testing Errorlevel ------------
1334 9009
1335 1
1336 errorlevel just right, good
1337 errorlevel with leading zero just right, good
1338 errorlevel with negative number OK
1339 abc0def@or_broken@abc1def
1340 errorlevel zero, good@or_broken@errorlevel nonzero, bad
1341 7 should be 7
1342 7 should still be 7
1343 ------------ Testing GOTO ------------
1344 goto with no leading space worked
1345 goto with colon and no leading space worked
1346 goto with a leading space worked
1347 goto with a leading tab worked
1348 goto with a following space worked
1349 goto with following amphersands worked
1350 goto with redirections worked
1351 Ignoring double colons worked
1352 label with mixed whitespace and no echo worked
1353 Correctly ignored trailing information
1354 ------------ Testing PATH ------------
1355 PATH=original
1356 PATH=try2
1357 PATH=try3
1358 ------------ Testing combined CALLs/GOTOs ------------
1359 world
1360 cheball
1361 barbare
1362 bar
1363 foo
1364 baz
1365 cheball
1366 barbare