@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
@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
:
word
:word
+
+/
+word
+/word
on again
word@space@
word@space@@space@
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
''
'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
-@pwd@\
-@pwd@\
+@drive@@path@
+@drive@@path@
CD value @pwd@@or_broken@CD value@space@
%
P
C
'A B'@or_broken@''
'C'@or_broken@''
-@pwd@\C D@or_broken@%~ff
-@pwd@\E@or_broken@%~ff
+@drive@@path@C D@or_broken@%~ff
+@drive@@path@E@or_broken@%~ff
@drive@
@drive@
@path@@or_broken@%~pd
@todo_wine@'@drive@@shortpath@ABCDEFGHIJK.LMNOP'@or_broken@''
''@or_broken@'%~ai'
''@or_broken@'%~ai'
-'--a------'@or_broken@'%~ai'
+'--a------'@or_broken@'--a--------'@or_broken@'--a--c---'@or_broken@'%~ai'
'5'@or_broken@'%~zi'
''@or_broken@'%~ti'
''@or_broken@'%~ti'
@drive@
''
'.eh'
+',,,,,,,,,'
--- in parameters
"A B"
C
'A B'@or_broken@''
'C'@or_broken@''
-@pwd@\C D
-@pwd@\E
+@drive@@path@C D
+@drive@@path@E
@drive@
@drive@
@path@
foo6@space@
@todo_wine@------------ Testing cd ------------
singleFile
-Current dir: @pwd@\foobar@or_broken@Current dir:@space@
-@pwd@\foobar
+Current dir: @drive@@path@foobar@or_broken@Current dir:@space@
+@drive@@path@foobar
@pwd@
-@pwd@\foobar
+@drive@@path@foobar
@pwd@
-@pwd@\foobar
+@drive@@path@foobar
@pwd@
@pwd@
@pwd@
-@pwd@\foobar\bar bak
-@pwd@\foobar\bar bak
-@pwd@\foobar\bar bak
-@pwd@\foobar\bar bak
-@pwd@\foobar\bar bak
+@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@
-@pwd@\foobar
+@drive@@path@foobar
------------ Testing type ------------
@pwd@>type foobaz@space@
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
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
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
a
C r
foo bar baz
-@todo_wine@c:\
+c:\
------ skip option
c
no output
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
@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
+moving a file to itself is a no-op@or_broken@moving a file to itself should be a no-op!
+ErrorLevel: 0@or_broken@ErrorLevel: 1
--- directory move
simple directory move succeeded
moving a directory to itself gives error; errlevel 1
--- pushing non-existing dir
@pwd@
--- basic behaviour
-@pwd@\foobar
+@drive@@path@foobar
@pwd@
-@pwd@\foobar\baz
-@pwd@\foobar
-@pwd@\foobar
+@drive@@path@foobar\baz
+@drive@@path@foobar
+@drive@@path@foobar
@pwd@
-@pwd@\foobar
+@drive@@path@foobar
@pwd@
------------ Testing attrib ------------
-A @pwd@\foobar\foo@or_broken@A @pwd@\foobar\foo@or_broken@A I @pwd@\foobar\foo
+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 @pwd@\foobar\foo@or_broken@A R @pwd@\foobar\foo@or_broken@A R I @pwd@\foobar\foo
+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 @pwd@\foobar\baz\level2@or_broken@A @pwd@\foobar\baz\level2@or_broken@A I @pwd@\foobar\baz\level2
-A R @pwd@\foobar\level1@or_broken@A R @pwd@\foobar\level1@or_broken@A R I @pwd@\foobar\level1
-A R @pwd@\foobar\baz\level2@or_broken@A R @pwd@\foobar\baz\level2@or_broken@A R I @pwd@\foobar\baz\level2
-A @pwd@\foobar\bar@or_broken@A @pwd@\foobar\bar@or_broken@A I @pwd@\foobar\bar
+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
- @pwd@\foobar@or_broken@ @pwd@\foobar@or_broken@ I @pwd@\foobar
-@todo_wine@ R @pwd@\foobar\baz@or_broken@ R @pwd@\foobar\baz@or_broken@ @pwd@\foobar\baz@or_broken@ R I @pwd@\foobar\baz
-A @pwd@\foobar\baz\toto@or_broken@A @pwd@\foobar\baz\toto@or_broken@A I @pwd@\foobar\baz\toto
+ @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
--- a batch file can delete itself
file correctly deleted
--- a batch file can alter itself
-@todo_wine@bar
+bar
---------- Testing copy
Passed: Found expected dummy.file
Passed: Found expected dir1\file1
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
--- setlocal with corresponding endlocal
globalval
localval
-@pwd@\foobar\foobar2
+@drive@@path@foobar\foobar2
globalval
-@pwd@\foobar
+@drive@@path@foobar
globalval
-@pwd@\foobar
+@drive@@path@foobar
--- setlocal with no corresponding endlocal
globalval
localval
-@pwd@\foobar\foobar2
+@drive@@path@foobar\foobar2
globalval
-@pwd@\foobar
+@drive@@path@foobar
--- setlocal within same batch program
Var1 ok 1
Var2 ok 2
--- Extra setlocal in called batch
value2
2set1endvalue1
-@pwd@\foobar\foodir3
+@drive@@path@foobar\foodir3
Finished:
value2
-@pwd@\foobar\foodir2
+@drive@@path@foobar\foodir2
value1
-@pwd@\foobar
+@drive@@path@foobar
--- Extra endlocal in called batch
value2
value2
-@pwd@\foobar\foodir2
+@drive@@path@foobar\foodir2
value2
-@pwd@\foobar\foodir2
+@drive@@path@foobar\foodir2
Finished:
value2
-@pwd@\foobar\foodir2
+@drive@@path@foobar\foodir2
value1
-@pwd@\foobar
+@drive@@path@foobar
--- endlocal in called function rather than batch pgm is ineffective
2
2
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