| @pwd@>echo Tests for cmd's builtin commands@space@ | |
| Tests for cmd's builtin commands | |
| @pwd@>echo ------------ Testing 'echo' [ON] ------------@space@ | |
| ------------ Testing 'echo' [ON] ------------ | |
| @pwd@>echo word@space@ | |
| word | |
| @pwd@>echo 'singlequotedword'@space@ | |
| 'singlequotedword' | |
| @pwd@>echo "doublequotedword"@space@ | |
| "doublequotedword" | |
| at-echoed-word | |
| @pwd@>echo "/?"@space@ | |
| "/?" | |
| @pwd@>echo. | |
| @pwd@>echo .@space@ | |
| . | |
| @pwd@>echo.word | |
| word | |
| @pwd@>echo .word@space@ | |
| .word | |
| @pwd@>echo: | |
| @pwd@>echo :@space@ | |
| : | |
| @pwd@>echo:word | |
| word | |
| @pwd@>echo :word@space@ | |
| :word | |
| @pwd@>echo/ | |
| @pwd@>echo /@space@ | |
| / | |
| @pwd@>echo/word | |
| word | |
| @pwd@>echo /word@space@ | |
| /word | |
| @pwd@>echo off now@space@ | |
| off now | |
| @pwd@>echo word@space@@space@ | |
| word@space@ | |
| @pwd@>echo word@space@@space@@space@ | |
| word@space@@space@ | |
| @pwd@>echo word@space@ | |
| word | |
| @pwd@>echo@tab@word@space@ | |
| word | |
| @pwd@>echo@tab@word@space@@tab@@space@ | |
| word@space@@tab@ | |
| @pwd@>echo@tab@word@tab@@space@@space@ | |
| word@tab@@space@ | |
| @pwd@>echo word@space@ | |
| word | |
| @pwd@>echo@space@@tab@word@space@ | |
| @tab@word | |
| @pwd@>echo@space@@space@@tab@word@space@ | |
| @space@@tab@word | |
| @pwd@>echo@tab@@tab@word@space@ | |
| @tab@word | |
| @pwd@>echo @tab@ on @space@@space@ | |
| --- @ with chains and brackets | |
| @todo_wine@@pwd@>(echo the @ character chains until && ) && echo and can hide brackets || () ||@space@ | |
| @todo_wine@the @ character chains until | |
| @todo_wine@we leave the current depth | |
| @todo_wine@and can hide brackets | |
| @todo_wine@--- | |
| noecho1 | |
| noecho2 | |
| echo3 | |
| ------------ Testing 'echo' [OFF] ------------ | |
| word | |
| 'singlequotedword' | |
| "doublequotedword" | |
| at-echoed-word | |
| "/?" | |
| . | |
| word | |
| .word | |
| : | |
| word | |
| :word | |
| / | |
| word | |
| /word | |
| on again | |
| word@space@ | |
| word@space@@space@ | |
| word | |
| word | |
| word@space@@tab@ | |
| word@tab@@space@ | |
| word | |
| @tab@word | |
| @space@@tab@word | |
| @tab@word | |
| ------------ Testing mixed echo modes ------------ | |
| @echo on | |
| if 1==1 echo foo | |
| if 1==1 @echo bar | |
| @echo off | |
| if 1==1 echo foo2 | |
| if 1==1 @echo bar2 | |
| @todo_wine@@pwd@>if 1 == 1 echo foo@space@ | |
| foo | |
| @todo_wine@@pwd@>if 1 == 1@space@ | |
| bar | |
| foo2 | |
| bar2 | |
| ------------ Testing parameterization ------------ | |
| 'a', 'b', 'c' | |
| '"a b c"', '', '' | |
| '"a b"\c', '', '' | |
| 'a', '~`+', '.{}!+b' | |
| 'a', 'b', '' | |
| '"a;b"', '', '' | |
| 'a', 'b', '' | |
| 'a[b]{c}(d)e', '', '' | |
| 'a', '', '' | |
| second line | |
| 'a', 'b', 'c' | |
| 'a', 'b', 'c' | |
| 'a', 'b', '' | |
| ------------ Testing rem ------------ | |
| @pwd@>rem Hello@space@ | |
| @pwd@>rem Hello@space@ | |
| @pwd@>rem Hello || foo@space@ | |
| @pwd@>rem echo lol@space@ | |
| @pwd@>rem echo foo & echo bar@space@ | |
| @pwd@>rem @tab@ Hello@space@ | |
| @pwd@>rem@tab@ Hello@space@ | |
| @pwd@>rem@tab@echo foo & echo bar@space@ | |
| ------------ Testing redirection operators ------------ | |
| --- stdout redirection | |
| foo | |
| foo@space@ | |
| foo@tab@ | |
| foo@space@ | |
| foo@tab@ | |
| foo7@space@@or_broken@foo@tab@ | |
| foo9@space@@or_broken@foo@tab@ | |
| foo1 | |
| foo11 | |
| foo12 | |
| foo13 | |
| foo14 | |
| foo15 | |
| --- stdout appending | |
| foo | |
| foo@space@ | |
| foob@space@ | |
| foob@space@ | |
| fooc@space@ | |
| foob@space@ | |
| fooc@space@ | |
| food1 | |
| foob@space@ | |
| fooc@space@ | |
| food1 | |
| food2 | |
| food21 | |
| @todo_wine@foo7@space@@space@@or_broken@not supported@space@ | |
| @todo_wine@foo@or_broken@not supported | |
| --- redirections within IF statements | |
| @todo_wine@foo1 | |
| ----- | |
| foo2 | |
| foo3 | |
| file does not exist, ok | |
| foo4 | |
| baz5 | |
| baz6@space@ | |
| baz7 | |
| baz8 | |
| baz | |
| foo@space@ | |
| baz | |
| foo | |
| A | |
| B | |
| C | |
| ------------ Testing circumflex escape character ------------ | |
| hello, world | |
| hello, world | |
| hell^o, world | |
| hell^o, world | |
| helloworld | |
| hello | |
| world | |
| hello | |
| finished | |
| baz | |
| baz | |
| foo | echo bar | |
| foo & echo bar | |
| bak & | |
| baz@space@ | |
| 0@or_broken@1 | |
| foo > foo | |
| < | |
| ffoof | |
| WINE_FOO=bar | baz | |
| 0 | |
| WINE_FOO=bar ^| baz | |
| bar | baz | |
| 0 | |
| ------------ Testing chains ------------ | |
| --- chain success | |
| a1 | |
| a2 | |
| b1 | |
| b2 | |
| c1 | |
| @todo_wine@--- | |
| d1 | |
| d2 | |
| d3 | |
| e1 | |
| e2 | |
| e3 | |
| f1 | |
| f2 | |
| @todo_wine@--- | |
| g1 | |
| g2 | |
| g3 | |
| h1 | |
| h2 | |
| h3 | |
| i1 | |
| i2 | |
| @todo_wine@--- | |
| j1 | |
| @todo_wine@j3 | |
| @todo_wine@--- | |
| k1 | |
| @todo_wine@--- | |
| l1 | |
| @todo_wine@--- | |
| --- chain failure | |
| a1 | |
| a2 | |
| b1 | |
| @todo_wine@--- | |
| c1 | |
| c2 | |
| d1 | |
| d2 | |
| d3 | |
| e1 | |
| e2 | |
| @todo_wine@--- | |
| f1 | |
| f2 | |
| f3 | |
| g1 | |
| @todo_wine@g3 | |
| @todo_wine@--- | |
| h1 | |
| @todo_wine@--- | |
| i1 | |
| @todo_wine@i3 | |
| @todo_wine@--- | |
| j1 | |
| j2 | |
| j3 | |
| k1 | |
| k2 | |
| @todo_wine@--- | |
| l1 | |
| l2 | |
| l3 | |
| --- chain brackets | |
| a1 | |
| a2 | |
| a3 | |
| b1 | |
| b2 | |
| b3 | |
| c1 | |
| c2 | |
| @todo_wine@--- | |
| d1 | |
| d2 | |
| d3 | |
| e1 | |
| e2 | |
| e3 | |
| f1 | |
| f2 | |
| @todo_wine@--- | |
| g1 | |
| @todo_wine@--- | |
| h1 | |
| @todo_wine@--- | |
| i1 | |
| @todo_wine@--- | |
| j1 | |
| j2 | |
| j3 | |
| k1 | |
| k2 | |
| @todo_wine@--- | |
| l1 | |
| l2 | |
| l3 | |
| m1 | |
| @todo_wine@--- | |
| n1 | |
| @todo_wine@--- | |
| o1 | |
| @todo_wine@--- | |
| p1 | |
| p2 | |
| p3 | |
| q1 | |
| q2 | |
| @todo_wine@--- | |
| r1 | |
| r2 | |
| r3 | |
| --- chain pipe | |
| @todo_wine@a@space@ | |
| @todo_wine@a@space@ | |
| --- | |
| b2 | |
| c1 | |
| c3 | |
| d1 | |
| @todo_wine@--- | |
| e1 | |
| e3 | |
| f2 | |
| f3 | |
| g2 | |
| @todo_wine@--- | |
| h2 | |
| h3 | |
| i3 | |
| --- chain pipe input | |
| a2:[a1,a2] | |
| b3:[b2:[b1,b2],b3]@or_broken@b3:[b2:,b3] | |
| c4:[c3:[c2:[c1,c2],c3],c4]@or_broken@c4:[c3:[c2:,c3],c4]@or_broken@c4:[c3:,c4] | |
| d2:[d1,d2] | |
| e3:[e2:[e1,e2],e3]@or_broken@e3:[e2:,e3] | |
| f4:[f3:[f2:[f1,f2],f3],f4]@or_broken@f4:[f3:[f2:,f3],f4]@or_broken@f4:[f3:,f4] | |
| --- chain else | |
| a1 | |
| b2 | |
| @todo_wine@--- | |
| @todo_wine@c3 | |
| @todo_wine@--- | |
| @todo_wine@d3 | |
| @todo_wine@--- | |
| @todo_wine@--- | |
| @todo_wine@--- | |
| @todo_wine@--- | |
| @todo_wine@--- | |
| --- chain else (if true) | |
| a1 else echo a2 | |
| b2 else echo b3 | |
| c1 | |
| c2 else echo c3 | |
| d1 | |
| @todo_wine@--- | |
| e1 | |
| e2 else echo e3 | |
| f3 | |
| g1 else echo g2 | |
| g3 | |
| h1 else echo h2 | |
| @todo_wine@--- | |
| i1 else echo i2 | |
| i3 | |
| @todo_wine@j2@space@ | |
| @todo_wine@--- | |
| k1 | |
| k2 | |
| l1 | |
| @todo_wine@--- | |
| m1 | |
| m2 | |
| n1 | |
| o1 | |
| p1 | |
| q1 | |
| --- chain else (if false) | |
| @todo_wine@j3 | |
| --- | |
| k3 | |
| l3 | |
| m3 | |
| n3 | |
| o2 | |
| o3 | |
| p2 | |
| @todo_wine@--- | |
| q2 | |
| q3 | |
| ------------ Testing 'set' ------------ | |
| 1 | |
| 0 | |
| WINE_FOOBAR not defined | |
| baz | |
| WINE_FOOBAR = baz | |
| 0 | |
| baz2 | |
| 0 | |
| bar | |
| WINE_FOOBAR= bar | |
| WINE_FOOBAR = baz2 | |
| WINE_FOOBAR = baz2 | |
| WINE_FOOBAR not defined | |
| 1 | |
| bar | |
| foobar | |
| WINE_FOO not defined | |
| WINE_BAZ=bazbaz | |
| bazbaz | |
| set "WINE_FOO=bar" should not include the quotes in the variable value | |
| bar | |
| foo | |
| '' | |
| 'foo@space@' | |
| 'foo@tab@' | |
| 'value@space@' | |
| 'value' | |
| 'jim fred' | |
| '"jim" fred' | |
| 'jim fred' | |
| 'jim' | |
| 'apple"banana"grape' | |
| ------------ Testing variable expansion ------------ | |
| ~p0 should be path containing batch file | |
| @path@ | |
| @path@ | |
| ~dp0 should be directory containing batch file | |
| @drive@@path@ | |
| @drive@@path@ | |
| CD value @pwd@@or_broken@CD value@space@ | |
| % | |
| P | |
| P | |
| S | |
| P | |
| PS | |
| ERRORLEVEL | |
| 0 | |
| 00 | |
| 0ERRORLEVEL | |
| 0 | |
| 0% | |
| P0 | |
| 0S | |
| P0S | |
| ------------ Testing variable substrings ------------ | |
| q | |
| qwe | |
| er | |
| 'ty'@or_broken@'' | |
| 't'@or_broken@'' | |
| ert@or_broken@qwerty | |
| e@or_broken@qwerty | |
| ''@or_broken@'qwerty' | |
| r@or_broken@qwerty | |
| ------------ Testing variable substitution ------------ | |
| --- in FOR variables | |
| "A B" | |
| C | |
| "A B" | |
| C | |
| 'A B'@or_broken@'' | |
| 'C'@or_broken@'' | |
| @drive@@path@C D@or_broken@%~ff | |
| @drive@@path@E@or_broken@%~ff | |
| @drive@ | |
| @drive@ | |
| @path@@or_broken@%~pd | |
| @path@@or_broken@%~pd | |
| L M | |
| N | |
| '.OOL' | |
| '.TABC' | |
| '' | |
| @todo_wine@'@drive@@shortpath@R S'@or_broken@'' | |
| @todo_wine@'@drive@@shortpath@T'@or_broken@'' | |
| @todo_wine@'@drive@@shortpath@ABCDEFGHIJK.LMNOP'@or_broken@'' | |
| ''@or_broken@'%~ai' | |
| ''@or_broken@'%~ai' | |
| '--a------'@or_broken@'--a--------'@or_broken@'--a--c---'@or_broken@'%~ai' | |
| '5'@or_broken@'%~zi' | |
| ''@or_broken@'%~ti' | |
| ''@or_broken@'%~ti' | |
| ''@or_broken@'%~zi' | |
| ''@or_broken@'%~zi' | |
| @drive@@path@ | |
| @drive@@path@ | |
| @drive@ | |
| @drive@ | |
| @drive@ | |
| @drive@ | |
| '' | |
| '.eh' | |
| ',,,,,,,,,' | |
| --- in parameters | |
| "A B" | |
| C | |
| 'A B'@or_broken@'' | |
| 'C'@or_broken@'' | |
| @drive@@path@C D | |
| @drive@@path@E | |
| @drive@ | |
| @drive@ | |
| @path@ | |
| @path@ | |
| L M | |
| N | |
| '.OOL' | |
| '.TABC' | |
| '' | |
| @todo_wine@'@drive@@shortpath@R S'@or_broken@'' | |
| @todo_wine@'@drive@@shortpath@T'@or_broken@'' | |
| @todo_wine@'@drive@@shortpath@ABCDEFGHIJK.LMNOP'@or_broken@'' | |
| @drive@@path@ | |
| @drive@@path@ | |
| @drive@ | |
| @drive@ | |
| @drive@ | |
| @drive@ | |
| '' | |
| '.eh'@or_broken@'' | |
| ------------ Testing variable delayed expansion ------------ | |
| --- default mode (load-time expansion) | |
| foo | |
| !WINE_FOO! | |
| foo | |
| foo | |
| --- runtime (delayed) expansion mode | |
| foo | |
| foo@or_broken@!WINE_FOO! | |
| foo | |
| bar@or_broken@foo | |
| 0 | |
| 0@or_broken@1 | |
| foo | |
| !WINE_FOO! | |
| --- using /V cmd flag | |
| foo | |
| foo@or_broken@!WINE_FOO! | |
| foo | |
| !WINE_FOO! | |
| ------------ Testing conditional execution ------------ | |
| --- unconditional ampersand | |
| foo1 | |
| bar2@space@ | |
| foo2 | |
| foobar deleted | |
| --- on success conditional and | |
| @todo_wine@foo3 not created | |
| bar4@space@ | |
| foo4 | |
| --- on failure conditional or | |
| foo5 | |
| foo6@space@ | |
| @todo_wine@------------ Testing cd ------------ | |
| singleFile | |
| Current dir: @drive@@path@foobar@or_broken@Current dir:@space@ | |
| @drive@@path@foobar | |
| @pwd@ | |
| @drive@@path@foobar | |
| @pwd@ | |
| @drive@@path@foobar | |
| @pwd@ | |
| @pwd@ | |
| @pwd@ | |
| @drive@@path@foobar\bar bak | |
| @drive@@path@foobar\bar bak | |
| @drive@@path@foobar\bar bak | |
| @drive@@path@foobar\bar bak | |
| @drive@@path@foobar\bar bak | |
| @pwd@ | |
| @drive@@path@foobar | |
| ------------ Testing type ------------ | |
| @pwd@>type foobaz@space@ | |
| bar | |
| @pwd@>echo ---@space@ | |
| --- | |
| bar | |
| ---1 | |
| bar | |
| ---2 | |
| bar | |
| ---3 | |
| ------------ Testing NUL ------------ | |
| bar | |
| bar | |
| bar | |
| NUL | |
| foo created | |
| Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on b.b [8]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on b.b [8]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on subdir\a.a [8]@or_broken@Skipping file size check on NT4 | |
| ------------ Testing if/else ------------ | |
| --- if/else should work with blocks | |
| if seems to work | |
| else seems to work | |
| if seems not to detect /c as parameter | |
| else if seems to work | |
| else if seems to work | |
| else if seems to work | |
| --- case sensitivity with and without /i option | |
| if seems to default to case sensitivity | |
| if /i seems to work | |
| if /I seems to work | |
| --- string comparisons | |
| equal | |
| non equal | |
| non equal | |
| equal | |
| --- tabs handling | |
| doom | |
| doom | |
| doom | |
| lol | |
| quake | |
| quake | |
| quake | |
| --- comparison operators | |
| ------ for strings | |
| LSS string can be used as operand for LSS comparison | |
| floats are handled as strings | |
| numbers in quotes are handled as strings | |
| negative numbers as well@or_broken@NT4 | |
| if /i seems to work for LSS | |
| A LSS B | |
| A LSS AB | |
| A LSS BA | |
| A LSS AA | |
| B LSS BA | |
| AB LSS B | |
| AB LSS BA | |
| AA LSS B | |
| AA LSS AB | |
| AA LSS BA | |
| b LSS B@or_broken@NT4 | |
| a LSS B@or_broken@NT4 | |
| a LSS B insensitive | |
| A LSS b | |
| A LSS b insensitive | |
| A LEQ A | |
| A LEQ B | |
| A LEQ AB | |
| A LEQ BA | |
| A LEQ AA | |
| B LEQ B | |
| B LEQ BA | |
| AB LEQ B | |
| AB LEQ AB | |
| AB LEQ BA | |
| BA LEQ BA | |
| AA LEQ B | |
| AA LEQ AB | |
| AA LEQ BA | |
| AA LEQ AA | |
| b LEQ B@or_broken@NT4 | |
| b LEQ B insensitive | |
| a LEQ B@or_broken@NT4 | |
| a LEQ B insensitive | |
| A LEQ b | |
| A LEQ b insensitive | |
| A EQU A | |
| B EQU B | |
| AB EQU AB | |
| BA EQU BA | |
| AA EQU AA | |
| A EQU a insensitive | |
| A NEQ B | |
| A NEQ AB | |
| A NEQ BA | |
| A NEQ AA | |
| B NEQ A | |
| B NEQ AB | |
| B NEQ BA | |
| B NEQ AA | |
| AB NEQ A | |
| AB NEQ B | |
| AB NEQ BA | |
| AB NEQ AA | |
| BA NEQ A | |
| BA NEQ B | |
| BA NEQ AB | |
| BA NEQ AA | |
| AA NEQ A | |
| AA NEQ B | |
| AA NEQ AB | |
| AA NEQ BA | |
| A GEQ A | |
| B GEQ A | |
| B GEQ B | |
| B GEQ AB | |
| B GEQ AA | |
| AB GEQ A | |
| AB GEQ AB | |
| AB GEQ AA | |
| BA GEQ A | |
| BA GEQ B | |
| BA GEQ AB | |
| BA GEQ BA | |
| BA GEQ AA | |
| AA GEQ A | |
| AA GEQ AA | |
| B GTR A | |
| B GTR AB | |
| B GTR AA | |
| AB GTR A | |
| AB GTR AA | |
| BA GTR A | |
| BA GTR B | |
| BA GTR AB | |
| BA GTR AA | |
| AA GTR A | |
| ------ for numbers | |
| negative numbers handled | |
| negative numbers handled | |
| octal handled | |
| also in negative form | |
| hexa handled | |
| also in negative form | |
| 11 LSS 101 | |
| 0 LSS 1 | |
| 0 LSS 10 | |
| 0 LSS 9 | |
| 1 LSS 10 | |
| 1 LSS 9 | |
| 9 LSS 10 | |
| 0 LEQ 0 | |
| 0 LEQ 1 | |
| 0 LEQ 10 | |
| 0 LEQ 9 | |
| 1 LEQ 1 | |
| 1 LEQ 10 | |
| 1 LEQ 9 | |
| 10 LEQ 10 | |
| 9 LEQ 10 | |
| 9 LEQ 9 | |
| 0 EQU 0 | |
| 1 EQU 1 | |
| 10 EQU 10 | |
| 9 EQU 9 | |
| octal ok | |
| hexa ok | |
| string/hexa compare ok | |
| string/hexa compare ok | |
| 0 NEQ 1 | |
| 0 NEQ 10 | |
| 0 NEQ 9 | |
| 1 NEQ 0 | |
| 1 NEQ 10 | |
| 1 NEQ 9 | |
| 10 NEQ 0 | |
| 10 NEQ 1 | |
| 10 NEQ 9 | |
| 9 NEQ 0 | |
| 9 NEQ 1 | |
| 9 NEQ 10 | |
| 0 GEQ 0 | |
| 1 GEQ 0 | |
| 1 GEQ 1 | |
| 10 GEQ 0 | |
| 10 GEQ 1 | |
| 10 GEQ 10 | |
| 10 GEQ 9 | |
| 9 GEQ 0 | |
| 9 GEQ 1 | |
| 9 GEQ 9 | |
| 1 GTR 0 | |
| 10 GTR 0 | |
| 10 GTR 1 | |
| 10 GTR 9 | |
| 9 GTR 0 | |
| 9 GTR 1 | |
| ------ for numbers and stringified numbers | |
| strings and integers not equal | |
| strings and integers not equal | |
| foo | |
| "10" GEQ "1" | |
| '1' GEQ 1@or_broken@NT4 | |
| 1 GEQ "1" | |
| "1" GEQ "1" | |
| '1' GEQ "1" | |
| "10" GEQ "1" | |
| non NT4@or_broken@1 GEQ '1' | |
| '1' GEQ '1' | |
| foo | |
| 1 GEQ "10" | |
| foo | |
| '1' GEQ "10" | |
| "10" GEQ "10" | |
| --- unconditional ampersand after if one line | |
| 1@space@ | |
| 2@space@ | |
| 3 else echo 4 | |
| --- | |
| x@space@ | |
| --- | |
| x@space@ | |
| --- | |
| x@space@ | |
| --- | |
| x@space@ | |
| --- | |
| ------------ Testing for ------------ | |
| --- plain FOR | |
| A | |
| B | |
| C | |
| %I | |
| %I | |
| %I | |
| %j | |
| %j | |
| %j | |
| A | |
| B | |
| C | |
| 1 | |
| 4 | |
| 1 | |
| A | |
| B | |
| C | |
| X | |
| X2 | |
| X3 | |
| foo | |
| M | |
| X | |
| M | |
| N | |
| O | |
| `echo | |
| A | |
| B` | |
| 'echo | |
| A | |
| B' | |
| "echo A B" | |
| "A B" | |
| C | |
| --- imbricated FORs | |
| X Y | |
| X Y | |
| A C | |
| A D | |
| B C | |
| B D | |
| A C | |
| A D | |
| B C | |
| B D | |
| --- basic wildcards | |
| bazbaz | |
| --- for /d | |
| baz@space@ | |
| foo@space@ | |
| bar@space@ | |
| PASSED | |
| xxx - Should be xxx | |
| Expected second line | |
| --- for /R | |
| Plain directory enumeration | |
| Plain directory enumeration from provided root | |
| File enumeration | |
| File enumeration from provided root | |
| Mixed enumeration | |
| Mixed enumeration from provided root | |
| With duplicates enumeration | |
| Strip missing wildcards, keep unwildcarded names | |
| for /R passed | |
| --- Complex wildcards unix and windows slash | |
| Windows slashes, valid path | |
| ASIS: foobar\baz\bazbaz | |
| WC : foobar\baz\bazbaz | |
| Windows slashes, invalid path | |
| ASIS: foobar\jim\bazbaz | |
| Unix slashes, valid path | |
| ASIS: foobar/baz/bazbaz | |
| WC : bazbaz | |
| Unix slashes, invalid path | |
| ASIS: foobar/jim/bazbaz | |
| Done | |
| --- for /L | |
| 1 | |
| 3 | |
| 5 | |
| 1 | |
| 3 | |
| 5 | |
| 0 | |
| 2 | |
| 1 | |
| -1 | |
| ErrorLevel 0 | |
| ErrorLevel 0 | |
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 1 | |
| 3 | |
| 4 | |
| 3 | |
| 2 | |
| 1 | |
| 4 | |
| 2 | |
| 0 | |
| 1 | |
| 1 | |
| -1 | |
| -1 | |
| 1 | |
| 3 | |
| --- set /a | |
| ------ individual operations | |
| WINE_foo correctly 3 | |
| WINE_foo correctly -1 | |
| WINE_foo correctly 3 | |
| WINE_foo correctly 6 | |
| WINE_foo correctly 10 | |
| WINE_foo correctly 4 | |
| WINE_foo correctly 4 | |
| WINE_foo correctly -4 | |
| WINE_foo correctly 0 | |
| WINE_foo correctly 2 | |
| WINE_foo correctly 2 | |
| WINE_foo correctly -2 | |
| WINE_foo correctly 1 | |
| WINE_foo correctly 4 | |
| WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 1073741824 [0] | |
| WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly -1073741824 [0] | |
| WINE_foo correctly -4 | |
| WINE_foo correctly 9 | |
| WINE_foo correctly 2 | |
| WINE_foo correctly 0 | |
| WINE_foo correctly -1 | |
| WINE_foo correctly -3 | |
| WINE_foo correctly 0 | |
| WINE_foo correctly 1 | |
| WINE_foo correctly 1 | |
| WINE_foo correctly 4 | |
| WINE_foo correctly 1 | |
| WINE_foo correctly 5 | |
| WINE_foo correctly 5 | |
| WINE_foo correctly 7 | |
| WINE_foo correctly 5 | |
| WINE_foo correctly 5 | |
| WINE_foo correctly 5 | |
| WINE_foo correctly 4 | |
| WINE_foo correctly 6 | |
| WINE_foo correctly 1 | |
| WINE_foo correctly 4 | |
| ------ precedence and grouping | |
| WINE_foo correctly 10 | |
| WINE_foo correctly 18@or_broken@ERROR: WINE_foo incorrectly [18] | |
| WINE_foo correctly 2@or_broken@ERROR: WINE_foo incorrectly 0 [2] | |
| WINE_foo correctly 2@or_broken@ERROR: WINE_foo incorrectly [2] | |
| WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 4 [0] | |
| WINE_foo correctly 4@or_broken@ERROR: WINE_foo incorrectly [4] | |
| WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly [3] | |
| WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly [3] | |
| ------ octal and hexadecimal | |
| WINE_foo correctly 18 | |
| WINE_foo correctly 18 | |
| WINE_foo correctly 15 | |
| WINE_foo correctly 3 | |
| ------ variables | |
| WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3] | |
| WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3] | |
| WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3] | |
| WINE_bar correctly 4@or_broken@ERROR: WINE_bar incorrectly [4] | |
| WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3] | |
| WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3] | |
| WINE_baz correctly 4@or_broken@ERROR: WINE_baz incorrectly [4] | |
| WINE_foo correctly 9@or_broken@ERROR: WINE_foo incorrectly 3 [9] | |
| WINE_bar correctly 9@or_broken@ERROR: WINE_bar incorrectly 3 [9] | |
| WINE_foo correctly 0 | |
| WINE_foo correctly 4 | |
| WINE_bar correctly 4 | |
| WINE_foo correctly -7@or_broken@ERROR: WINE_foo incorrectly 4 [-7] | |
| WINE_bar correctly -7@or_broken@ERROR: WINE_bar incorrectly 4 [-7] | |
| WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly -7 [-1] | |
| WINE_bar correctly -1@or_broken@ERROR: WINE_bar incorrectly -7 [-1] | |
| WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5] | |
| WINE_bar correctly 1@or_broken@ERROR: WINE_bar incorrectly [1] | |
| WINE_foo correctly 4@or_broken@ERROR: WINE_foo incorrectly 1 [4] | |
| WINE_bar correctly 4@or_broken@ERROR: WINE_bar incorrectly 1 [4] | |
| WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 4 [1] | |
| WINE_bar correctly 1@or_broken@ERROR: WINE_bar incorrectly 4 [1] | |
| WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 1 [0] | |
| WINE_bar correctly 0@or_broken@ERROR: WINE_bar incorrectly 1 [0] | |
| WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5] | |
| WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly [7] | |
| WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5] | |
| WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly [7] | |
| WINE_foo correctly 19@or_broken@ERROR: WINE_foo incorrectly 0 [19] | |
| WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3] | |
| WINE_baz correctly 4 | |
| --- quotes | |
| WINE_foo correctly 1 | |
| WINE_foo correctly 1 | |
| WINE_foo correctly 1 | |
| WINE_bar correctly 2 | |
| WINE_foo correctly 1 | |
| WINE_bar correctly 2 | |
| WINE_foo correctly 1 | |
| WINE_bar correctly 2 | |
| WINE_foo correctly 1 | |
| WINE_bar correctly 2 | |
| WINE_foo correctly 1 | |
| WINE_bar correctly 2 | |
| WINE_baz correctly 3 | |
| WINE_foo correctly 1 | |
| WINE_bar correctly 2 | |
| WINE_baz correctly 3 | |
| WINE_foo correctly 1 | |
| WINE_bar correctly 2 | |
| WINE_baz correctly 3 | |
| WINE_foo correctly 1 | |
| WINE_bar correctly 2 | |
| WINE_baz correctly 3 | |
| WINE_foo correctly 1 | |
| WINE_bar correctly 2 | |
| WINE_baz correctly 3 | |
| WINE_foo correctly 1 | |
| WINE_foo correctly 1 | |
| WINE_bar correctly 5 | |
| WINE_baz correctly 2 | |
| WINE_foo correctly 18 | |
| WINE_foo correctly 3 | |
| WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly 4 [7] | |
| --- whitespace are ignored between double char operators | |
| WINE_foo correctly 10@or_broken@ERROR: WINE_foo incorrectly 4 [10] | |
| WINE_bar correctly 50@or_broken@ERROR: WINE_bar incorrectly 5 [50] | |
| WINE_foo correctly 772@or_broken@ERROR: WINE_foo incorrectly 4 [772] | |
| WINE_bar correctly 7720@or_broken@ERROR: WINE_bar incorrectly 5 [7720] | |
| --- invalid operator sequence | |
| 4 | |
| 4 | |
| ----- negative prefix | |
| WINE_foo correctly -1 | |
| WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1] | |
| WINE_foo correctly 6 | |
| WINE_foo correctly 0 | |
| WINE_foo correctly 6 | |
| WINE_foo correctly 2 | |
| WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0] | |
| WINE_foo correctly 5 | |
| WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly -5 [3] | |
| ----- assignment tests involving the end destination | |
| WINE_foo correctly 11@or_broken@ERROR: WINE_foo incorrectly 3 [11] | |
| WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 2 [6] | |
| WINE_bar correctly 9@or_broken@ERROR: WINE_bar incorrectly [9] | |
| WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 2 [6] | |
| WINE_bar correctly 10@or_broken@ERROR: WINE_bar incorrectly [10] | |
| WINE_baz correctly 7@or_broken@ERROR: WINE_baz incorrectly [7] | |
| WINE_foo correctly 7@or_broken@ERROR: WINE_foo incorrectly 2 [7] | |
| WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly 2 [7] | |
| ----- equal precedence on stack | |
| WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 0 [1] | |
| WINE_foo correctly 0 | |
| WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1] | |
| WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0] | |
| WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1] | |
| WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly [-1] | |
| WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly [-1] | |
| WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1] | |
| WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0] | |
| WINE_foo correctly -1 | |
| WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly -1 [0] | |
| WINE_foo correctly 0 | |
| WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 0 [1] | |
| WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly 0 [-1] | |
| WINE_foo correctly 25@or_broken@ERROR: WINE_foo incorrectly 20 [25] | |
| WINE_foo correctly 20 | |
| WINE_foo correctly 1 | |
| WINE_foo correctly 4 | |
| WINE_foo correctly 7 | |
| WINE_foo correctly 8@or_broken@ERROR: WINE_foo incorrectly 4 [8] | |
| WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 5 [6] | |
| WINE_bar correctly 6@or_broken@ERROR: WINE_bar incorrectly 5 [6] | |
| --- for /F | |
| ------ string argument | |
| a | |
| a@or_broken@no output | |
| a | |
| a@or_broken@no output | |
| a | |
| a@or_broken@no output | |
| a | |
| a@or_broken@no output | |
| a | |
| a@or_broken@no output | |
| ------ fileset argument | |
| --------- basic blank handling | |
| a | |
| a | |
| a | |
| a | |
| a | |
| b | |
| --------- multi-line with empty lines | |
| a | |
| b | |
| c | |
| --------- multiple files | |
| a | |
| b | |
| c | |
| q | |
| kkk | |
| q | |
| kkk | |
| a | |
| b | |
| c | |
| ------ command argument | |
| Passed1@or_broken@Missing functionality - Broken1 | |
| Passed2@or_broken@Missing functionality - Broken2 | |
| Passed3@or_broken@Missing functionality - Broken3 | |
| ------ eol option | |
| and@or_broken@Broken NT4 functionality1 | |
| Line@or_broken@Broken NT4 functionality2 | |
| Line@or_broken@Broken NT4 functionality3 | |
| ad | |
| z@y | |
| a|d | |
| no output | |
| no output | |
| ------ delims option | |
| a | |
| a@space@ | |
| a d | |
| a | |
| C r | |
| foo bar baz | |
| c:\ | |
| ------ skip option | |
| c | |
| no output | |
| no output | |
| c | |
| c | |
| no output | |
| ------ tokens= option | |
| h=%h i=a j=%j k=%k l=%l m=%m o=%o | |
| h=%h i=b j=%j k=%k l=%l m=%m o=%o | |
| h=%h i=a j=c k=e l=f m=g o=%o | |
| h=%h i=a j=e k=f g l=%l m=%m o=%o | |
| 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 | |
| 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 | |
| h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o | |
| h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o | |
| h=%h i=a j=b k= l= m=%m n=%n o=%o | |
| 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 | |
| h=%h i=a j=b k= l= m= n=%n o=%o | |
| h=%h i=a j=b k= l= m= n= o=%o | |
| u=a v=b w=c x=d y=e z=f A=%A a=%a | |
| @todo_wine@U=a V=b W=c X=d Y=e Z=f A=%A a=m | |
| 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 | |
| h=%h i=e j=%j k=%k l=%l m=%m o=%o | |
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| ------------ Testing del ------------ | |
| deleting 'file' | |
| errorlevel is 0, good | |
| successfully deleted 'file' | |
| attempting to delete 'file', even though it is not present | |
| errorlevel is 0, good | |
| ------------ Testing del /a ------------ | |
| not-r.test not found after delete, good | |
| r.test found before delete, good | |
| r.test not found after delete, good | |
| ------------ Testing del /q ------------ | |
| del /q * succeeded on file1 | |
| del /q * succeeded on file2.dat | |
| ------------ Testing del /s ------------ | |
| ------------ Testing rename ------------ | |
| --- ren and rename are synonymous | |
| foo renamed to bar | |
| bar renamed to foo | |
| --- name collision | |
| foo | |
| bar | |
| --- rename read-only files | |
| read-only file renamed | |
| --- rename directories | |
| dir renamed | |
| read-only dir renamed | |
| --- rename in other directory | |
| rename impossible in other directory | |
| original file still present | |
| ------------ Testing move ------------ | |
| --- file move | |
| file move succeeded | |
| @todo_wine@file move with overwrite succeeded@or_broken@file overwrite impossible! | |
| @todo_wine@bar@or_broken@baz | |
| read-only files are moveable | |
| file moved in subdirectory | |
| @todo_wine@moving a file to itself is a no-op@or_broken@moving a file to itself should be a no-op! | |
| @todo_wine@ErrorLevel: 0@or_broken@ErrorLevel: 1 | |
| --- directory move | |
| simple directory move succeeded | |
| moving a directory to itself gives error; errlevel 1 | |
| ------ dir in dir move | |
| foo | |
| bar2 | |
| foo2 | |
| ------------ Testing mkdir ------------ | |
| --- md and mkdir are synonymous | |
| 0 | |
| 0 | |
| --- creating an already existing directory/file must fail | |
| 1 | |
| 1 | |
| --- multilevel path creation | |
| 0 | |
| 0 | |
| 0 | |
| 0 | |
| 0 | |
| 1 | |
| 0 | |
| 0 | |
| --- trailing backslashes | |
| 0 | |
| dir created | |
| 0 | |
| --- invalid chars | |
| mkdir ? gives errorlevel 1 | |
| mkdir ?\foo gives errorlevel 1 | |
| mkdir foo\? gives errorlevel 1 | |
| ok, foo created | |
| mkdir foo\bar\? gives errorlevel 1 | |
| ok, foo\bar created | |
| --- multiple directories at once | |
| foo created | |
| bar created | |
| foobar created | |
| bar\baz created | |
| bazbaz created | |
| zabzab created | |
| mkdir foo\* errorlevel 1 | |
| ok, foo created | |
| ------------ Testing rmdir ------------ | |
| 0 | |
| dir removed | |
| 0 | |
| dir removed | |
| 0 | |
| 0 | |
| file not removed | |
| 0 | |
| non-empty dir not removed | |
| 0 | |
| non-empty dir not removed | |
| recursive rmdir succeeded | |
| recursive rmdir succeeded | |
| foo removed | |
| bar removed | |
| foobar removed | |
| bar\baz removed | |
| ------------ Testing pushd/popd ------------ | |
| @pwd@ | |
| --- popd is no-op when dir stack is empty | |
| @pwd@ | |
| --- pushing non-existing dir | |
| @pwd@ | |
| --- basic behaviour | |
| @drive@@path@foobar | |
| @pwd@ | |
| @drive@@path@foobar\baz | |
| @drive@@path@foobar | |
| @drive@@path@foobar | |
| @pwd@ | |
| @drive@@path@foobar | |
| @pwd@ | |
| ------------ Testing attrib ------------ | |
| A @drive@@path@foobar\foo@or_broken@A @drive@@path@foobar\foo@or_broken@A I @drive@@path@foobar\foo | |
| --- read-only attribute | |
| A R @drive@@path@foobar\foo@or_broken@A R @drive@@path@foobar\foo@or_broken@A R I @drive@@path@foobar\foo | |
| foo | |
| foo original contents | |
| Read-only file not deleted | |
| Read-only file forcibly deleted | |
| --- recursive behaviour | |
| A @drive@@path@foobar\baz\level2@or_broken@A @drive@@path@foobar\baz\level2@or_broken@A I @drive@@path@foobar\baz\level2 | |
| A R @drive@@path@foobar\level1@or_broken@A R @drive@@path@foobar\level1@or_broken@A R I @drive@@path@foobar\level1 | |
| 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 | |
| A @drive@@path@foobar\bar@or_broken@A @drive@@path@foobar\bar@or_broken@A I @drive@@path@foobar\bar | |
| --- folders processing | |
| @drive@@path@foobar@or_broken@ @drive@@path@foobar@or_broken@ I @drive@@path@foobar | |
| @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 | |
| A @drive@@path@foobar\baz\toto@or_broken@A @drive@@path@foobar\baz\toto@or_broken@A I @drive@@path@foobar\baz\toto | |
| toto | |
| lulu | |
| file created in read-only dir | |
| ------------ Testing assoc ------------ | |
| --- setting association | |
| --- | |
| .foo=bar | |
| .foo=bar | |
| +++ | |
| .foo=bar | |
| --- resetting association | |
| --- | |
| +++ | |
| --- | |
| ------------ Testing ftype ------------ | |
| --- setting association | |
| --- | |
| footype=foo_opencmd | |
| .foo=footype | |
| footype=foo_opencmd | |
| +++ | |
| footype=foo_opencmd | |
| --- resetting association | |
| @todo_wine@original value@or_broken@buggyXP@or_broken@!WINE_FOO! | |
| ------------ Testing CALL ------------ | |
| --- external script | |
| foo@space@ | |
| foo 8 | |
| foo@space@@space@ | |
| foo bar@space@ | |
| foo ""@space@ | |
| "" bar@space@ | |
| foo ''@space@ | |
| '' bar@space@ | |
| --- internal routines | |
| bar :testRoutine | |
| foo@space@ | |
| foo bar | |
| foo "" | |
| "" bar | |
| foo '' | |
| '' bar | |
| --- with builtins | |
| 0 | |
| foo created | |
| Should expand foobaz | |
| batfile | |
| robinfile | |
| 1 | |
| 1 | |
| non-builtin dir | |
| Line one | |
| Line two | |
| Get if | |
| ... and else! | |
| passed | |
| ------------ Testing SHIFT ------------ | |
| 'p1' 'p2' 'p3' 'p4' 'p5' | |
| 'p2' 'p3' 'p4' 'p5' '' | |
| 'p3' 'p4' 'p5' '' '' | |
| 'p3' 'p5' '' '' '' | |
| 'p3' 'p5' '' '' '' | |
| 'p5' '' '' '' '' | |
| ------------ Testing cmd invocation ------------ | |
| --- a batch file can delete itself | |
| file correctly deleted | |
| --- a batch file can alter itself | |
| bar | |
| ---------- Testing copy | |
| Passed: Found expected dummy.file | |
| Passed: Found expected dir1\file1 | |
| Passed: Found expected dir1\file1 | |
| Passed: Found expected dir1\file99 | |
| Passed: Found expected file1 | |
| Passed: Did not find dir2 | |
| Passed: Did not find dir2\file1 | |
| Passed: Found expected dir1\file1 | |
| Passed: Found expected dir1\file2 | |
| Passed: Found expected dir1\file3 | |
| Passed: Found expected dir1\file1 | |
| Passed: Found expected dir1\file2 | |
| Passed: Found expected dir1\file3 | |
| Passed: Found expected file1 | |
| Passed: Found expected file2 | |
| Passed: Found expected file3 | |
| Passed: Did not find dir2 | |
| Passed: Did not find dir2\file1 | |
| Passed: Did not find dir2\file2 | |
| Passed: Did not find dir2\file3 | |
| Passed: Found expected testfile | |
| Passed: Found expected testfile | |
| Passed: Found expected testfile | |
| Passed: Found expected testfile | |
| Passed: Found expected testfile | |
| Passed: Found expected dir1\fred | |
| Passed: Found expected dir1\fred | |
| Passed: Found expected fred | |
| Passed: Found expected fred | |
| Passed: file size check on file1 [5]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file2 [8]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file3 [11]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file1_default [5]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file1_default2 [5]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file1_plus_eof [6]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file2_plus_eof [9]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file3_plus_eof [12]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file12_plus_eof [14]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file12_no_eof [13]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file12_eof2 [14]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file1 [24]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file2 [16]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file3 [13]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file1_binary_srccopy [6]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file1_ascii_srccopy [5]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file123_default_copy [25]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file123_ascii_copy [25]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file123_binary_copy [27]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file123_mixed_copy1 [26]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file123_mixed_copy2 [27]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file123_mixed_copy3 [26]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file123_mixed_copy4 [25]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file123_mixed_copy5 [28]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file123_mixed_copy6 [19]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file123_mixed_copy7 [6]@or_broken@Skipping file size check on NT4 | |
| Passed: file size check on file123_mixed_copy8 [7]@or_broken@Skipping file size check on NT4 | |
| Passed: errorlevel invalid check 1 | |
| Passed: Did not find dir1\file1 | |
| Passed: errorlevel invalid check 2 | |
| Passed: errorlevel invalid check 3 | |
| ------------ Testing setlocal/endlocal ------------ | |
| --- enable/disable extensions | |
| @todo_wine@ErrLev:@space@ | |
| ErrLev: 0 | |
| ErrLev: 0 | |
| @todo_wine@ErrLev:@space@@or_broken@ErrLev: 0 | |
| ErrLev: 0 | |
| --- setlocal with corresponding endlocal | |
| globalval | |
| localval | |
| @drive@@path@foobar\foobar2 | |
| globalval | |
| @drive@@path@foobar | |
| globalval | |
| @drive@@path@foobar | |
| --- setlocal with no corresponding endlocal | |
| globalval | |
| localval | |
| @drive@@path@foobar\foobar2 | |
| globalval | |
| @drive@@path@foobar | |
| --- setlocal within same batch program | |
| Var1 ok 1 | |
| Var2 ok 2 | |
| Var3 ok 3 | |
| Directory is ok 1 | |
| Var1 ok 1 | |
| Var2 ok 2 | |
| Var3 ok 3 | |
| Directory is ok 2 | |
| Var1 ok 1 | |
| Var2 ok 2 | |
| Var3 ok 3 | |
| Directory is ok 3 | |
| --- Mismatched set and end locals | |
| --- Extra setlocal in called batch | |
| value2 | |
| 2set1endvalue1 | |
| @drive@@path@foobar\foodir3 | |
| Finished: | |
| value2 | |
| @drive@@path@foobar\foodir2 | |
| value1 | |
| @drive@@path@foobar | |
| --- Extra endlocal in called batch | |
| value2 | |
| value2 | |
| @drive@@path@foobar\foodir2 | |
| value2 | |
| @drive@@path@foobar\foodir2 | |
| Finished: | |
| value2 | |
| @drive@@path@foobar\foodir2 | |
| value1 | |
| @drive@@path@foobar | |
| --- endlocal in called function rather than batch pgm is ineffective | |
| 2 | |
| 2 | |
| 1 | |
| 2 | |
| 1 | |
| 2 | |
| 1 | |
| 1 | |
| ------------ Testing Errorlevel ------------ | |
| 9009 | |
| 1 | |
| errorlevel just right, good | |
| errorlevel with leading zero just right, good | |
| errorlevel with negative number OK | |
| abc0def@or_broken@abc1def | |
| errorlevel zero, good@or_broken@errorlevel nonzero, bad | |
| 7 should be 7 | |
| 7 should still be 7 | |
| ------------ Testing GOTO ------------ | |
| goto with no leading space worked | |
| goto with colon and no leading space worked | |
| goto with a leading space worked | |
| goto with a leading tab worked | |
| goto with a following space worked | |
| goto with following amphersands worked | |
| goto with redirections worked | |
| Ignoring double colons worked | |
| label with mixed whitespace and no echo worked | |
| Correctly ignored trailing information | |
| ------------ Testing PATH ------------ | |
| PATH=original | |
| PATH=try2 | |
| PATH=try3 | |
| ------------ Testing combined CALLs/GOTOs ------------ | |
| world | |
| cheball | |
| barbare | |
| bar | |
| foo | |
| baz | |
| cheball | |
| barbare |