[CMD_WINETEST] Sync with Wine Staging 2.2. CORE-12823
[reactos.git] / rostests / winetests / cmd / test_builtins.cmd.exp
index ebfe8cd..675fc48 100644 (file)
@@ -42,6 +42,18 @@ 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
 
@@ -76,6 +88,13 @@ word
 @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
@@ -93,6 +112,10 @@ word
 :
 word
 :word
+
+/
+word
+/word
 on again
 word@space@
 word@space@@space@
@@ -225,6 +248,199 @@ WINE_FOO=bar | baz
 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
@@ -251,10 +467,20 @@ 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
-@pwd@\
-@pwd@\
+@drive@@path@
+@drive@@path@
 CD value @pwd@@or_broken@CD value@space@
 %
 P
@@ -289,8 +515,8 @@ C
 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
@@ -305,7 +531,7 @@ N
 @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'
@@ -319,13 +545,14 @@ N
 @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@
@@ -381,22 +608,22 @@ foo5
 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@
@@ -427,6 +654,9 @@ Passed: file size check on subdir\a.a [8]@or_broken@Skipping file size check on
 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
@@ -615,6 +845,19 @@ foo
 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
@@ -683,6 +926,18 @@ 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
@@ -938,7 +1193,7 @@ a d
 a
 C r
 foo bar baz
-@todo_wine@c:\
+c:\
 ------ skip option
 c
 no output
@@ -967,6 +1222,12 @@ 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
 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
@@ -997,8 +1258,8 @@ file move succeeded
 @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
@@ -1067,31 +1328,31 @@ bar\baz removed
 --- 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
@@ -1159,7 +1420,7 @@ passed
 --- 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
@@ -1201,6 +1462,9 @@ Passed: file size check on file3_plus_eof [12]@or_broken@Skipping file size chec
 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
@@ -1228,17 +1492,17 @@ ErrLev: 0
 --- 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
@@ -1256,23 +1520,23 @@ Directory is ok 3
 --- 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
@@ -1294,9 +1558,15 @@ errorlevel zero, good@or_broken@errorlevel nonzero, bad
 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