Show execution time of tests
[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 #define RBUILD_BASE "tools" SSEP "rbuild" SSEP
8
9 class BaseTest
10 {
11 public:
12 bool Failed;
13 BaseTest ();
14 virtual ~BaseTest ();
15 virtual void Run () = 0;
16 protected:
17 void Assert ( const char *message,
18 ... );
19 void IsNull ( void* reference,
20 const char* file,
21 int line );
22 void IsNotNull ( void* reference,
23 const char* file,
24 int line );
25 void IsTrue ( bool condition,
26 const char* file,
27 int line );
28 void IsFalse ( bool condition,
29 const char* file,
30 int line );
31 void AreEqual ( int expected,
32 int actual,
33 const char* file,
34 int line );
35 void AreEqual ( const std::string& expected,
36 const std::string& actual,
37 const char* file,
38 int line );
39 void AreNotEqual ( int expected,
40 int actual,
41 const char* file,
42 int line );
43 private:
44 void Fail ();
45 };
46
47 #define IS_NULL(reference) IsNull((void*)reference,__FILE__,__LINE__)
48 #define IS_NOT_NULL(reference) IsNotNull((void*)reference,__FILE__,__LINE__)
49 #define IS_TRUE(condition) IsTrue(condition,__FILE__,__LINE__)
50 #define IS_FALSE(condition) IsFalse(condition,__FILE__,__LINE__)
51 #define ARE_EQUAL(expected,actual) AreEqual(expected,actual,__FILE__,__LINE__)
52 #define ARE_NOT_EQUAL(expected,actual) AreNotEqual(expected,actual,__FILE__,__LINE__)
53
54 class ProjectTest : public BaseTest
55 {
56 public:
57 void Run ();
58 };
59
60
61 class ModuleTest : public BaseTest
62 {
63 public:
64 void Run ();
65 };
66
67
68 class DefineTest : public BaseTest
69 {
70 public:
71 void Run ();
72 };
73
74
75 class IncludeTest : public BaseTest
76 {
77 public:
78 void Run ();
79 };
80
81
82 class InvokeTest : public BaseTest
83 {
84 public:
85 void Run ();
86 };
87
88
89 class LinkerFlagTest : public BaseTest
90 {
91 public:
92 void Run ();
93 };
94
95
96 class IfTest : public BaseTest
97 {
98 public:
99 void Run ();
100 private:
101 void TestProjectIf ( Project& project );
102 void TestModuleIf ( Project& project );
103 };
104
105
106 class FunctionTest : public BaseTest
107 {
108 public:
109 void Run ();
110 };
111
112
113 class SourceFileTest : public BaseTest
114 {
115 public:
116 void Run ();
117 void IncludeTest ();
118 void FullParseTest ();
119 private:
120 bool IsParentOf ( const SourceFile* parent,
121 const SourceFile* child );
122
123 };
124
125
126 class CDFileTest : public BaseTest
127 {
128 public:
129 void Run ();
130 };
131
132
133 class SymbolTest : public BaseTest
134 {
135 public:
136 void Run ();
137 };
138
139 #endif /* __TEST_H */