1::
2:: PROJECT:     ReactOS CMD Testing Suite
3:: LICENSE:     GPL v2 or any later version
4:: FILE:        lib/testlib.cmd
5:: PURPOSE:     Library with functions available for all tests
6:: COPYRIGHT:   Copyright 2008 Colin Finck <mail@colinfinck.de>
7::
8
9:: Indicate that a test ran successfully
10:_successful
11set /a test_count+=1
12set /a successful_tests+=1
13goto :EOF
14
15
16:: Indicate that a test failed
17:: @param 1  Description of the test that failed
18:_failed
19set /a test_count+=1
20set /a failed_tests+=1
21echo Test "%~1" failed!
22goto :EOF
23
24
25:: Test whether a call succeeded
26:: @param 1  The test command to run and check
27:_test
28%~1
29
30if "%errorlevel%" == "0" (
31	call :_successful
32) else (
33	call :_failed "%~1"
34)
35goto :EOF
36
37
38:: Test whether a call failed
39:: @param 1  The test command to run and check
40:_testnot
41%~1
42
43if "%errorlevel%" == "0" (
44	call :_failed "%~1"
45) else (
46	call :_successful
47)
48goto :EOF
49
50
51:: Test the value of a variable
52:: @param 1  The variable to check (like %test%)
53:: @param 2  The variable name (like test)
54:: @param 3  The expected result (like 5)
55::           If this parameter wasn't given, _testvar checks if the variable is not ""
56:_testvar
57if "%~3" == "" (
58	set testvar_operator=not
59) else (
60	set testvar_operator=
61)
62
63if %testvar_operator% "%~1" == "%~3" (
64	call :_successful
65) else (
66	call :_failed "if %%~2%% == %~3, actual result was %~1"
67)
68
69goto :EOF
70