Module: wine Branch: master Commit: 7ccc169570496d58b91ed0355c21fc136f3ba53d URL: https://gitlab.winehq.org/wine/wine/-/commit/7ccc169570496d58b91ed0355c21fc1...
Author: Eric Pouech epouech@codeweavers.com Date: Thu Jun 27 16:39:47 2024 +0200
cmd: Add success/failure return code tests for CALL command.
Signed-off-by: Eric Pouech epouech@codeweavers.com
---
programs/cmd/tests/test_builtins.cmd | 23 ++++++++++++++++------- programs/cmd/tests/test_builtins.cmd.exp | 19 +++++++++++++------ 2 files changed, 29 insertions(+), 13 deletions(-)
diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd index e97d447ba26..d31cb3ef72a 100644 --- a/programs/cmd/tests/test_builtins.cmd +++ b/programs/cmd/tests/test_builtins.cmd @@ -451,14 +451,23 @@ if 1==0 (echo p1) else echo p2||echo p3 echo --- if 1==0 (echo q1) else echo q2&echo q3 echo ------------- Testing internal commands return codes -call :setError 0 &&echo SUCCESS||echo FAILURE %errorlevel% -call :setError 33 &&echo SUCCESS||echo FAILURE %errorlevel% -call :setError 666 -echo foo &&echo SUCCESS||echo FAILURE %errorlevel% -echo foo >> h:\i\dont\exist\at\all.txt &&echo SUCCESS||echo FAILURE %errorlevel% -type NUL &&echo SUCCESS||echo FAILURE %errorlevel% -type h:\i\dont\exist\at\all.txt &&echo SUCCESS||echo FAILURE %errorlevel% +setlocal EnableDelayedExpansion + +echo --- call and IF/FOR blocks +call :setError 0 &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel! +call :setError 33 &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel! +call :setError 666 & (echo foo &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & (echo foo >> h:\i\dont\exist\at\all.txt &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & ((if 1==1 echo "">NUL) &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & ((if 1==0 echo "">NUL) &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & ((if 1==1 (call :setError 33)) &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & ((if 1==0 (call :setError 33) else call :setError 34) &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & ((for %%i in () do echo "") &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & ((for %%i in () do call :setError 33) &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & ((for %%i in (a) do call :setError 0) &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) +call :setError 666 & ((for %%i in (a) do call :setError 33) &&echo SUCCESS !errorlevel!||echo FAILURE !errorlevel!) echo --- +setlocal DisableDelayedExpansion echo ------------ Testing 'set' ------------ call :setError 0 rem Remove any WINE_FOO* WINE_BA* environment variables from shell before proceeding diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index b4d85161fbb..1799bc795fc 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -450,13 +450,20 @@ p2 q2 q3 ------------- Testing internal commands return codes -SUCCESS -FAILURE 0 +--- call and IF/FOR blocks +SUCCESS 0 +@todo_wine@FAILURE 33 @todo_wine@foo@space@ -@todo_wine@SUCCESS -@todo_wine@FAILURE 666 -SUCCESS -@todo_wine@FAILURE 0 +@todo_wine@SUCCESS 666 +@todo_wine@FAILURE 1 +SUCCESS 666 +@todo_wine@SUCCESS 666 +@todo_wine@FAILURE 33 +@todo_wine@FAILURE 34 +SUCCESS 666 +@todo_wine@SUCCESS 666 +@todo_wine@SUCCESS 0 +@todo_wine@FAILURE 33 @todo_wine@--- ------------ Testing 'set' ------------ 1