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] ------------
11 @pwd@>echo 'singlequotedword'@space@
14 @pwd@>echo "doublequotedword"@space@
18 @pwd@>echo "/?"@space@
30 @pwd@>echo .word@space@
42 @pwd@>echo :word@space@
45 @pwd@>echo off now@space@
48 @pwd@>echo word@space@@space@
51 @pwd@>echo word@space@@space@@space@
54 @pwd@>echo word@space@
57 @pwd@>echo@tab@word@space@
60 @pwd@>echo@tab@word@space@@tab@@space@
63 @pwd@>echo@tab@word@tab@@space@@space@
66 @pwd@>echo word@space@
69 @pwd@>echo@space@@tab@word@space@
72 @pwd@>echo@space@@space@@tab@word@space@
75 @pwd@>echo@tab@@tab@word@space@
78 @pwd@>echo @tab@ on @space@@space@
82 ------------ Testing 'echo' [OFF] ------------
107 ------------ Testing mixed echo modes ------------
115 @todo_wine@@pwd@>if 1 == 1 echo foo@space@
118 @todo_wine@@pwd@>if 1 == 1@space@
122 ------------ Testing parameterization ------------
130 'a[b]{c}(d)e', '', ''
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
160 foo7@space@@or_broken@foo@tab@
161 foo9@space@@or_broken@foo@tab@
182 @todo_wine@foo7@space@@space@@or_broken@not supported@space@
183 @todo_wine@foo@or_broken@not supported
184 --- redirections within IF statements
189 file does not exist, ok
202 ------------ Testing circumflex escape character ------------
228 ------------ Testing 'set' ------------
231 WINE_FOOBAR not defined
241 WINE_FOOBAR not defined
248 set "WINE_FOO=bar" should not include the quotes in the variable value
261 ------------ Testing variable expansion ------------
262 ~p0 should be path containing batch file
265 ~dp0 should be directory containing batch file
268 CD value @pwd@@or_broken@CD value@space@
284 ------------ Testing variable substrings ------------
292 ''@or_broken@'qwerty'
294 ------------ Testing variable substitution ------------
302 @drive@@path@C D@or_broken@%~ff
303 @drive@@path@E@or_broken@%~ff
306 @path@@or_broken@%~pd
307 @path@@or_broken@%~pd
313 @todo_wine@'@drive@@shortpath@R S'@or_broken@''
314 @todo_wine@'@drive@@shortpath@T'@or_broken@''
315 @todo_wine@'@drive@@shortpath@ABCDEFGHIJK.LMNOP'@or_broken@''
318 '--a------'@or_broken@'%~ai'
349 @todo_wine@'@drive@@shortpath@R S'@or_broken@''
350 @todo_wine@'@drive@@shortpath@T'@or_broken@''
351 @todo_wine@'@drive@@shortpath@ABCDEFGHIJK.LMNOP'@or_broken@''
360 ------------ Testing variable delayed expansion ------------
361 --- default mode (load-time expansion)
366 --- runtime (delayed) expansion mode
368 foo@or_broken@!WINE_FOO!
375 --- using /V cmd flag
377 foo@or_broken@!WINE_FOO!
380 ------------ Testing conditional execution ------------
381 --- unconditional ampersand
386 --- on success conditional and
387 @todo_wine@foo3 not created
390 --- on failure conditional or
393 @todo_wine@------------ Testing cd ------------
395 Current dir: @drive@@path@foobar@or_broken@Current dir:@space@
404 @drive@@path@foobar\bar bak
405 @drive@@path@foobar\bar bak
406 @drive@@path@foobar\bar bak
407 @drive@@path@foobar\bar bak
408 @drive@@path@foobar\bar bak
411 ------------ Testing type ------------
413 @pwd@>type foobaz@space@
416 @pwd@>echo ---@space@
424 ------------ Testing NUL ------------
430 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
431 Passed: file size check on b.b [8]@or_broken@Skipping file size check on NT4
432 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
433 Passed: file size check on b.b [8]@or_broken@Skipping file size check on NT4
434 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
435 Passed: file size check on subdir\a.a [8]@or_broken@Skipping file size check on NT4
436 ------------ Testing if/else ------------
437 --- if/else should work with blocks
440 if seems not to detect /c as parameter
441 --- case sensitivity with and without /i option
442 if seems to default to case sensitivity
445 --- string comparisons
458 --- comparison operators
460 LSS string can be used as operand for LSS comparison
461 floats are handled as strings
462 numbers in quotes are handled as strings
463 negative numbers as well@or_broken@NT4
464 if /i seems to work for LSS
475 b LSS B@or_broken@NT4
476 a LSS B@or_broken@NT4
495 b LEQ B@or_broken@NT4
497 a LEQ B@or_broken@NT4
553 negative numbers handled
554 negative numbers handled
556 also in negative form
558 also in negative form
582 string/hexa compare ok
583 string/hexa compare ok
612 ------ for numbers and stringified numbers
613 strings and integers not equal
614 strings and integers not equal
617 '1' GEQ 1@or_broken@NT4
622 non NT4@or_broken@1 GEQ '1'
629 ------------ Testing for ------------
688 Plain directory enumeration
689 Plain directory enumeration from provided root
691 File enumeration from provided root
693 Mixed enumeration from provided root
694 With duplicates enumeration
695 Strip missing wildcards, keep unwildcarded names
697 --- Complex wildcards unix and windows slash
698 Windows slashs, valid path
699 ASIS: foobar\baz\bazbaz
700 WC : foobar\baz\bazbaz
701 Windows slashs, invalid path
702 ASIS: foobar\jim\bazbaz
703 Unix slashs, valid path
704 ASIS: foobar/baz/bazbaz
706 Unix slashs, invalid path
707 ASIS: foobar/jim/bazbaz
742 ------ individual operations
744 WINE_foo correctly -1
747 WINE_foo correctly 10
750 WINE_foo correctly -4
754 WINE_foo correctly -2
757 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 1073741824 [0]
758 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly -1073741824 [0]
759 WINE_foo correctly -4
763 WINE_foo correctly -1
764 WINE_foo correctly -3
780 ------ precedence and grouping
781 WINE_foo correctly 10
782 WINE_foo correctly 18@or_broken@ERROR: WINE_foo incorrectly [18]
783 WINE_foo correctly 2@or_broken@ERROR: WINE_foo incorrectly 0 [2]
784 WINE_foo correctly 2@or_broken@ERROR: WINE_foo incorrectly [2]
785 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 4 [0]
786 WINE_foo correctly 4@or_broken@ERROR: WINE_foo incorrectly [4]
787 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly [3]
788 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly [3]
789 ------ octal and hexadecimal
790 WINE_foo correctly 18
791 WINE_foo correctly 18
792 WINE_foo correctly 15
795 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
796 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
797 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
798 WINE_bar correctly 4@or_broken@ERROR: WINE_bar incorrectly [4]
799 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
800 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
801 WINE_baz correctly 4@or_broken@ERROR: WINE_baz incorrectly [4]
802 WINE_foo correctly 9@or_broken@ERROR: WINE_foo incorrectly 3 [9]
803 WINE_bar correctly 9@or_broken@ERROR: WINE_bar incorrectly 3 [9]
807 WINE_foo correctly -7@or_broken@ERROR: WINE_foo incorrectly 4 [-7]
808 WINE_bar correctly -7@or_broken@ERROR: WINE_bar incorrectly 4 [-7]
809 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly -7 [-1]
810 WINE_bar correctly -1@or_broken@ERROR: WINE_bar incorrectly -7 [-1]
811 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
812 WINE_bar correctly 1@or_broken@ERROR: WINE_bar incorrectly [1]
813 WINE_foo correctly 4@or_broken@ERROR: WINE_foo incorrectly 1 [4]
814 WINE_bar correctly 4@or_broken@ERROR: WINE_bar incorrectly 1 [4]
815 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 4 [1]
816 WINE_bar correctly 1@or_broken@ERROR: WINE_bar incorrectly 4 [1]
817 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 1 [0]
818 WINE_bar correctly 0@or_broken@ERROR: WINE_bar incorrectly 1 [0]
819 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
820 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly [7]
821 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
822 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly [7]
823 WINE_foo correctly 19@or_broken@ERROR: WINE_foo incorrectly 0 [19]
824 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
856 WINE_foo correctly 18
858 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly 4 [7]
859 --- whitespace are ignored between double char operators
860 WINE_foo correctly 10@or_broken@ERROR: WINE_foo incorrectly 4 [10]
861 WINE_bar correctly 50@or_broken@ERROR: WINE_bar incorrectly 5 [50]
862 WINE_foo correctly 772@or_broken@ERROR: WINE_foo incorrectly 4 [772]
863 WINE_bar correctly 7720@or_broken@ERROR: WINE_bar incorrectly 5 [7720]
864 --- invalid operator sequence
867 ----- negative prefix
868 WINE_foo correctly -1
869 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
874 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
876 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly -5 [3]
877 ----- assignment tests involving the end destination
878 WINE_foo correctly 11@or_broken@ERROR: WINE_foo incorrectly 3 [11]
879 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 2 [6]
880 WINE_bar correctly 9@or_broken@ERROR: WINE_bar incorrectly [9]
881 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 2 [6]
882 WINE_bar correctly 10@or_broken@ERROR: WINE_bar incorrectly [10]
883 WINE_baz correctly 7@or_broken@ERROR: WINE_baz incorrectly [7]
884 WINE_foo correctly 7@or_broken@ERROR: WINE_foo incorrectly 2 [7]
885 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly 2 [7]
886 ----- equal precedence on stack
887 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 0 [1]
889 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
890 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
891 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
892 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly [-1]
893 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly [-1]
894 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
895 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
896 WINE_foo correctly -1
897 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly -1 [0]
899 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 0 [1]
900 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly 0 [-1]
901 WINE_foo correctly 25@or_broken@ERROR: WINE_foo incorrectly 20 [25]
902 WINE_foo correctly 20
906 WINE_foo correctly 8@or_broken@ERROR: WINE_foo incorrectly 4 [8]
907 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 5 [6]
908 WINE_bar correctly 6@or_broken@ERROR: WINE_bar incorrectly 5 [6]
910 ------ string argument
912 a@or_broken@no output
914 a@or_broken@no output
916 a@or_broken@no output
918 a@or_broken@no output
920 a@or_broken@no output
921 ------ fileset argument
922 --------- basic blank handling
929 --------- multi-line with empty lines
933 --------- multiple files
944 ------ command argument
945 Passed1@or_broken@Missing functionality - Broken1
946 Passed2@or_broken@Missing functionality - Broken2
947 Passed3@or_broken@Missing functionality - Broken3
949 and@or_broken@Broken NT4 functionality1
950 Line@or_broken@Broken NT4 functionality2
951 Line@or_broken@Broken NT4 functionality3
972 ------ tokens= option
973 h=%h i=a j=%j k=%k l=%l m=%m o=%o
974 h=%h i=b j=%j k=%k l=%l m=%m o=%o
975 h=%h i=a j=c k=e l=f m=g o=%o
976 h=%h i=a j=e k=f g l=%l m=%m o=%o
977 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
978 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
979 h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o
980 h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o
981 h=%h i=a j=b k= l= m=%m n=%n o=%o
982 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
983 h=%h i=a j=b k= l= m= n=%n o=%o
984 h=%h i=a j=b k= l= m= n= o=%o
985 u=a v=b w=c x=d y=e z=f A=%A a=%a
986 @todo_wine@U=a V=b W=c X=d Y=e Z=f A=%A a=m
987 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
988 h=%h i=e j=%j k=%k l=%l m=%m o=%o
989 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
990 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
991 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
992 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
993 ------------ Testing del /a ------------
994 not-r.test not found after delete, good
995 r.test found before delete, good
996 r.test not found after delete, good
997 ------------ Testing del /q ------------
998 del /q * succeeded on file1
999 del /q * succeeded on file2.dat
1000 ------------ Testing del /s ------------
1001 ------------ Testing rename ------------
1002 --- ren and rename are synonymous
1008 --- rename read-only files
1009 read-only file renamed
1010 --- rename directories
1012 read-only dir renamed
1013 --- rename in other directory
1014 rename impossible in other directory
1015 original file still present
1016 ------------ Testing move ------------
1019 @todo_wine@file move with overwrite succeeded@or_broken@file overwrite impossible!
1020 @todo_wine@bar@or_broken@baz
1021 read-only files are moveable
1022 file moved in subdirectory
1023 @todo_wine@moving a file to itself is a no-op@or_broken@moving a file to itself should be a no-op!
1024 @todo_wine@ErrorLevel: 0@or_broken@ErrorLevel: 1
1026 simple directory move succeeded
1027 moving a directory to itself gives error; errlevel 1
1028 ------ dir in dir move
1032 ------------ Testing mkdir ------------
1033 --- md and mkdir are synonymous
1036 --- creating an already existing directory/file must fail
1039 --- multilevel path creation
1048 --- trailing backslashes
1053 mkdir ? gives errorlevel 1
1054 mkdir ?\foo gives errorlevel 1
1055 mkdir foo\? gives errorlevel 1
1057 mkdir foo\bar\? gives errorlevel 1
1059 --- multiple directories at once
1066 mkdir foo\* errorlevel 1
1068 ------------ Testing rmdir ------------
1077 non-empty dir not removed
1079 non-empty dir not removed
1080 recursive rmdir succeeded
1081 recursive rmdir succeeded
1086 ------------ Testing pushd/popd ------------
1088 --- popd is no-op when dir stack is empty
1090 --- pushing non-existing dir
1095 @drive@@path@foobar\baz
1101 ------------ Testing attrib ------------
1102 A @drive@@path@foobar\foo@or_broken@A @drive@@path@foobar\foo@or_broken@A I @drive@@path@foobar\foo
1103 --- read-only attribute
1104 A R @drive@@path@foobar\foo@or_broken@A R @drive@@path@foobar\foo@or_broken@A R I @drive@@path@foobar\foo
1106 foo original contents
1107 Read-only file not deleted
1108 Read-only file forcibly deleted
1109 --- recursive behaviour
1110 A @drive@@path@foobar\baz\level2@or_broken@A @drive@@path@foobar\baz\level2@or_broken@A I @drive@@path@foobar\baz\level2
1111 A R @drive@@path@foobar\level1@or_broken@A R @drive@@path@foobar\level1@or_broken@A R I @drive@@path@foobar\level1
1112 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
1113 A @drive@@path@foobar\bar@or_broken@A @drive@@path@foobar\bar@or_broken@A I @drive@@path@foobar\bar
1114 --- folders processing
1115 @drive@@path@foobar@or_broken@ @drive@@path@foobar@or_broken@ I @drive@@path@foobar
1116 @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
1117 A @drive@@path@foobar\baz\toto@or_broken@A @drive@@path@foobar\baz\toto@or_broken@A I @drive@@path@foobar\baz\toto
1120 file created in read-only dir
1121 ------------ Testing assoc ------------
1122 --- setting association
1128 --- resetting association
1132 ------------ Testing ftype ------------
1133 --- setting association
1140 --- resetting association
1141 @todo_wine@original value@or_broken@buggyXP@or_broken@!WINE_FOO!
1142 ------------ Testing CALL ------------
1152 --- internal routines
1163 Should expand foobaz
1174 ------------ Testing SHIFT ------------
1175 'p1' 'p2' 'p3' 'p4' 'p5'
1176 'p2' 'p3' 'p4' 'p5' ''
1177 'p3' 'p4' 'p5' '' ''
1181 ------------ Testing cmd invocation ------------
1182 --- a batch file can delete itself
1183 file correctly deleted
1184 --- a batch file can alter itself
1186 ---------- Testing copy
1187 Passed: Found expected dummy.file
1188 Passed: Found expected dir1\file1
1189 Passed: Found expected dir1\file1
1190 Passed: Found expected dir1\file99
1191 Passed: Found expected file1
1192 Passed: Did not find dir2
1193 Passed: Did not find dir2\file1
1194 Passed: Found expected dir1\file1
1195 Passed: Found expected dir1\file2
1196 Passed: Found expected dir1\file3
1197 Passed: Found expected dir1\file1
1198 Passed: Found expected dir1\file2
1199 Passed: Found expected dir1\file3
1200 Passed: Found expected file1
1201 Passed: Found expected file2
1202 Passed: Found expected file3
1203 Passed: Did not find dir2
1204 Passed: Did not find dir2\file1
1205 Passed: Did not find dir2\file2
1206 Passed: Did not find dir2\file3
1207 Passed: Found expected testfile
1208 Passed: Found expected testfile
1209 Passed: Found expected testfile
1210 Passed: Found expected testfile
1211 Passed: Found expected testfile
1212 Passed: Found expected dir1\fred
1213 Passed: Found expected dir1\fred
1214 Passed: Found expected fred
1215 Passed: Found expected fred
1216 Passed: file size check on file1 [5]@or_broken@Skipping file size check on NT4
1217 Passed: file size check on file2 [8]@or_broken@Skipping file size check on NT4
1218 Passed: file size check on file3 [11]@or_broken@Skipping file size check on NT4
1219 Passed: file size check on file1_default [5]@or_broken@Skipping file size check on NT4
1220 Passed: file size check on file1_default2 [5]@or_broken@Skipping file size check on NT4
1221 Passed: file size check on file1_plus_eof [6]@or_broken@Skipping file size check on NT4
1222 Passed: file size check on file2_plus_eof [9]@or_broken@Skipping file size check on NT4
1223 Passed: file size check on file3_plus_eof [12]@or_broken@Skipping file size check on NT4
1224 Passed: file size check on file12_plus_eof [14]@or_broken@Skipping file size check on NT4
1225 Passed: file size check on file12_no_eof [13]@or_broken@Skipping file size check on NT4
1226 Passed: file size check on file12_eof2 [14]@or_broken@Skipping file size check on NT4
1227 Passed: file size check on file1_binary_srccopy [6]@or_broken@Skipping file size check on NT4
1228 Passed: file size check on file1_ascii_srccopy [5]@or_broken@Skipping file size check on NT4
1229 Passed: file size check on file123_default_copy [25]@or_broken@Skipping file size check on NT4
1230 Passed: file size check on file123_ascii_copy [25]@or_broken@Skipping file size check on NT4
1231 Passed: file size check on file123_binary_copy [27]@or_broken@Skipping file size check on NT4
1232 Passed: file size check on file123_mixed_copy1 [26]@or_broken@Skipping file size check on NT4
1233 Passed: file size check on file123_mixed_copy2 [27]@or_broken@Skipping file size check on NT4
1234 Passed: file size check on file123_mixed_copy3 [26]@or_broken@Skipping file size check on NT4
1235 Passed: file size check on file123_mixed_copy4 [25]@or_broken@Skipping file size check on NT4
1236 Passed: file size check on file123_mixed_copy5 [28]@or_broken@Skipping file size check on NT4
1237 Passed: file size check on file123_mixed_copy6 [19]@or_broken@Skipping file size check on NT4
1238 Passed: file size check on file123_mixed_copy7 [6]@or_broken@Skipping file size check on NT4
1239 Passed: file size check on file123_mixed_copy8 [7]@or_broken@Skipping file size check on NT4
1240 Passed: errorlevel invalid check 1
1241 Passed: Did not find dir1\file1
1242 Passed: errorlevel invalid check 2
1243 Passed: errorlevel invalid check 3
1244 ------------ Testing setlocal/endlocal ------------
1245 --- enable/disable extensions
1246 @todo_wine@ErrLev:@space@
1249 @todo_wine@ErrLev:@space@@or_broken@ErrLev: 0
1251 --- setlocal with corresponding endlocal
1254 @drive@@path@foobar\foobar2
1259 --- setlocal with no corresponding endlocal
1262 @drive@@path@foobar\foobar2
1265 --- setlocal within same batch program
1278 --- Mismatched set and end locals
1279 --- Extra setlocal in called batch
1282 @drive@@path@foobar\foodir3
1285 @drive@@path@foobar\foodir2
1288 --- Extra endlocal in called batch
1291 @drive@@path@foobar\foodir2
1293 @drive@@path@foobar\foodir2
1296 @drive@@path@foobar\foodir2
1299 --- endlocal in called function rather than batch pgm is ineffective
1308 ------------ Testing Errorlevel ------------
1311 errorlevel just right, good
1312 errorlevel with leading zero just right, good
1313 errorlevel with negative number OK
1314 abc0def@or_broken@abc1def
1315 errorlevel zero, good@or_broken@errorlevel nonzero, bad
1318 ------------ Testing GOTO ------------
1319 goto with no leading space worked
1320 goto with colon and no leading space worked
1321 goto with a leading space worked
1322 goto with a leading tab worked
1323 goto with a following space worked
1324 goto with following amphersands worked
1325 goto with redirections worked
1326 Ignoring double colons worked
1327 label with mixed whitespace and no echo worked
1328 Correctly ignored trailing information
1329 ------------ Testing PATH ------------
1333 ------------ Testing combined CALLs/GOTOs ------------