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@
54 @pwd@>echo /word@space@
57 @pwd@>echo off now@space@
60 @pwd@>echo word@space@@space@
63 @pwd@>echo word@space@@space@@space@
66 @pwd@>echo word@space@
69 @pwd@>echo@tab@word@space@
72 @pwd@>echo@tab@word@space@@tab@@space@
75 @pwd@>echo@tab@word@tab@@space@@space@
78 @pwd@>echo word@space@
81 @pwd@>echo@space@@tab@word@space@
84 @pwd@>echo@space@@space@@tab@word@space@
87 @pwd@>echo@tab@@tab@word@space@
90 @pwd@>echo @tab@ on @space@@space@
91 --- @ with chains and brackets
93 @todo_wine@@pwd@>(echo the @ character chains until && ) && echo and can hide brackets || () ||@space@
94 @todo_wine@the @ character chains until
95 @todo_wine@we leave the current depth
96 @todo_wine@and can hide brackets
101 ------------ Testing 'echo' [OFF] ------------
130 ------------ Testing mixed echo modes ------------
138 @todo_wine@@pwd@>if 1 == 1 echo foo@space@
141 @todo_wine@@pwd@>if 1 == 1@space@
145 ------------ Testing parameterization ------------
153 'a[b]{c}(d)e', '', ''
159 ------------ Testing rem ------------
161 @pwd@>rem Hello@space@
163 @pwd@>rem Hello@space@
165 @pwd@>rem Hello || foo@space@
167 @pwd@>rem echo lol@space@
169 @pwd@>rem echo foo & echo bar@space@
171 @pwd@>rem @tab@ Hello@space@
173 @pwd@>rem@tab@ Hello@space@
175 @pwd@>rem@tab@echo foo & echo bar@space@
176 ------------ Testing redirection operators ------------
177 --- stdout redirection
183 foo7@space@@or_broken@foo@tab@
184 foo9@space@@or_broken@foo@tab@
205 @todo_wine@foo7@space@@space@@or_broken@not supported@space@
206 @todo_wine@foo@or_broken@not supported
207 --- redirections within IF statements
213 file does not exist, ok
226 ------------ Testing circumflex escape character ------------
252 ------------ Testing chains ------------
387 b3:[b2:[b1,b2],b3]@or_broken@b3:[b2:,b3]
388 c4:[c3:[c2:[c1,c2],c3],c4]@or_broken@c4:[c3:[c2:,c3],c4]@or_broken@c4:[c3:,c4]
390 e3:[e2:[e1,e2],e3]@or_broken@e3:[e2:,e3]
391 f4:[f3:[f2:[f1,f2],f3],f4]@or_broken@f4:[f3:[f2:,f3],f4]@or_broken@f4:[f3:,f4]
404 --- chain else (if true)
433 --- chain else (if false)
446 ------------ Testing 'set' ------------
449 WINE_FOOBAR not defined
459 WINE_FOOBAR not defined
466 set "WINE_FOO=bar" should not include the quotes in the variable value
482 ------------ Testing 'choice' ------------
483 @todo_wine@Example message [A,B,C]?A@or_broken@choice unavailable
484 @todo_wine@1@or_broken@9009
485 @todo_wine@Example message [A,B,C]?B@or_broken@choice unavailable
486 @todo_wine@2@or_broken@9009
487 @todo_wine@[D,E,F]?F@or_broken@choice unavailable
488 @todo_wine@3@or_broken@9009
489 @todo_wine@[A,B,C,X,Y,Z]?Y@or_broken@choice unavailable
490 @todo_wine@5@or_broken@9009
491 @todo_wine@A@or_broken@choice unavailable
492 @todo_wine@1@or_broken@9009
493 @todo_wine@[a,b,c,A,B,C]?A@or_broken@choice unavailable
494 @todo_wine@4@or_broken@9009
495 @todo_wine@255@or_broken@9009
496 ------------ Testing variable expansion ------------
497 ~p0 should be path containing batch file
500 ~dp0 should be directory containing batch file
503 CD value @pwd@@or_broken@CD value@space@
519 ------------ Testing variable substrings ------------
527 ''@or_broken@'qwerty'
529 ------------ Testing variable substitution ------------
537 @drive@@path@C D@or_broken@%~ff
538 @drive@@path@E@or_broken@%~ff
541 @path@@or_broken@%~pd
542 @path@@or_broken@%~pd
548 '@drive@@shortpath@R S'@or_broken@''
549 '@drive@@shortpath@T'@or_broken@''
550 '@drive@@shortpath@ABCDEFGHIJK.LMNOP'@or_broken@''
553 '--a------'@or_broken@'--a--------'@or_broken@'--a--c---'@or_broken@'%~ai'
584 '@drive@@shortpath@R S'@or_broken@''
585 '@drive@@shortpath@T'@or_broken@''
586 '@drive@@shortpath@ABCDEFGHIJK.LMNOP'@or_broken@''
595 ------------ Testing parameter zero ------------
597 [:func] [@drive@] [@path@] [test] [.cmd] [@drive@@shortpath@test.cmd]
598 ------------ Testing variable delayed expansion ------------
599 --- default mode (load-time expansion)
604 --- runtime (delayed) expansion mode
606 foo@or_broken@!WINE_FOO!
613 --- using /V cmd flag
615 foo@or_broken@!WINE_FOO!
618 ------------ Testing conditional execution ------------
619 --- unconditional ampersand
624 --- on success conditional and
625 @todo_wine@foo3 not created
628 --- on failure conditional or
631 @todo_wine@------------ Testing cd ------------
633 Current dir: @drive@@path@foobar@or_broken@Current dir:@space@
642 @drive@@path@foobar\bar bak
643 @drive@@path@foobar\bar bak
644 @drive@@path@foobar\bar bak
645 @drive@@path@foobar\bar bak
646 @drive@@path@foobar\bar bak
649 ------------ Testing type ------------
651 @pwd@>type foobaz@space@
654 @pwd@>echo ---@space@
662 ------------ Testing NUL ------------
668 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
669 Passed: file size check on b.b [8]@or_broken@Skipping file size check on NT4
670 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
671 Passed: file size check on b.b [8]@or_broken@Skipping file size check on NT4
672 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
673 Passed: file size check on subdir\a.a [8]@or_broken@Skipping file size check on NT4
674 ------------ Testing if/else ------------
675 --- if/else should work with blocks
678 if seems not to detect /c as parameter
679 else if seems to work
680 else if seems to work
681 else if seems to work
683 expected post-embedded if
684 --- case sensitivity with and without /i option
685 if seems to default to case sensitivity
688 --- string comparisons
701 --- comparison operators
703 LSS string can be used as operand for LSS comparison
704 floats are handled as strings
705 numbers in quotes are handled as strings
706 negative numbers as well@or_broken@NT4
707 if /i seems to work for LSS
718 b LSS B@or_broken@NT4
719 a LSS B@or_broken@NT4
738 b LEQ B@or_broken@NT4
740 a LEQ B@or_broken@NT4
795 ------------ Testing if/exist ------------
797 exist explicit unknown file works
798 exist explicit in subdir works
799 exist simple wildcard works
801 negate exist wildcard works
802 exist wildcard bad subdir broken works
804 exist subdir with . ok
805 exist subdir with \ ok
806 exist subdir with \ and quotes ok
808 negative numbers handled
809 negative numbers handled
811 also in negative form
813 also in negative form
837 string/hexa compare ok
838 string/hexa compare ok
867 ------ for numbers and stringified numbers
868 strings and integers not equal
869 strings and integers not equal
872 '1' GEQ 1@or_broken@NT4
877 non NT4@or_broken@1 GEQ '1'
884 --- unconditional ampersand after if one line
897 ------------ Testing for ------------
948 --- wildcards in subdirs
960 Plain directory enumeration
961 Plain directory enumeration from provided root
963 File enumeration from provided root
965 Mixed enumeration from provided root
966 With duplicates enumeration
967 Strip missing wildcards, keep unwildcarded names
969 --- Complex wildcards unix and windows slash
970 Windows slashes, valid path
971 ASIS: foobar\baz\bazbaz
972 WC : foobar\baz\bazbaz
973 Windows slashes, invalid path
974 ASIS: foobar\jim\bazbaz
975 Unix slashes, valid path
976 ASIS: foobar/baz/bazbaz
978 Unix slashes, invalid path
979 ASIS: foobar/jim/bazbaz
1013 --- rems inside for loops
1014 --- ifs inside for loops
1028 ------ individual operations
1029 WINE_foo correctly 3
1030 WINE_foo correctly -1
1031 WINE_foo correctly 3
1032 WINE_foo correctly 6
1033 WINE_foo correctly 10
1034 WINE_foo correctly 4
1035 WINE_foo correctly 4
1036 WINE_foo correctly -4
1037 WINE_foo correctly 0
1038 WINE_foo correctly 2
1039 WINE_foo correctly 2
1040 WINE_foo correctly -2
1041 WINE_foo correctly 1
1042 WINE_foo correctly 4
1043 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 1073741824 [0]
1044 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly -1073741824 [0]
1045 WINE_foo correctly -4
1046 WINE_foo correctly 9
1047 WINE_foo correctly 2
1048 WINE_foo correctly 0
1049 WINE_foo correctly -1
1050 WINE_foo correctly -3
1051 WINE_foo correctly 0
1052 WINE_foo correctly 1
1053 WINE_foo correctly 1
1054 WINE_foo correctly 4
1055 WINE_foo correctly 1
1056 WINE_foo correctly 5
1057 WINE_foo correctly 5
1058 WINE_foo correctly 7
1059 WINE_foo correctly 5
1060 WINE_foo correctly 5
1061 WINE_foo correctly 5
1062 WINE_foo correctly 4
1063 WINE_foo correctly 6
1064 WINE_foo correctly 1
1065 WINE_foo correctly 4
1066 ------ precedence and grouping
1067 WINE_foo correctly 10
1068 WINE_foo correctly 18@or_broken@ERROR: WINE_foo incorrectly [18]
1069 WINE_foo correctly 2@or_broken@ERROR: WINE_foo incorrectly 0 [2]
1070 WINE_foo correctly 2@or_broken@ERROR: WINE_foo incorrectly [2]
1071 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 4 [0]
1072 WINE_foo correctly 4@or_broken@ERROR: WINE_foo incorrectly [4]
1073 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly [3]
1074 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly [3]
1075 ------ octal and hexadecimal
1076 WINE_foo correctly 18
1077 WINE_foo correctly 18
1078 WINE_foo correctly 15
1079 WINE_foo correctly 3
1081 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
1082 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
1083 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
1084 WINE_bar correctly 4@or_broken@ERROR: WINE_bar incorrectly [4]
1085 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
1086 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
1087 WINE_baz correctly 4@or_broken@ERROR: WINE_baz incorrectly [4]
1088 WINE_foo correctly 9@or_broken@ERROR: WINE_foo incorrectly 3 [9]
1089 WINE_bar correctly 9@or_broken@ERROR: WINE_bar incorrectly 3 [9]
1090 WINE_foo correctly 0
1091 WINE_foo correctly 4
1092 WINE_bar correctly 4
1093 WINE_foo correctly -7@or_broken@ERROR: WINE_foo incorrectly 4 [-7]
1094 WINE_bar correctly -7@or_broken@ERROR: WINE_bar incorrectly 4 [-7]
1095 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly -7 [-1]
1096 WINE_bar correctly -1@or_broken@ERROR: WINE_bar incorrectly -7 [-1]
1097 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
1098 WINE_bar correctly 1@or_broken@ERROR: WINE_bar incorrectly [1]
1099 WINE_foo correctly 4@or_broken@ERROR: WINE_foo incorrectly 1 [4]
1100 WINE_bar correctly 4@or_broken@ERROR: WINE_bar incorrectly 1 [4]
1101 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 4 [1]
1102 WINE_bar correctly 1@or_broken@ERROR: WINE_bar incorrectly 4 [1]
1103 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 1 [0]
1104 WINE_bar correctly 0@or_broken@ERROR: WINE_bar incorrectly 1 [0]
1105 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
1106 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly [7]
1107 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
1108 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly [7]
1109 WINE_foo correctly 19@or_broken@ERROR: WINE_foo incorrectly 0 [19]
1110 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
1111 WINE_baz correctly 4
1113 WINE_foo correctly 1
1114 WINE_foo correctly 1
1115 WINE_foo correctly 1
1116 WINE_bar correctly 2
1117 WINE_foo correctly 1
1118 WINE_bar correctly 2
1119 WINE_foo correctly 1
1120 WINE_bar correctly 2
1121 WINE_foo correctly 1
1122 WINE_bar correctly 2
1123 WINE_foo correctly 1
1124 WINE_bar correctly 2
1125 WINE_baz correctly 3
1126 WINE_foo correctly 1
1127 WINE_bar correctly 2
1128 WINE_baz correctly 3
1129 WINE_foo correctly 1
1130 WINE_bar correctly 2
1131 WINE_baz correctly 3
1132 WINE_foo correctly 1
1133 WINE_bar correctly 2
1134 WINE_baz correctly 3
1135 WINE_foo correctly 1
1136 WINE_bar correctly 2
1137 WINE_baz correctly 3
1138 WINE_foo correctly 1
1139 WINE_foo correctly 1
1140 WINE_bar correctly 5
1141 WINE_baz correctly 2
1142 WINE_foo correctly 18
1143 WINE_foo correctly 3
1144 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly 4 [7]
1145 --- whitespace are ignored between double char operators
1146 WINE_foo correctly 10@or_broken@ERROR: WINE_foo incorrectly 4 [10]
1147 WINE_bar correctly 50@or_broken@ERROR: WINE_bar incorrectly 5 [50]
1148 WINE_foo correctly 772@or_broken@ERROR: WINE_foo incorrectly 4 [772]
1149 WINE_bar correctly 7720@or_broken@ERROR: WINE_bar incorrectly 5 [7720]
1150 --- invalid operator sequence
1153 ----- negative prefix
1154 WINE_foo correctly -1
1155 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
1156 WINE_foo correctly 6
1157 WINE_foo correctly 0
1158 WINE_foo correctly 6
1159 WINE_foo correctly 2
1160 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
1161 WINE_foo correctly 5
1162 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly -5 [3]
1163 ----- assignment tests involving the end destination
1164 WINE_foo correctly 11@or_broken@ERROR: WINE_foo incorrectly 3 [11]
1165 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 2 [6]
1166 WINE_bar correctly 9@or_broken@ERROR: WINE_bar incorrectly [9]
1167 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 2 [6]
1168 WINE_bar correctly 10@or_broken@ERROR: WINE_bar incorrectly [10]
1169 WINE_baz correctly 7@or_broken@ERROR: WINE_baz incorrectly [7]
1170 WINE_foo correctly 7@or_broken@ERROR: WINE_foo incorrectly 2 [7]
1171 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly 2 [7]
1172 ----- equal precedence on stack
1173 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 0 [1]
1174 WINE_foo correctly 0
1175 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
1176 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
1177 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
1178 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly [-1]
1179 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly [-1]
1180 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
1181 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
1182 WINE_foo correctly -1
1183 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly -1 [0]
1184 WINE_foo correctly 0
1185 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 0 [1]
1186 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly 0 [-1]
1187 WINE_foo correctly 25@or_broken@ERROR: WINE_foo incorrectly 20 [25]
1188 WINE_foo correctly 20
1189 WINE_foo correctly 1
1190 WINE_foo correctly 4
1191 WINE_foo correctly 7
1192 WINE_foo correctly 8@or_broken@ERROR: WINE_foo incorrectly 4 [8]
1193 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 5 [6]
1194 WINE_bar correctly 6@or_broken@ERROR: WINE_bar incorrectly 5 [6]
1196 ------ string argument
1199 a@or_broken@no output
1200 XaX@or_broken@no output
1202 a@or_broken@no output
1204 a@or_broken@no output
1206 a@or_broken@no output
1208 a@or_broken@no output
1209 ------ fileset argument
1210 --------- basic blank handling
1217 --------- multi-line with empty lines
1221 --------- multiple files
1232 ------ command argument
1233 Passed1@or_broken@Missing functionality - Broken1
1234 Passed2@or_broken@Missing functionality - Broken2
1235 Passed3@or_broken@Missing functionality - Broken3
1236 Passed4@or_broken@Missing functionality - Broken4
1237 Passed5@or_broken@Missing functionality - Broken5
1238 Passed6@or_broken@Missing functionality - Broken6
1239 Passed7@or_broken@Missing functionality - Broken7
1241 and@or_broken@Broken NT4 functionality1
1242 Line@or_broken@Broken NT4 functionality2
1243 Line@or_broken@Broken NT4 functionality3
1249 ------ delims option
1264 ------ tokens= option
1265 h=%h i=a j=%j k=%k l=%l m=%m o=%o
1266 h=%h i=b j=%j k=%k l=%l m=%m o=%o
1267 h=%h i=a j=c k=e l=f m=g o=%o
1268 h=%h i=a j=e k=f g l=%l m=%m o=%o
1269 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
1270 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
1271 h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o
1272 h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o
1273 h=%h i=a j=b k= l= m=%m n=%n o=%o
1274 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
1275 h=%h i=a j=b k= l= m= n=%n o=%o
1276 h=%h i=a j=b k= l= m= n= o=%o
1277 u=a v=b w=c x=d y=e z=f A=%A a=%a
1278 @todo_wine@U=a V=b W=c X=d Y=e Z=f A=%A a=m
1279 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
1280 h=%h i=e j=%j k=%k l=%l m=%m o=%o
1281 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
1282 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
1283 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
1284 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
1288 ------ parameter splitting
1289 :forFParameterSplittingFunc myparam1=myvalue1 myparam2=myparam2 mytest@space@@space@@space@
1290 :forFParameterSplittingFunc myparam1=myvalue1 myparam2=myparam2 mytest@space@@space@@space@
1294 ------------ Testing del ------------
1296 errorlevel is 0, good
1297 successfully deleted 'file'
1298 attempting to delete 'file', even though it is not present
1299 errorlevel is 0, good
1300 ------------ Testing del /a ------------
1301 not-r.test not found after delete, good
1302 r.test found before delete, good
1303 r.test not found after delete, good
1304 ------------ Testing del /q ------------
1305 del /q * succeeded on file1
1306 del /q * succeeded on file2.dat
1307 ------------ Testing del /s ------------
1308 ------------ Testing rename ------------
1309 --- ren and rename are synonymous
1315 --- rename read-only files
1316 read-only file renamed
1317 --- rename directories
1319 read-only dir renamed
1320 --- rename in other directory
1321 rename impossible in other directory
1322 original file still present
1323 ------------ Testing move ------------
1326 @todo_wine@file move with overwrite succeeded@or_broken@file overwrite impossible!
1327 @todo_wine@bar@or_broken@baz
1328 read-only files are moveable
1329 file moved in subdirectory
1330 moving a file to itself is a no-op@or_broken@moving a file to itself should be a no-op!
1331 ErrorLevel: 0@or_broken@ErrorLevel: 1
1333 simple directory move succeeded
1334 moving a directory to itself gives error; errlevel 1
1335 ------ dir in dir move
1339 ------------ Testing mkdir ------------
1340 --- md and mkdir are synonymous
1343 --- creating an already existing directory/file must fail
1346 --- multilevel path creation
1355 --- trailing backslashes
1360 mkdir ? gives errorlevel 1
1361 mkdir ?\foo gives errorlevel 1
1362 mkdir foo\? gives errorlevel 1
1364 mkdir foo\bar\? gives errorlevel 1
1366 --- multiple directories at once
1373 mkdir foo\* errorlevel 1
1375 ------------ Testing rmdir ------------
1384 non-empty dir not removed
1386 non-empty dir not removed
1387 recursive rmdir succeeded
1388 recursive rmdir succeeded
1393 ------------ Testing pushd/popd ------------
1395 --- popd is no-op when dir stack is empty
1397 --- pushing non-existing dir
1402 @drive@@path@foobar\baz
1408 ------------ Testing attrib ------------
1409 A@spaces@@drive@@path@foobar\foo@or_broken@A I@spaces@@drive@@path@foobar\foo
1410 --- read-only attribute
1411 A R@spaces@@drive@@path@foobar\foo@or_broken@A R I@spaces@@drive@@path@foobar\foo
1413 foo original contents
1414 Read-only file not deleted
1415 Read-only file forcibly deleted
1416 --- recursive behaviour
1417 A@spaces@@drive@@path@foobar\baz\level2@or_broken@A I@spaces@@drive@@path@foobar\baz\level2
1418 A R@spaces@@drive@@path@foobar\level1@or_broken@A R I@spaces@@drive@@path@foobar\level1
1419 A R@spaces@@drive@@path@foobar\baz\level2@or_broken@A R I@spaces@@drive@@path@foobar\baz\level2
1420 A@spaces@@drive@@path@foobar\bar@or_broken@A I@spaces@@drive@@path@foobar\bar
1421 --- folders processing
1422 @spaces@@drive@@path@foobar@or_broken@ I@spaces@@drive@@path@foobar
1423 @todo_wine@ R@spaces@@drive@@path@foobar\baz@or_broken@@spaces@@drive@@path@foobar\baz@or_broken@ R I@spaces@@drive@@path@foobar\baz
1424 A@spaces@@drive@@path@foobar\baz\toto@or_broken@A I@spaces@@drive@@path@foobar\baz\toto
1427 file created in read-only dir
1428 ------------ Testing assoc ------------
1429 --- setting association
1435 --- resetting association
1439 ------------ Testing ftype ------------
1440 --- setting association
1447 --- resetting association
1448 @todo_wine@original value@or_broken@buggyXP@or_broken@!WINE_FOO!
1449 ------------ Testing CALL ------------
1459 --- internal routines
1470 Should expand foobaz
1481 ------------ Testing SHIFT ------------
1482 'p1' 'p2' 'p3' 'p4' 'p5'
1483 'p2' 'p3' 'p4' 'p5' ''
1484 'p3' 'p4' 'p5' '' ''
1488 ------------ Testing cmd invocation ------------
1489 --- a batch file can delete itself
1490 file correctly deleted
1491 --- a batch file can alter itself
1493 ---------- Testing copy
1494 Passed: Found expected dummy.file
1495 Passed: Found expected dir1\file1
1496 Passed: Found expected dir1\file1
1497 Passed: Found expected dir1\file99
1498 Passed: Found expected file1
1499 Passed: Did not find dir2
1500 Passed: Did not find dir2\file1
1501 Passed: Found expected dir1\file1
1502 Passed: Found expected dir1\file2
1503 Passed: Found expected dir1\file3
1504 Passed: Found expected dir1\file1
1505 Passed: Found expected dir1\file2
1506 Passed: Found expected dir1\file3
1507 Passed: Found expected file1
1508 Passed: Found expected file2
1509 Passed: Found expected file3
1510 Passed: Did not find dir2
1511 Passed: Did not find dir2\file1
1512 Passed: Did not find dir2\file2
1513 Passed: Did not find dir2\file3
1514 Passed: Found expected testfile
1515 Passed: Found expected testfile
1516 Passed: Found expected testfile
1517 Passed: Found expected testfile
1518 Passed: Found expected testfile
1519 Passed: Found expected dir1\fred
1520 Passed: Found expected dir1\fred
1521 Passed: Found expected fred
1522 Passed: Found expected fred
1523 Passed: file size check on file1 [5]@or_broken@Skipping file size check on NT4
1524 Passed: file size check on file2 [8]@or_broken@Skipping file size check on NT4
1525 Passed: file size check on file3 [11]@or_broken@Skipping file size check on NT4
1526 Passed: file size check on file1_default [5]@or_broken@Skipping file size check on NT4
1527 Passed: file size check on file1_default2 [5]@or_broken@Skipping file size check on NT4
1528 Passed: file size check on file1_plus_eof [6]@or_broken@Skipping file size check on NT4
1529 Passed: file size check on file2_plus_eof [9]@or_broken@Skipping file size check on NT4
1530 Passed: file size check on file3_plus_eof [12]@or_broken@Skipping file size check on NT4
1531 Passed: file size check on file12_plus_eof [14]@or_broken@Skipping file size check on NT4
1532 Passed: file size check on file12_no_eof [13]@or_broken@Skipping file size check on NT4
1533 Passed: file size check on file12_eof2 [14]@or_broken@Skipping file size check on NT4
1534 Passed: file size check on file1 [24]@or_broken@Skipping file size check on NT4
1535 Passed: file size check on file2 [16]@or_broken@Skipping file size check on NT4
1536 Passed: file size check on file3 [13]@or_broken@Skipping file size check on NT4
1537 Passed: file size check on file1_binary_srccopy [6]@or_broken@Skipping file size check on NT4
1538 Passed: file size check on file1_ascii_srccopy [5]@or_broken@Skipping file size check on NT4
1539 Passed: file size check on file123_default_copy [25]@or_broken@Skipping file size check on NT4
1540 Passed: file size check on file123_ascii_copy [25]@or_broken@Skipping file size check on NT4
1541 Passed: file size check on file123_binary_copy [27]@or_broken@Skipping file size check on NT4
1542 Passed: file size check on file123_mixed_copy1 [26]@or_broken@Skipping file size check on NT4
1543 Passed: file size check on file123_mixed_copy2 [27]@or_broken@Skipping file size check on NT4
1544 Passed: file size check on file123_mixed_copy3 [26]@or_broken@Skipping file size check on NT4
1545 Passed: file size check on file123_mixed_copy4 [25]@or_broken@Skipping file size check on NT4
1546 Passed: file size check on file123_mixed_copy5 [28]@or_broken@Skipping file size check on NT4
1547 Passed: file size check on file123_mixed_copy6 [19]@or_broken@Skipping file size check on NT4
1548 Passed: file size check on file123_mixed_copy7 [6]@or_broken@Skipping file size check on NT4
1549 Passed: file size check on file123_mixed_copy8 [7]@or_broken@Skipping file size check on NT4
1550 Passed: errorlevel invalid check 1
1551 Passed: Did not find dir1\file1
1552 Passed: errorlevel invalid check 2
1553 Passed: errorlevel invalid check 3
1554 ------------ Testing setlocal/endlocal ------------
1555 --- enable/disable extensions
1556 @todo_wine@ErrLev:@space@
1559 @todo_wine@ErrLev:@space@@or_broken@ErrLev: 0
1561 --- setlocal with corresponding endlocal
1564 @drive@@path@foobar\foobar2
1569 --- setlocal with no corresponding endlocal
1572 @drive@@path@foobar\foobar2
1575 --- setlocal within same batch program
1588 --- Mismatched set and end locals
1589 --- Extra setlocal in called batch
1592 @drive@@path@foobar\foodir3
1595 @drive@@path@foobar\foodir2
1598 --- Extra endlocal in called batch
1601 @drive@@path@foobar\foodir2
1603 @drive@@path@foobar\foodir2
1606 @drive@@path@foobar\foodir2
1609 --- endlocal in called function rather than batch pgm is ineffective
1618 ------------ Testing Errorlevel ------------
1621 errorlevel just right, good
1622 errorlevel with leading zero just right, good
1623 errorlevel with negative number OK
1624 abc0def@or_broken@abc1def
1625 errorlevel zero, good@or_broken@errorlevel nonzero, bad
1628 ------------ Testing GOTO ------------
1629 goto with no leading space worked
1630 goto with colon and no leading space worked
1631 goto with a leading space worked
1632 goto with a leading tab worked
1633 goto with a following space worked
1634 goto with following amphersands worked
1635 goto with redirections worked
1636 Ignoring double colons worked
1637 label with mixed whitespace and no echo worked
1638 Correctly ignored trailing information
1652 ------------ Testing PATH ------------
1656 ------------ Testing start /W ------------
1657 start /W seems to really wait
1658 ------------ Testing changing the drive letter ----------
1661 Normal+space+garbage
1665 ------------ Testing combined CALLs/GOTOs ------------