From: Eric Pouech epouech@codeweavers.com
Signed-off-by: Eric Pouech epouech@codeweavers.com --- programs/cmd/tests/test_builtins.bat | 35 ++++++++++++++++++++++-- programs/cmd/tests/test_builtins.bat.exp | 10 +++++++ programs/cmd/tests/test_builtins.cmd | 35 ++++++++++++++++++++++-- programs/cmd/tests/test_builtins.cmd.exp | 12 ++++++++ 4 files changed, 86 insertions(+), 6 deletions(-)
diff --git a/programs/cmd/tests/test_builtins.bat b/programs/cmd/tests/test_builtins.bat index a95c94c5ad8..728a0e4eafc 100644 --- a/programs/cmd/tests/test_builtins.bat +++ b/programs/cmd/tests/test_builtins.bat @@ -35,12 +35,41 @@ rem call :setError 666 & (foobar.IDontExist &&echo SUCCESS !errorlevel!||echo FA cd .. && rd /q /s foo echo --- success/failure for CALL command mkdir foo & cd foo -echo exit /b %%1 > foobar.bat +rem generating different condition of child.bat termination (success/failure, errorlevel set or not...) +echo exit /b %%1 > foobarEB.bat +echo type NUL > foobarS0.bat +echo rmdir foobar.dir > foobarSEL.bat +echo title foo >> foobarSEL.bat +echo rmdir foobar.dir > foobarF2.bat +echo type NUL > foobarS0WS.bat +echo.>> foobarS0WS.bat +echo goto :EOF > foobarGE.bat +echo goto :end > foobarGL.bat +echo :end >> foobarGL.bat +echo goto :end > foobarGX.bat +echo rmdir foobar.dir > foobarFGE.bat +echo goto :EOF >> foobarFGE.bat +echo rmdir foobar.dir > foobarFGL.bat +echo goto :end >> foobarFGL.bat +echo :end >> foobarFGL.bat +echo rmdir foobar.dir > foobarFGX.bat +echo goto :end >> foobarFGX.bat + rem call :setError 666 & (call I\dont\exist.exe &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) rem terminates batch exec on native... call :setError 666 & (call Idontexist.exe &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) -call :setError 666 & (call .\foobar.bat 0 &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) -call :setError 666 & (call .\foobar.bat 1024 &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarEB.bat 0 &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarEB.bat 1024 &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarS0.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarS0WS.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarSEL.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarF2.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarGE.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarGL.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarGX.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarFGE.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarFGL.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarFGX.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) call :setError 666 & (call cmd.exe /c "echo foo & exit /b 0" &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) call :setError 666 & (call cmd.exe /c "echo foo & exit /b 1025" &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) call :setError 666 & (call rmdir foobar.dir &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) diff --git a/programs/cmd/tests/test_builtins.bat.exp b/programs/cmd/tests/test_builtins.bat.exp index a2cbe0cecd7..492aace865e 100644 --- a/programs/cmd/tests/test_builtins.bat.exp +++ b/programs/cmd/tests/test_builtins.bat.exp @@ -31,6 +31,16 @@ FAILURE 1 FAILURE 1 SUCCESS 0 FAILURE 1024 +SUCCESS 0 +@todo_wine@SUCCESS 0 +@todo_wine@FAILURE 666 +FAILURE 2 +FAILURE 666 +FAILURE 666 +FAILURE 1 +FAILURE 666 +FAILURE 666 +FAILURE 1 foo@space@ SUCCESS 0 foo@space@ diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd index 3e102a7f366..ac4e3195be7 100644 --- a/programs/cmd/tests/test_builtins.cmd +++ b/programs/cmd/tests/test_builtins.cmd @@ -499,12 +499,39 @@ rem call :setError 666 & (foobar.IDontExist &&echo SUCCESS !errorlevel!||echo FA cd .. && rd /q /s foo echo --- success/failure for CALL command mkdir foo & cd foo -echo exit /b %%1 > foobar.bat +echo exit /b %%1 > foobarEB.bat +echo type NUL > foobarS0.bat +echo rmdir foobar.dir > foobarSEL.bat +echo title foo >> foobarSEL.bat +echo rmdir foobar.dir > foobarF2.bat +echo type NUL > foobarS0WS.bat +echo.>> foobarS0WS.bat +echo goto :EOF > foobarGE.bat +echo goto :end > foobarGL.bat +echo :end >> foobarGL.bat +echo goto :end > foobarGX.bat +echo rmdir foobar.dir > foobarFGE.bat +echo goto :EOF >> foobarFGE.bat +echo rmdir foobar.dir > foobarFGL.bat +echo goto :end >> foobarFGL.bat +echo :end >> foobarFGL.bat +echo rmdir foobar.dir > foobarFGX.bat +echo goto :end >> foobarFGX.bat rem call :setError 666 & (call I\dont\exist.exe &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) rem terminates batch exec on native... call :setError 666 & (call Idontexist.exe &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) -call :setError 666 & (call .\foobar.bat 0 &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) -call :setError 666 & (call .\foobar.bat 1024 &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarEB.bat 0 &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarEB.bat 1024 &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarS0.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarS0WS.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarSEL.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarF2.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarGE.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarGL.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarGX.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarFGE.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarFGL.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (call .\foobarFGX.bat &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) call :setError 666 & (call cmd.exe /c "echo foo & exit /b 0" &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) call :setError 666 & (call cmd.exe /c "echo foo & exit /b 1025" &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) call :setError 666 & (call rmdir foobar.dir &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) @@ -2423,6 +2450,8 @@ echo a > foo echo b >> foo echo c >> foo for /f "skip=2" %%i in (foo) do echo %%i +for /f "skip=2@tab@" %%i in (foo) do echo %%i +echo ---- resync for /f "skip=3" %%i in (foo) do echo %%i > output_file if not exist output_file (echo no output) else (del output_file) for /f "skip=4" %%i in (foo) do echo %%i > output_file diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index 4499a3ce678..09eb0d958dc 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -482,6 +482,16 @@ FAILURE 1 FAILURE 1 SUCCESS 0 FAILURE 1024 +SUCCESS 0 +@todo_wine@SUCCESS 0 +@todo_wine@FAILURE 666 +FAILURE 2 +FAILURE 666 +FAILURE 666 +FAILURE 1 +FAILURE 666 +FAILURE 666 +FAILURE 1 foo@space@ SUCCESS 0 foo@space@ @@ -1588,6 +1598,8 @@ foo bar baz c:\ ------ skip option c +@todo_wine@c +---- resync no output no output c