Started on automatic dependencies support
[reactos.git] / reactos / tools / rbuild / test.h
1 #ifndef __TEST_H
2 #define __TEST_H
3
4 #include "rbuild.h"
5 #include "backend/mingw/mingw.h"
6
7 class BaseTest
8 {
9 public:
10 bool Failed;
11 BaseTest();
12 virtual ~BaseTest();
13 virtual void Run() = 0;
14 protected:
15 void Assert(const char *message, ...);
16 void IsNull(void* reference,
17 const char* file,
18 int line);
19 void IsNotNull(void* reference,
20 const char* file,
21 int line);
22 void IsTrue(bool condition,
23 const char* file,
24 int line);
25 void IsFalse(bool condition,
26 const char* file,
27 int line);
28 void AreEqual(int expected,
29 int actual,
30 const char* file,
31 int line);
32 void AreEqual(const std::string& expected,
33 const std::string& actual,
34 const char* file,
35 int line);
36 void AreNotEqual(int expected,
37 int actual,
38 const char* file,
39 int line);
40 private:
41 void Fail();
42 };
43
44 #define IS_NULL(reference) IsNull((void*)reference,__FILE__,__LINE__)
45 #define IS_NOT_NULL(reference) IsNotNull((void*)reference,__FILE__,__LINE__)
46 #define IS_TRUE(condition) IsTrue(condition,__FILE__,__LINE__)
47 #define IS_FALSE(condition) IsFalse(condition,__FILE__,__LINE__)
48 #define ARE_EQUAL(expected,actual) AreEqual(expected,actual,__FILE__,__LINE__)
49 #define ARE_NOT_EQUAL(expected,actual) AreNotEqual(expected,actual,__FILE__,__LINE__)
50
51 class ProjectTest : public BaseTest
52 {
53 public:
54 void Run();
55 };
56
57
58 class ModuleTest : public BaseTest
59 {
60 public:
61 void Run();
62 };
63
64
65 class DefineTest : public BaseTest
66 {
67 public:
68 void Run();
69 };
70
71
72 class IncludeTest : public BaseTest
73 {
74 public:
75 void Run();
76 };
77
78
79 class InvokeTest : public BaseTest
80 {
81 public:
82 void Run();
83 };
84
85
86 class LinkerFlagTest : public BaseTest
87 {
88 public:
89 void Run();
90 };
91
92
93 class IfTest : public BaseTest
94 {
95 public:
96 void Run();
97 };
98
99
100 class FunctionTest : public BaseTest
101 {
102 public:
103 void Run();
104 };
105
106
107 class SourceFileTest : public BaseTest
108 {
109 public:
110 void Run();
111 };
112
113 #endif /* __TEST_H */