cmd/tests: Add tests for LEQ comparison operator in "if" statements.
[wine.git] / programs / cmd / tests / test_builtins.cmd.exp
blob53eaffd73a940ee93ed20dfa370b92f17a394292
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 @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 @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
78 @pwd@>echo @tab@ on @space@@space@
79 noecho1
80 noecho2
81 echo3
82 ------------ Testing 'echo' [OFF] ------------
83 word
84 'singlequotedword'
85 "doublequotedword"
86 at-echoed-word
87 "/?"
90 word
91 .word
94 word
95 :word
96 on again
97 word@space@
98 word@space@@space@
99 word
100 word
101 word@space@@tab@
102 word@tab@@space@
103 word
104 @tab@word
105 @space@@tab@word
106 @tab@word
107 ------------ Testing mixed echo modes ------------
108 @echo on
109 if 1==1 echo foo
110 if 1==1 @echo bar
111 @echo off
112 if 1==1 echo foo2
113 if 1==1 @echo bar2
115 @todo_wine@@pwd@>if 1 == 1 echo foo@space@
118 @todo_wine@@pwd@>if 1 == 1@space@
120 foo2
121 bar2
122 ------------ Testing parameterization ------------
123 'a', 'b', 'c'
124 '"a b c"', '', ''
125 '"a b"\c', '', ''
126 'a', '~`+', '.{}!+b'
127 'a', 'b', ''
128 '"a;b"', '', ''
129 'a', 'b', ''
130 'a[b]{c}(d)e', '', ''
131 'a', '', ''
132 second line
133 'a', 'b', 'c'
134 'a', 'b', 'c'
135 'a', 'b', ''
136 ------------ Testing rem ------------
138 @pwd@>rem Hello@space@
140 @pwd@>rem Hello@space@
142 @pwd@>rem Hello || foo@space@
144 @pwd@>rem echo lol@space@
146 @pwd@>rem echo foo & echo bar@space@
148 @pwd@>rem @tab@ Hello@space@
150 @pwd@>rem@tab@ Hello@space@
152 @pwd@>rem@tab@echo foo & echo bar@space@
153 ------------ Testing redirection operators ------------
154 --- stdout redirection
156 foo@space@
157 foo@tab@
158 foo@space@
159 foo@tab@
160 foo7@space@@or_broken@foo@tab@
161 foo9@space@@or_broken@foo@tab@
162 foo1
163 foo11
164 foo12
165 foo13
166 foo14
167 foo15
168 --- stdout appending
170 foo@space@
171 foob@space@
172 foob@space@
173 fooc@space@
174 foob@space@
175 fooc@space@
176 food1
177 foob@space@
178 fooc@space@
179 food1
180 food2
181 food21
182 @todo_wine@foo7@space@@space@@or_broken@not supported@space@
183 @todo_wine@foo@or_broken@not supported
184 --- redirections within IF statements
185 @todo_wine@foo1
186 -----
187 foo2
188 foo3
189 file does not exist, ok
190 foo4
191 baz5
192 baz6@space@
193 baz7
194 baz8
196 foo@space@
202 ------------ Testing circumflex escape character ------------
203 hello, world
204 hello, world
205 hell^o, world
206 hell^o, world
207 helloworld
208 hello
209 world
210 hello
212 finished
215 foo | echo bar
216 foo & echo bar
217 bak &
218 baz@space@
219 0@or_broken@1
220 foo > foo
222 ffoof
223 FOO=bar | baz
225 FOO=bar ^| baz
226 bar | baz
228 ------------ Testing 'set' ------------
231 FOOBAR not defined
233 FOOBAR = baz
235 baz2
238 FOOBAR= bar
239 FOOBAR = baz2
240 FOOBAR = baz2
241 FOOBAR not defined
244 foobar
245 FOO not defined
246 BAZ=bazbaz
247 bazbaz
248 set "FOO=bar" should not include the quotes in the variable value
252 'foo@space@'
253 'foo@tab@'
254 ------------ Testing variable expansion ------------
255 ~dp0 should be directory containing batch file
256 @pwd@\
257 @pwd@\
258 CD value @pwd@@or_broken@CD value@space@
265 ERRORLEVEL
268 0ERRORLEVEL
274 ------------ Testing variable substrings ------------
278 @todo_wine@'ty'@or_broken@''
279 't'@or_broken@''
280 ert@or_broken@qwerty
281 e@or_broken@qwerty
282 ''@or_broken@'qwerty'
283 r@or_broken@qwerty
284 ------------ Testing variable substitution ------------
285 --- in FOR variables
286 "A B"
288 "A B"
290 'A B'@or_broken@''
291 'C'@or_broken@''
292 @pwd@\C D@or_broken@%~ff
293 @pwd@\E@or_broken@%~ff
294 @drive@
295 @drive@
296 @path@@or_broken@%~pd
297 @path@@or_broken@%~pd
300 '.OOL'
301 '.TABC'
303 @todo_wine@'@drive@@shortpath@R S'@or_broken@''
304 @todo_wine@'@drive@@shortpath@T'@or_broken@''
305 @todo_wine@'@drive@@shortpath@ABCDEFGHIJK.LMNOP'@or_broken@''
306 ''@or_broken@'%~ai'
307 ''@or_broken@'%~ai'
308 '--a------'@or_broken@'%~ai'
309 '5'@or_broken@'%~zi'
310 ''@or_broken@'%~ti'
311 ''@or_broken@'%~ti'
312 ''@or_broken@'%~zi'
313 ''@or_broken@'%~zi'
314 @drive@@path@
315 @drive@@path@
316 @drive@
317 @drive@
318 @drive@
319 @drive@
321 '.eh'
322 --- in parameters
323 "A B"
325 'A B'@or_broken@''
326 'C'@or_broken@''
327 @pwd@\C D
328 @pwd@\E
329 @drive@
330 @drive@
331 @path@
332 @path@
335 '.OOL'
336 '.TABC'
338 @todo_wine@'@drive@@shortpath@R S'@or_broken@''
339 @todo_wine@'@drive@@shortpath@T'@or_broken@''
340 @todo_wine@'@drive@@shortpath@ABCDEFGHIJK.LMNOP'@or_broken@''
341 @drive@@path@
342 @drive@@path@
343 @drive@
344 @drive@
345 @drive@
346 @drive@
348 '.eh'@or_broken@''
349 ------------ Testing variable delayed expansion ------------
350 --- default mode (load-time expansion)
352 !FOO!
355 --- runtime (delayed) expansion mode
357 @todo_wine@foo@or_broken@!FOO!
359 @todo_wine@bar@or_broken@foo
361 0@or_broken@1
363 !FOO!
364 --- using /V cmd flag
366 @todo_wine@foo@or_broken@!FOO!
368 !FOO!
369 ------------ Testing conditional execution ------------
370 --- unconditional ampersand
371 foo1
372 bar2@space@
373 foo2
374 foobar deleted
375 --- on success conditional and
376 @todo_wine@foo3 not created
377 bar4@space@
378 foo4
379 --- on failure conditional or
380 foo5
381 foo6@space@
382 @todo_wine@------------ Testing cd ------------
383 singleFile
384 Current dir: @pwd@\foobar@or_broken@Current dir:@space@
385 @pwd@\foobar
386 @pwd@
387 @pwd@\foobar
388 @pwd@
389 @pwd@\foobar
390 @pwd@
391 @pwd@
392 @pwd@
393 @pwd@\foobar\bar bak
394 @pwd@\foobar\bar bak
395 @pwd@\foobar\bar bak
396 @pwd@\foobar\bar bak
397 @pwd@\foobar\bar bak
398 @pwd@
399 @pwd@\foobar
400 ------------ Testing type ------------
402 @pwd@>type foobaz@space@
405 @pwd@>echo ---@space@
408 ---1
410 ---2
412 ---3
413 ------------ Testing NUL ------------
418 @todo_wine@foo created
419 ------------ Testing if/else ------------
420 --- if/else should work with blocks
421 if seems to work
422 else seems to work
423 if seems not to detect /c as parameter
424 --- case sensitivity with and without /i option
425 if seems to default to case sensitivity
426 if /i seems to work
427 if /I seems to work
428 --- string comparisons
429 equal
430 non equal
431 non equal
432 equal
433 --- tabs handling
434 doom
435 doom
436 doom
438 quake
439 quake
440 quake
441 --- comparison operators
442 ------ for strings
443 LSS string can be used as operand for LSS comparison
444 @todo_wine@floats are handled as strings
445 @todo_wine@numbers in quotes are handled as strings
446 @todo_wine@negative numbers as well@or_broken@NT4
447 @todo_wine@if /i seems to work for LSS
448 @todo_wine@A LSS B
449 @todo_wine@AB LSS B
450 @todo_wine@AA LSS B
451 @todo_wine@A LSS AB
452 @todo_wine@AA LSS AB
453 @todo_wine@A LSS BA
454 @todo_wine@B LSS BA
455 @todo_wine@AB LSS BA
456 @todo_wine@AA LSS BA
457 @todo_wine@A LSS AA
458 @todo_wine@b LSS B@or_broken@NT4
459 @todo_wine@a LSS B@or_broken@NT4
460 @todo_wine@a LSS B insensitive
461 @todo_wine@A LSS b
462 @todo_wine@A LSS b insensitive
463 @todo_wine@A LEQ A
464 @todo_wine@A LEQ B
465 @todo_wine@B LEQ B
466 @todo_wine@AB LEQ B
467 @todo_wine@AA LEQ B
468 @todo_wine@A LEQ AB
469 @todo_wine@AB LEQ AB
470 @todo_wine@AA LEQ AB
471 @todo_wine@A LEQ BA
472 @todo_wine@B LEQ BA
473 @todo_wine@AB LEQ BA
474 @todo_wine@BA LEQ BA
475 @todo_wine@AA LEQ BA
476 @todo_wine@A LEQ AA
477 @todo_wine@AA LEQ AA
478 @todo_wine@b LEQ B@or_broken@NT4
479 @todo_wine@b LEQ B insensitive
480 @todo_wine@a LEQ B@or_broken@NT4
481 @todo_wine@a LEQ B insensitive
482 @todo_wine@A LEQ b
483 @todo_wine@A LEQ b insensitive
484 ------ for numbers
485 negative numbers handled
486 negative numbers handled
487 octal handled
488 also in negative form
489 hexa handled
490 also in negative form
491 11 LSS 101
492 @todo_wine@0 LSS 1
493 @todo_wine@0 LSS 10
494 @todo_wine@1 LSS 10
495 @todo_wine@9 LSS 10
496 @todo_wine@0 LSS 9
497 @todo_wine@1 LSS 9
498 @todo_wine@0 LEQ 0
499 @todo_wine@0 LEQ 1
500 @todo_wine@1 LEQ 1
501 @todo_wine@0 LEQ 10
502 @todo_wine@1 LEQ 10
503 @todo_wine@10 LEQ 10
504 @todo_wine@9 LEQ 10
505 @todo_wine@0 LEQ 9
506 @todo_wine@1 LEQ 9
507 @todo_wine@9 LEQ 9
508 ------------ Testing for ------------
509 --- plain FOR
537 `echo
540 'echo
543 "echo A B"
544 "A B"
546 --- imbricated FORs
547 @todo_wine@X Y
548 @todo_wine@X Y
549 @todo_wine@A C
550 @todo_wine@A D
551 @todo_wine@B C
552 @todo_wine@B D
553 @todo_wine@A C
554 @todo_wine@A D
555 @todo_wine@B C
556 @todo_wine@B D
557 --- basic wildcards
558 bazbaz
559 --- for /d
560 baz@space@
561 foo@space@
562 bar@space@
563 PASSED
564 xxx - Should be xxx
565 Expected second line
566 --- for /R
567 Plain directory enumeration
568 Plain directory enumeration from provided root
569 File enumeration
570 File enumeration from provided root
571 Mixed enumeration
572 Mixed enumeration from provided root
573 With duplicates enumeration
574 Strip missing wildcards, keep unwildcarded names
575 for /R passed
576 --- for /L
587 ErrorLevel 0
588 ErrorLevel 0
608 --- for /a
609 ------ individual operations
611 @todo_wine@3
612 @todo_wine@-1
613 @todo_wine@3
614 @todo_wine@6
615 @todo_wine@10
616 @todo_wine@4
617 @todo_wine@4
618 @todo_wine@-4
620 @todo_wine@2
621 @todo_wine@2
622 @todo_wine@-2
623 @todo_wine@1
624 @todo_wine@4
625 0@or_broken@1073741824
626 0@or_broken@-1073741824
627 @todo_wine@-4
628 @todo_wine@9
629 @todo_wine@2
631 @todo_wine@-1
632 @todo_wine@-3
634 @todo_wine@1
635 @todo_wine@1
636 @todo_wine@4
637 @todo_wine@1
638 @todo_wine@5
639 @todo_wine@5
640 @todo_wine@7
641 @todo_wine@5
642 @todo_wine@5
643 @todo_wine@5
644 @todo_wine@4
645 @todo_wine@6
646 @todo_wine@1
647 ------ precedence and grouping
648 @todo_wine@4
649 @todo_wine@10
650 @todo_wine@18@or_broken@10
651 @todo_wine@2@or_broken@0
652 @todo_wine@2@or_broken@0
653 0@or_broken@4
654 @todo_wine@4
655 @todo_wine@3@or_broken@4
656 ------ octal and hexadecimal
657 @todo_wine@3@or_broken@4
658 @todo_wine@18
659 @todo_wine@18
660 @todo_wine@15
661 ------ variables
662 @todo_wine@3
663 @todo_wine@3@or_broken@foo not defined
664 @todo_wine@3@or_broken@0
665 @todo_wine@3@or_broken@0
666 @todo_wine@3@or_broken@0
667 @todo_wine@9@or_broken@0
669 @todo_wine@4@or_broken@0
670 @todo_wine@-7@or_broken@0
671 @todo_wine@-1@or_broken@0
672 @todo_wine@5@or_broken@0
673 @todo_wine@4@or_broken@0
674 @todo_wine@1@or_broken@0
676 @todo_wine@5@or_broken@0
678 --- for /F
679 ------ string argument
680 @todo_wine@a
681 @todo_wine@a
683 @todo_wine@a
684 @todo_wine@a
685 ------ fileset argument
686 --------- basic blank handling
693 --------- multi-line with empty lines
697 --------- multiple files
708 ------ eol option
709 @todo_wine@ad
710 @todo_wine@z@y
712 @todo_wine@no output
713 @todo_wine@no output
714 ------ delims option
715 @todo_wine@a
716 @todo_wine@a@space@
717 @todo_wine@a d
718 @todo_wine@a
719 @todo_wine@C r
720 foo bar baz
721 @todo_wine@c:\
722 ------ skip option
723 @todo_wine@c
724 @todo_wine@no output
725 @todo_wine@no output
726 ------------ Testing del /a ------------
727 not-r.test not found after delete, good
728 r.test found before delete, good
729 r.test not found after delete, good
730 ------------ Testing del /q ------------
731 del /q * succeeded on file1
732 del /q * succeeded on file2.dat
733 ------------ Testing del /s ------------
734 ------------ Testing rename ------------
735 --- ren and rename are synonymous
736 foo renamed to bar
737 bar renamed to foo
738 --- name collision
741 --- rename read-only files
742 read-only file renamed
743 --- rename directories
744 dir renamed
745 read-only dir renamed
746 --- rename in other directory
747 rename impossible in other directory
748 original file still present
749 ------------ Testing move ------------
750 --- file move
751 file move succeeded
752 @todo_wine@file move with overwrite succeeded@or_broken@file overwrite impossible!
753 @todo_wine@bar@or_broken@baz
754 read-only files are moveable
755 file moved in subdirectory
756 @todo_wine@moving a file to itself is a no-op@or_broken@moving a file to itself should be a no-op!
757 @todo_wine@ErrorLevel: 0@or_broken@ErrorLevel: 1
758 --- directory move
759 simple directory move succeeded
760 moving a directory to itself gives error; errlevel 1
761 ------ dir in dir move
763 bar2
764 foo2
765 ------------ Testing mkdir ------------
766 --- md and mkdir are synonymous
769 --- creating an already existing directory/file must fail
772 --- multilevel path creation
781 --- trailing backslashes
783 dir created
785 --- invalid chars
786 mkdir ? gives errorlevel 1
787 mkdir ?\foo gives errorlevel 1
788 mkdir foo\? gives errorlevel 1
789 ok, foo created
790 mkdir foo\bar\? gives errorlevel 1
791 ok, foo\bar created
792 --- multiple directories at once
793 foo created
794 bar created
795 foobar created
796 bar\baz created
797 bazbaz created
798 zabzab created
799 mkdir foo\* errorlevel 1
800 ok, foo created
801 ------------ Testing rmdir ------------
803 dir removed
805 dir removed
808 file not removed
810 non-empty dir not removed
812 non-empty dir not removed
813 recursive rmdir succeeded
814 recursive rmdir succeeded
815 foo removed
816 bar removed
817 foobar removed
818 bar\baz removed
819 ------------ Testing pushd/popd ------------
820 @pwd@
821 --- popd is no-op when dir stack is empty
822 @pwd@
823 --- pushing non-existing dir
824 @pwd@
825 --- basic behaviour
826 @pwd@\foobar
827 @pwd@
828 @pwd@\foobar\baz
829 @pwd@\foobar
830 @pwd@\foobar
831 @pwd@
832 @pwd@\foobar
833 @pwd@
834 ------------ Testing attrib ------------
835 A @pwd@\foobar\foo@or_broken@A @pwd@\foobar\foo@or_broken@A I @pwd@\foobar\foo
836 --- read-only attribute
837 A R @pwd@\foobar\foo@or_broken@A R @pwd@\foobar\foo@or_broken@A R I @pwd@\foobar\foo
839 foo original contents
840 Read-only file not deleted
841 Read-only file forcibly deleted
842 --- recursive behaviour
843 @todo_wine@A @pwd@\foobar\baz\level2@or_broken@A @pwd@\foobar\baz\level2@or_broken@A I @pwd@\foobar\baz\level2
844 @todo_wine@A R @pwd@\foobar\level1@or_broken@A R @pwd@\foobar\level1@or_broken@A R I @pwd@\foobar\level1
845 @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
846 A @pwd@\foobar\bar@or_broken@A @pwd@\foobar\bar@or_broken@A I @pwd@\foobar\bar
847 --- folders processing
848 @pwd@\foobar@or_broken@ @pwd@\foobar@or_broken@ I @pwd@\foobar
849 @todo_wine@ R @pwd@\foobar\baz@or_broken@ R @pwd@\foobar\baz@or_broken@ @pwd@\foobar\baz@or_broken@ R I @pwd@\foobar\baz
850 @todo_wine@A @pwd@\foobar\baz\toto@or_broken@A @pwd@\foobar\baz\toto@or_broken@A I @pwd@\foobar\baz\toto
851 toto
852 lulu
853 file created in read-only dir
854 ------------ Testing assoc ------------
855 --- setting association
857 .foo=bar
858 .foo=bar
860 .foo=bar
861 --- resetting association
865 ------------ Testing ftype ------------
866 --- setting association
868 footype=foo_opencmd
869 .foo=footype
870 footype=foo_opencmd
872 footype=foo_opencmd
873 --- resetting association
874 @todo_wine@original value@or_broken@buggyXP@or_broken@!FOO!
875 ------------ Testing CALL ------------
876 --- external script
877 foo@space@
878 foo 8
879 foo@space@@space@
880 foo bar@space@
881 foo ""@space@
882 "" bar@space@
883 foo ''@space@
884 '' bar@space@
885 --- internal routines
886 bar :testRoutine
887 foo@space@
888 foo bar
889 foo ""
890 "" bar
891 foo ''
892 '' bar
893 --- with builtins
895 foo created
896 Should expand foobaz
897 batfile
898 robinfile
901 non-builtin dir
902 Line one
903 Line two
904 Get if
905 ... and else!
906 passed
907 ------------ Testing SHIFT ------------
908 'p1' 'p2' 'p3' 'p4' 'p5'
909 'p2' 'p3' 'p4' 'p5' ''
910 'p3' 'p4' 'p5' '' ''
911 'p3' 'p5' '' '' ''
912 'p3' 'p5' '' '' ''
913 'p5' '' '' '' ''
914 ------------ Testing cmd invocation ------------
915 --- a batch file can delete itself
916 file correctly deleted
917 --- a batch file can alter itself
918 @todo_wine@bar
919 ---------- Testing copy
920 Passed: Found expected dummy.file
921 Passed: Found expected dir1\file1
922 Passed: Found expected dir1\file1
923 Passed: Found expected dir1\file99
924 Passed: Found expected file1
925 Passed: Did not find dir2
926 Passed: Did not find dir2\file1
927 Passed: Found expected dir1\file1
928 Passed: Found expected dir1\file2
929 Passed: Found expected dir1\file3
930 Passed: Found expected dir1\file1
931 Passed: Found expected dir1\file2
932 Passed: Found expected dir1\file3
933 Passed: Found expected file1
934 Passed: Found expected file2
935 Passed: Found expected file3
936 Passed: Did not find dir2
937 Passed: Did not find dir2\file1
938 Passed: Did not find dir2\file2
939 Passed: Did not find dir2\file3
940 Passed: Found expected testfile
941 Passed: Found expected testfile
942 Passed: Found expected testfile
943 Passed: Found expected testfile
944 Passed: Found expected testfile
945 Passed: Found expected dir1\fred
946 Passed: Found expected dir1\fred
947 Passed: Found expected fred
948 Passed: Found expected fred
949 Passed: file size check on file1 [5]@or_broken@Skipping file size check on NT4
950 Passed: file size check on file2 [8]@or_broken@Skipping file size check on NT4
951 Passed: file size check on file3 [11]@or_broken@Skipping file size check on NT4
952 Passed: file size check on file1_default [5]@or_broken@Skipping file size check on NT4
953 Passed: file size check on file1_default2 [5]@or_broken@Skipping file size check on NT4
954 Passed: file size check on file1_plus_eof [6]@or_broken@Skipping file size check on NT4
955 Passed: file size check on file2_plus_eof [9]@or_broken@Skipping file size check on NT4
956 Passed: file size check on file3_plus_eof [12]@or_broken@Skipping file size check on NT4
957 Passed: file size check on file12_plus_eof [14]@or_broken@Skipping file size check on NT4
958 Passed: file size check on file12_no_eof [13]@or_broken@Skipping file size check on NT4
959 Passed: file size check on file12_eof2 [14]@or_broken@Skipping file size check on NT4
960 Passed: file size check on file1_binary_srccopy [6]@or_broken@Skipping file size check on NT4
961 Passed: file size check on file1_ascii_srccopy [5]@or_broken@Skipping file size check on NT4
962 Passed: file size check on file123_default_copy [25]@or_broken@Skipping file size check on NT4
963 Passed: file size check on file123_ascii_copy [25]@or_broken@Skipping file size check on NT4
964 Passed: file size check on file123_binary_copy [27]@or_broken@Skipping file size check on NT4
965 Passed: file size check on file123_mixed_copy1 [26]@or_broken@Skipping file size check on NT4
966 Passed: file size check on file123_mixed_copy2 [27]@or_broken@Skipping file size check on NT4
967 Passed: file size check on file123_mixed_copy3 [26]@or_broken@Skipping file size check on NT4
968 Passed: file size check on file123_mixed_copy4 [25]@or_broken@Skipping file size check on NT4
969 Passed: file size check on file123_mixed_copy5 [28]@or_broken@Skipping file size check on NT4
970 Passed: file size check on file123_mixed_copy6 [19]@or_broken@Skipping file size check on NT4
971 Passed: file size check on file123_mixed_copy7 [6]@or_broken@Skipping file size check on NT4
972 Passed: file size check on file123_mixed_copy8 [7]@or_broken@Skipping file size check on NT4
973 Passed: errorlevel invalid check 1
974 Passed: Did not find dir1\file1
975 Passed: errorlevel invalid check 2
976 Passed: errorlevel invalid check 3
977 ------------ Testing setlocal/endlocal ------------
978 --- enable/disable extensions
979 @todo_wine@ErrLev:@space@
980 ErrLev: 0
981 ErrLev: 0
982 @todo_wine@ErrLev:@space@@or_broken@ErrLev: 0
983 ErrLev: 0
984 --- setlocal with corresponding endlocal
985 globalval
986 localval
987 @pwd@\foobar\foobar2
988 globalval
989 @pwd@\foobar
990 globalval
991 @pwd@\foobar
992 --- setlocal with no corresponding endlocal
993 globalval
994 localval
995 @pwd@\foobar\foobar2
996 globalval
997 @pwd@\foobar
998 --- setlocal within same batch program
999 Var1 ok 1
1000 Var2 ok 2
1001 Var3 ok 3
1002 Directory is ok 1
1003 Var1 ok 1
1004 Var2 ok 2
1005 Var3 ok 3
1006 Directory is ok 2
1007 Var1 ok 1
1008 Var2 ok 2
1009 Var3 ok 3
1010 Directory is ok 3
1011 --- Mismatched set and end locals
1012 --- Extra setlocal in called batch
1013 value2
1014 2set1endvalue1
1015 @pwd@\foobar\foodir3
1016 Finished:
1017 value2
1018 @pwd@\foobar\foodir2
1019 value1
1020 @pwd@\foobar
1021 --- Extra endlocal in called batch
1022 value2
1023 value2
1024 @pwd@\foobar\foodir2
1025 value2
1026 @pwd@\foobar\foodir2
1027 Finished:
1028 value2
1029 @pwd@\foobar\foodir2
1030 value1
1031 @pwd@\foobar
1032 --- endlocal in called function rather than batch pgm is ineffective
1041 ------------ Testing Errorlevel ------------
1042 9009
1044 errorlevel just right, good
1045 errorlevel with leading zero just right, good
1046 errorlevel with negative number OK
1047 abc0def@or_broken@abc1def
1048 errorlevel zero, good@or_broken@errorlevel nonzero, bad
1049 7 should be 7
1050 7 should still be 7
1051 ------------ Testing GOTO ------------
1052 goto with no leading space worked
1053 goto with a leading space worked
1054 goto with a leading tab worked
1055 goto with a following space worked
1056 ------------ Testing PATH ------------
1057 PATH=original
1058 PATH=try2
1059 PATH=try3
1060 ------------ Testing combined CALLs/GOTOs ------------
1061 world
1062 cheball
1063 barbare
1067 cheball
1068 barbare