reactos/rostests/win32/cmd/script_testsuite/lib/testlib.cmd
Colin Finck b655fc4f5e Add a testing suite for CMD based on CMD scripts.
Of course, ReactOS' cmd doesn't work at all with the framework at the moment :-)

Some tests were taken from "seta_test.cmd" by Royce. (see file headers)

svn path=/trunk/; revision=33560
2008-05-17 20:01:21 +00:00

70 lines
1.3 KiB
Batchfile

::
:: PROJECT: ReactOS CMD Testing Suite
:: LICENSE: GPL v2 or any later version
:: FILE: lib/testlib.cmd
:: PURPOSE: Library with functions available for all tests
:: COPYRIGHT: Copyright 2008 Colin Finck <mail@colinfinck.de>
::
:: Indicate that a test ran successfully
:_successful
set /a test_count+=1
set /a successful_tests+=1
goto :EOF
:: Indicate that a test failed
:: @param 1 Description of the test that failed
:_failed
set /a test_count+=1
set /a failed_tests+=1
echo Test "%~1" failed!
goto :EOF
:: Test whether a call succeeded
:: @param 1 The test command to run and check
:_test
%~1
if "%errorlevel%" == "0" (
call :_successful
) else (
call :_failed "%~1"
)
goto :EOF
:: Test whether a call failed
:: @param 1 The test command to run and check
:_testnot
%~1
if "%errorlevel%" == "0" (
call :_failed "%~1"
) else (
call :_successful
)
goto :EOF
:: Test the value of a variable
:: @param 1 The variable to check (like %test%)
:: @param 2 The variable name (like test)
:: @param 3 The expected result (like 5)
:: If this parameter wasn't given, _testvar checks if the variable is not ""
:_testvar
if "%~3" == "" (
set testvar_operator=not
) else (
set testvar_operator=
)
if %testvar_operator% "%~1" == "%~3" (
call :_successful
) else (
call :_failed "if %%~2%% == %~3, actual result was %~1"
)
goto :EOF