scroll mode for very long start menus
[reactos.git] / reactos / apps / tests / test_old / testsuite.h
1
2 #ifndef H_TESTSUITE_H
3 #define H_TESTSUITE_H
4
5 struct TestSuite
6 {
7 char *name;
8 void (*testFunc)(void);
9 };
10
11 typedef struct TestSuite TEST_SUITE, *PTEST_SUITE;
12
13 #define ADD_TEST(x) {#x, x}
14 #define END_TESTS {0, 0}
15 #define COUNT_TESTS(x) (sizeof x/sizeof (struct TestSuite))
16
17 struct TestRunner
18 {
19 int tests;
20 int assertions;
21 int failures;
22 int successes;
23 };
24
25 typedef struct TestRunner TEST_RUNNER, *PTEST_RUNNER;
26
27 void tsDoAssertion (BOOL pTest,
28 PCHAR pTestText,
29 PCHAR pFunction,
30 int pLine,
31 ...);
32
33 #ifdef ASSERT
34 #undef ASSERT
35 #endif
36 #define ASSERT(x) tsDoAssertion (x, "assertion \"" ## #x ## "\" failed", __FUNCTION__, __LINE__)
37 #define ASSERT_MSG(x,y,a...) tsDoAssertion (x, y, __FUNCTION__, __LINE__,a)
38
39 void tsRunTests (PTEST_RUNNER pTestRunner, PTEST_SUITE pTests);
40 void tsReportResults (PTEST_RUNNER pTestRunner);
41
42 #endif
43
44