Merge trunk HEAD (r46369)
[reactos.git] / reactos / tools / rbuild / test.h
index a598c5b..69e131f 100644 (file)
-#ifndef __TEST_H\r
-#define __TEST_H\r
-\r
-#include "rbuild.h"\r
-\r
-class BaseTest\r
-{\r
-public:\r
-       bool Failed;\r
-       BaseTest();\r
-       virtual ~BaseTest();\r
-       virtual void Run() = 0;\r
-protected:\r
-       void Assert(const char *message, ...);\r
-       void IsTrue(bool condition,\r
-                   const char* file,\r
-                   int line );\r
-       void IsFalse(bool condition,\r
-                    const char* file,\r
-                    int line );\r
-       void AreEqual(int expected,\r
-                     int actual,\r
-                     const char* file,\r
-                     int line );\r
-       void AreNotEqual(int expected,\r
-                        int actual,\r
-                        const char* file,\r
-                        int line );\r
-private:\r
-       void Fail();\r
-};\r
-\r
-#define IS_TRUE(condition) IsTrue(condition,__FILE__,__LINE__)\r
-#define IS_FALSE(condition) IsFalse(condition,__FILE__,__LINE__)\r
-#define ARE_EQUAL(expected,actual) AreEqual(expected,actual,__FILE__,__LINE__)\r
-#define ARE_NOT_EQUAL(expected,actual) AreNotEqual(expected,actual,__FILE__,__LINE__)\r
-\r
-class ModuleTest : public BaseTest\r
-{\r
-public:\r
-       void Run();\r
-};\r
-\r
-#endif /* __TEST_H */\r
+/*
+ * Copyright (C) 2005 Casper S. Hornstrup
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#pragma once
+
+#include "rbuild.h"
+#include "backend/mingw/mingw.h"
+
+#define SSEP DEF_SSEP
+
+#define RBUILD_BASE "tools" SSEP "rbuild" SSEP
+
+class BaseTest
+{
+public:
+       bool Failed;
+       BaseTest ();
+       virtual ~BaseTest ();
+       virtual void Run () = 0;
+protected:
+       void Assert ( const char *message,
+                     ... );
+       void IsNull ( void* reference,
+                     const char* file,
+                     int line );
+       void IsNotNull ( void* reference,
+                        const char* file,
+                        int line );
+       void IsTrue ( bool condition,
+                     const char* file,
+                     int line );
+       void IsFalse ( bool condition,
+                      const char* file,
+                      int line );
+       void AreEqual ( int expected,
+                       int actual,
+                       const char* file,
+                       int line );
+       void AreEqual ( const std::string& expected,
+                       const std::string& actual,
+                       const char* file,
+                       int line );
+       void AreNotEqual ( int expected,
+                          int actual,
+                          const char* file,
+                          int line );
+private:
+       void Fail ();
+};
+
+#define IS_NULL(reference) IsNull((void*)reference,__FILE__,__LINE__)
+#define IS_NOT_NULL(reference) IsNotNull((void*)reference,__FILE__,__LINE__)
+#define IS_TRUE(condition) IsTrue(condition,__FILE__,__LINE__)
+#define IS_FALSE(condition) IsFalse(condition,__FILE__,__LINE__)
+#define ARE_EQUAL(expected,actual) AreEqual(expected,actual,__FILE__,__LINE__)
+#define ARE_NOT_EQUAL(expected,actual) AreNotEqual(expected,actual,__FILE__,__LINE__)
+
+class ProjectTest : public BaseTest
+{
+public:
+       void Run ();
+};
+
+
+class ModuleTest : public BaseTest
+{
+public:
+       void Run ();
+};
+
+
+class DefineTest : public BaseTest
+{
+public:
+       void Run ();
+};
+
+
+class IncludeTest : public BaseTest
+{
+public:
+       void Run ();
+};
+
+
+class InvokeTest : public BaseTest
+{
+public:
+       void Run ();
+};
+
+
+class LinkerFlagTest : public BaseTest
+{
+public:
+       void Run ();
+};
+
+
+class IfTest : public BaseTest
+{
+public:
+       void Run ();
+private:
+       void TestProjectIf ( Project& project );
+       void TestModuleIf ( Project& project );
+};
+
+
+class FunctionTest : public BaseTest
+{
+public:
+       void Run ();
+};
+
+
+class SourceFileTest : public BaseTest
+{
+public:
+       void Run ();
+       void IncludeTest ();
+       void FullParseTest ();
+private:
+       bool IsParentOf ( const SourceFile* parent,
+                         const SourceFile* child );
+
+};
+
+
+class CDFileTest : public BaseTest
+{
+public:
+       void Run ();
+};
+
+
+class SymbolTest : public BaseTest
+{
+public:
+       void Run ();
+};
+
+class CompilationUnitTest : public BaseTest
+{
+public:
+       void Run ();
+};