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
254 ------------ Testing variable expansion ------------
255 ~dp0 should be directory containing batch file
258 CD value @pwd@@or_broken@CD value@space@
274 ------------ Testing variable substrings ------------
282 ''@or_broken@'qwerty'
284 ------------ Testing variable substitution ------------
292 @pwd@\C D@or_broken@%~ff
293 @pwd@\E@or_broken@%~ff
296 @path@@or_broken@%~pd
297 @path@@or_broken@%~pd
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@''
308 '--a------'@or_broken@'%~ai'
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@''
349 ------------ Testing variable delayed expansion ------------
350 --- default mode (load-time expansion)
355 --- runtime (delayed) expansion mode
357 @todo_wine@foo@or_broken@!WINE_FOO!
359 @todo_wine@bar@or_broken@foo
364 --- using /V cmd flag
366 @todo_wine@foo@or_broken@!WINE_FOO!
369 ------------ Testing conditional execution ------------
370 --- unconditional ampersand
375 --- on success conditional and
376 @todo_wine@foo3 not created
379 --- on failure conditional or
382 @todo_wine@------------ Testing cd ------------
384 Current dir: @pwd@\foobar@or_broken@Current dir:@space@
400 ------------ Testing type ------------
402 @pwd@>type foobaz@space@
405 @pwd@>echo ---@space@
413 ------------ Testing NUL ------------
419 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
420 Passed: file size check on b.b [8]@or_broken@Skipping file size check on NT4
421 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
422 Passed: file size check on b.b [8]@or_broken@Skipping file size check on NT4
423 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
424 Passed: file size check on subdir\a.a [8]@or_broken@Skipping file size check on NT4
425 ------------ Testing if/else ------------
426 --- if/else should work with blocks
429 if seems not to detect /c as parameter
430 --- case sensitivity with and without /i option
431 if seems to default to case sensitivity
434 --- string comparisons
447 --- comparison operators
449 LSS string can be used as operand for LSS comparison
450 floats are handled as strings
451 numbers in quotes are handled as strings
452 negative numbers as well@or_broken@NT4
453 if /i seems to work for LSS
464 b LSS B@or_broken@NT4
465 a LSS B@or_broken@NT4
484 b LEQ B@or_broken@NT4
486 a LEQ B@or_broken@NT4
542 negative numbers handled
543 negative numbers handled
545 also in negative form
547 also in negative form
571 string/hexa compare ok
572 string/hexa compare ok
601 ------ for numbers and stringified numbers
602 strings and integers not equal
603 strings and integers not equal
606 '1' GEQ 1@or_broken@NT4
611 non NT4@or_broken@1 GEQ '1'
618 ------------ Testing for ------------
677 Plain directory enumeration
678 Plain directory enumeration from provided root
680 File enumeration from provided root
682 Mixed enumeration from provided root
683 With duplicates enumeration
684 Strip missing wildcards, keep unwildcarded names
719 ------ individual operations
721 WINE_foo correctly -1
724 WINE_foo correctly 10
727 WINE_foo correctly -4
731 WINE_foo correctly -2
734 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 1073741824 [0]
735 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly -1073741824 [0]
736 WINE_foo correctly -4
740 WINE_foo correctly -1
741 WINE_foo correctly -3
757 ------ precedence and grouping
758 WINE_foo correctly 10
759 WINE_foo correctly 18@or_broken@ERROR: WINE_foo incorrectly [18]
760 WINE_foo correctly 2@or_broken@ERROR: WINE_foo incorrectly 0 [2]
761 WINE_foo correctly 2@or_broken@ERROR: WINE_foo incorrectly [2]
762 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 4 [0]
763 WINE_foo correctly 4@or_broken@ERROR: WINE_foo incorrectly [4]
764 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly [3]
765 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly [3]
766 ------ octal and hexadecimal
767 WINE_foo correctly 18
768 WINE_foo correctly 18
769 WINE_foo correctly 15
772 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
773 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
774 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
775 WINE_bar correctly 4@or_broken@ERROR: WINE_bar incorrectly [4]
776 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
777 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
778 WINE_baz correctly 4@or_broken@ERROR: WINE_baz incorrectly [4]
779 WINE_foo correctly 9@or_broken@ERROR: WINE_foo incorrectly 3 [9]
780 WINE_bar correctly 9@or_broken@ERROR: WINE_bar incorrectly 3 [9]
784 WINE_foo correctly -7@or_broken@ERROR: WINE_foo incorrectly 4 [-7]
785 WINE_bar correctly -7@or_broken@ERROR: WINE_bar incorrectly 4 [-7]
786 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly -7 [-1]
787 WINE_bar correctly -1@or_broken@ERROR: WINE_bar incorrectly -7 [-1]
788 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
789 WINE_bar correctly 1@or_broken@ERROR: WINE_bar incorrectly [1]
790 WINE_foo correctly 4@or_broken@ERROR: WINE_foo incorrectly 1 [4]
791 WINE_bar correctly 4@or_broken@ERROR: WINE_bar incorrectly 1 [4]
792 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 4 [1]
793 WINE_bar correctly 1@or_broken@ERROR: WINE_bar incorrectly 4 [1]
794 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 1 [0]
795 WINE_bar correctly 0@or_broken@ERROR: WINE_bar incorrectly 1 [0]
796 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
797 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly [7]
798 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
799 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly [7]
800 WINE_foo correctly 19@or_broken@ERROR: WINE_foo incorrectly 0 [19]
801 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
833 WINE_foo correctly 18
835 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly 4 [7]
836 --- whitespace are ignored between double char operators
837 WINE_foo correctly 10@or_broken@ERROR: WINE_foo incorrectly 4 [10]
838 WINE_bar correctly 50@or_broken@ERROR: WINE_bar incorrectly 5 [50]
839 WINE_foo correctly 772@or_broken@ERROR: WINE_foo incorrectly 4 [772]
840 WINE_bar correctly 7720@or_broken@ERROR: WINE_bar incorrectly 5 [7720]
841 --- invalid operator sequence
844 ----- negative prefix
845 WINE_foo correctly -1
846 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
851 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
853 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly -5 [3]
854 ----- assignment tests involving the end destination
855 WINE_foo correctly 11@or_broken@ERROR: WINE_foo incorrectly 3 [11]
856 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 2 [6]
857 WINE_bar correctly 9@or_broken@ERROR: WINE_bar incorrectly [9]
858 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 2 [6]
859 WINE_bar correctly 10@or_broken@ERROR: WINE_bar incorrectly [10]
860 WINE_baz correctly 7@or_broken@ERROR: WINE_baz incorrectly [7]
861 WINE_foo correctly 7@or_broken@ERROR: WINE_foo incorrectly 2 [7]
862 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly 2 [7]
863 ----- equal precedence on stack
864 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 0 [1]
866 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
867 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
868 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
869 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly [-1]
870 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly [-1]
871 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
872 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
873 WINE_foo correctly -1
874 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly -1 [0]
876 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 0 [1]
877 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly 0 [-1]
878 WINE_foo correctly 25@or_broken@ERROR: WINE_foo incorrectly 20 [25]
879 WINE_foo correctly 20
883 WINE_foo correctly 8@or_broken@ERROR: WINE_foo incorrectly 4 [8]
884 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 5 [6]
885 WINE_bar correctly 6@or_broken@ERROR: WINE_bar incorrectly 5 [6]
887 ------ string argument
889 a@or_broken@no output
891 a@or_broken@no output
893 a@or_broken@no output
895 a@or_broken@no output
897 a@or_broken@no output
898 ------ fileset argument
899 --------- basic blank handling
906 --------- multi-line with empty lines
910 --------- multiple files
921 ------ command argument
922 Passed1@or_broken@Missing functionality - Broken1
923 Passed2@or_broken@Missing functionality - Broken2
924 Passed3@or_broken@Missing functionality - Broken3
926 and@or_broken@Broken NT4 functionality1
927 Line@or_broken@Broken NT4 functionality2
928 Line@or_broken@Broken NT4 functionality3
949 ------ tokens= option
950 h=%h i=a j=%j k=%k l=%l m=%m o=%o
951 h=%h i=b j=%j k=%k l=%l m=%m o=%o
952 h=%h i=a j=c k=e l=f m=g o=%o
953 h=%h i=a j=e k=f g l=%l m=%m o=%o
954 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
955 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
956 h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o
957 h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o
958 h=%h i=a j=b k= l= m=%m n=%n o=%o
959 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
960 h=%h i=a j=b k= l= m= n=%n o=%o
961 h=%h i=a j=b k= l= m= n= o=%o
962 u=a v=b w=c x=d y=e z=f A=%A a=%a
963 @todo_wine@U=a V=b W=c X=d Y=e Z=f A=%A a=m
964 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
965 h=%h i=e j=%j k=%k l=%l m=%m o=%o
966 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
967 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
968 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
969 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
970 ------------ Testing del /a ------------
971 not-r.test not found after delete, good
972 r.test found before delete, good
973 r.test not found after delete, good
974 ------------ Testing del /q ------------
975 del /q * succeeded on file1
976 del /q * succeeded on file2.dat
977 ------------ Testing del /s ------------
978 ------------ Testing rename ------------
979 --- ren and rename are synonymous
985 --- rename read-only files
986 read-only file renamed
987 --- rename directories
989 read-only dir renamed
990 --- rename in other directory
991 rename impossible in other directory
992 original file still present
993 ------------ Testing move ------------
996 @todo_wine@file move with overwrite succeeded@or_broken@file overwrite impossible!
997 @todo_wine@bar@or_broken@baz
998 read-only files are moveable
999 file moved in subdirectory
1000 @todo_wine@moving a file to itself is a no-op@or_broken@moving a file to itself should be a no-op!
1001 @todo_wine@ErrorLevel: 0@or_broken@ErrorLevel: 1
1003 simple directory move succeeded
1004 moving a directory to itself gives error; errlevel 1
1005 ------ dir in dir move
1009 ------------ Testing mkdir ------------
1010 --- md and mkdir are synonymous
1013 --- creating an already existing directory/file must fail
1016 --- multilevel path creation
1025 --- trailing backslashes
1030 mkdir ? gives errorlevel 1
1031 mkdir ?\foo gives errorlevel 1
1032 mkdir foo\? gives errorlevel 1
1034 mkdir foo\bar\? gives errorlevel 1
1036 --- multiple directories at once
1043 mkdir foo\* errorlevel 1
1045 ------------ Testing rmdir ------------
1054 non-empty dir not removed
1056 non-empty dir not removed
1057 recursive rmdir succeeded
1058 recursive rmdir succeeded
1063 ------------ Testing pushd/popd ------------
1065 --- popd is no-op when dir stack is empty
1067 --- pushing non-existing dir
1078 ------------ Testing attrib ------------
1079 A @pwd@\foobar\foo@or_broken@A @pwd@\foobar\foo@or_broken@A I @pwd@\foobar\foo
1080 --- read-only attribute
1081 A R @pwd@\foobar\foo@or_broken@A R @pwd@\foobar\foo@or_broken@A R I @pwd@\foobar\foo
1083 foo original contents
1084 Read-only file not deleted
1085 Read-only file forcibly deleted
1086 --- recursive behaviour
1087 A @pwd@\foobar\baz\level2@or_broken@A @pwd@\foobar\baz\level2@or_broken@A I @pwd@\foobar\baz\level2
1088 A R @pwd@\foobar\level1@or_broken@A R @pwd@\foobar\level1@or_broken@A R I @pwd@\foobar\level1
1089 A R @pwd@\foobar\baz\level2@or_broken@A R @pwd@\foobar\baz\level2@or_broken@A R I @pwd@\foobar\baz\level2
1090 A @pwd@\foobar\bar@or_broken@A @pwd@\foobar\bar@or_broken@A I @pwd@\foobar\bar
1091 --- folders processing
1092 @pwd@\foobar@or_broken@ @pwd@\foobar@or_broken@ I @pwd@\foobar
1093 @todo_wine@ R @pwd@\foobar\baz@or_broken@ R @pwd@\foobar\baz@or_broken@ @pwd@\foobar\baz@or_broken@ R I @pwd@\foobar\baz
1094 A @pwd@\foobar\baz\toto@or_broken@A @pwd@\foobar\baz\toto@or_broken@A I @pwd@\foobar\baz\toto
1097 file created in read-only dir
1098 ------------ Testing assoc ------------
1099 --- setting association
1105 --- resetting association
1109 ------------ Testing ftype ------------
1110 --- setting association
1117 --- resetting association
1118 @todo_wine@original value@or_broken@buggyXP@or_broken@!WINE_FOO!
1119 ------------ Testing CALL ------------
1129 --- internal routines
1140 Should expand foobaz
1151 ------------ Testing SHIFT ------------
1152 'p1' 'p2' 'p3' 'p4' 'p5'
1153 'p2' 'p3' 'p4' 'p5' ''
1154 'p3' 'p4' 'p5' '' ''
1158 ------------ Testing cmd invocation ------------
1159 --- a batch file can delete itself
1160 file correctly deleted
1161 --- a batch file can alter itself
1163 ---------- Testing copy
1164 Passed: Found expected dummy.file
1165 Passed: Found expected dir1\file1
1166 Passed: Found expected dir1\file1
1167 Passed: Found expected dir1\file99
1168 Passed: Found expected file1
1169 Passed: Did not find dir2
1170 Passed: Did not find dir2\file1
1171 Passed: Found expected dir1\file1
1172 Passed: Found expected dir1\file2
1173 Passed: Found expected dir1\file3
1174 Passed: Found expected dir1\file1
1175 Passed: Found expected dir1\file2
1176 Passed: Found expected dir1\file3
1177 Passed: Found expected file1
1178 Passed: Found expected file2
1179 Passed: Found expected file3
1180 Passed: Did not find dir2
1181 Passed: Did not find dir2\file1
1182 Passed: Did not find dir2\file2
1183 Passed: Did not find dir2\file3
1184 Passed: Found expected testfile
1185 Passed: Found expected testfile
1186 Passed: Found expected testfile
1187 Passed: Found expected testfile
1188 Passed: Found expected testfile
1189 Passed: Found expected dir1\fred
1190 Passed: Found expected dir1\fred
1191 Passed: Found expected fred
1192 Passed: Found expected fred
1193 Passed: file size check on file1 [5]@or_broken@Skipping file size check on NT4
1194 Passed: file size check on file2 [8]@or_broken@Skipping file size check on NT4
1195 Passed: file size check on file3 [11]@or_broken@Skipping file size check on NT4
1196 Passed: file size check on file1_default [5]@or_broken@Skipping file size check on NT4
1197 Passed: file size check on file1_default2 [5]@or_broken@Skipping file size check on NT4
1198 Passed: file size check on file1_plus_eof [6]@or_broken@Skipping file size check on NT4
1199 Passed: file size check on file2_plus_eof [9]@or_broken@Skipping file size check on NT4
1200 Passed: file size check on file3_plus_eof [12]@or_broken@Skipping file size check on NT4
1201 Passed: file size check on file12_plus_eof [14]@or_broken@Skipping file size check on NT4
1202 Passed: file size check on file12_no_eof [13]@or_broken@Skipping file size check on NT4
1203 Passed: file size check on file12_eof2 [14]@or_broken@Skipping file size check on NT4
1204 Passed: file size check on file1_binary_srccopy [6]@or_broken@Skipping file size check on NT4
1205 Passed: file size check on file1_ascii_srccopy [5]@or_broken@Skipping file size check on NT4
1206 Passed: file size check on file123_default_copy [25]@or_broken@Skipping file size check on NT4
1207 Passed: file size check on file123_ascii_copy [25]@or_broken@Skipping file size check on NT4
1208 Passed: file size check on file123_binary_copy [27]@or_broken@Skipping file size check on NT4
1209 Passed: file size check on file123_mixed_copy1 [26]@or_broken@Skipping file size check on NT4
1210 Passed: file size check on file123_mixed_copy2 [27]@or_broken@Skipping file size check on NT4
1211 Passed: file size check on file123_mixed_copy3 [26]@or_broken@Skipping file size check on NT4
1212 Passed: file size check on file123_mixed_copy4 [25]@or_broken@Skipping file size check on NT4
1213 Passed: file size check on file123_mixed_copy5 [28]@or_broken@Skipping file size check on NT4
1214 Passed: file size check on file123_mixed_copy6 [19]@or_broken@Skipping file size check on NT4
1215 Passed: file size check on file123_mixed_copy7 [6]@or_broken@Skipping file size check on NT4
1216 Passed: file size check on file123_mixed_copy8 [7]@or_broken@Skipping file size check on NT4
1217 Passed: errorlevel invalid check 1
1218 Passed: Did not find dir1\file1
1219 Passed: errorlevel invalid check 2
1220 Passed: errorlevel invalid check 3
1221 ------------ Testing setlocal/endlocal ------------
1222 --- enable/disable extensions
1223 @todo_wine@ErrLev:@space@
1226 @todo_wine@ErrLev:@space@@or_broken@ErrLev: 0
1228 --- setlocal with corresponding endlocal
1231 @pwd@\foobar\foobar2
1236 --- setlocal with no corresponding endlocal
1239 @pwd@\foobar\foobar2
1242 --- setlocal within same batch program
1255 --- Mismatched set and end locals
1256 --- Extra setlocal in called batch
1259 @pwd@\foobar\foodir3
1262 @pwd@\foobar\foodir2
1265 --- Extra endlocal in called batch
1268 @pwd@\foobar\foodir2
1270 @pwd@\foobar\foodir2
1273 @pwd@\foobar\foodir2
1276 --- endlocal in called function rather than batch pgm is ineffective
1285 ------------ Testing Errorlevel ------------
1288 errorlevel just right, good
1289 errorlevel with leading zero just right, good
1290 errorlevel with negative number OK
1291 abc0def@or_broken@abc1def
1292 errorlevel zero, good@or_broken@errorlevel nonzero, bad
1295 ------------ Testing GOTO ------------
1296 goto with no leading space worked
1297 goto with a leading space worked
1298 goto with a leading tab worked
1299 goto with a following space worked
1300 ------------ Testing PATH ------------
1304 ------------ Testing combined CALLs/GOTOs ------------