From 24bc72075e8bb56d096d23907509314cb6911d05 Mon Sep 17 00:00:00 2001 From: Royce Mitchell III Date: Tue, 4 Jan 2005 03:10:07 +0000 Subject: [PATCH] don't pass vector by value unless you are looking for trouble, also fixed Assert() to take stdargs to make it's usage simpler and less error-prone. Also fixed IsTrue(), etc, to take file and line info by args and created macros to pass that info automatically. svn path=/branches/xmlbuildsystem/; revision=12775 --- reactos/tools/rbuild/test.h | 22 ++++-- reactos/tools/rbuild/tests/alltests.cpp | 83 +++++++++++------------ reactos/tools/rbuild/tests/moduletest.cpp | 2 +- 3 files changed, 59 insertions(+), 48 deletions(-) diff --git a/reactos/tools/rbuild/test.h b/reactos/tools/rbuild/test.h index 2c5c806b6a0..a598c5ba58c 100644 --- a/reactos/tools/rbuild/test.h +++ b/reactos/tools/rbuild/test.h @@ -11,17 +11,29 @@ public: virtual ~BaseTest(); virtual void Run() = 0; protected: - void Assert(char *message); - void IsTrue(bool condition); - void IsFalse(bool condition); + void Assert(const char *message, ...); + void IsTrue(bool condition, + const char* file, + int line ); + void IsFalse(bool condition, + const char* file, + int line ); void AreEqual(int expected, - int actual); + int actual, + const char* file, + int line ); void AreNotEqual(int expected, - int actual); + int actual, + const char* file, + int line ); private: void Fail(); }; +#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 ModuleTest : public BaseTest { diff --git a/reactos/tools/rbuild/tests/alltests.cpp b/reactos/tools/rbuild/tests/alltests.cpp index 6afb3bf573d..dc39641b451 100644 --- a/reactos/tools/rbuild/tests/alltests.cpp +++ b/reactos/tools/rbuild/tests/alltests.cpp @@ -1,3 +1,4 @@ +#include #include "rbuild.h" #include "test.h" @@ -10,69 +11,68 @@ BaseTest::~BaseTest() { } -void BaseTest::Assert(char *message) +void BaseTest::Assert(const char *message, ...) { - printf(message); + va_list args; + va_start ( args, message ); + vprintf(message, args); + va_end ( args ); Fail(); } -void BaseTest::IsTrue(bool condition) +void BaseTest::IsTrue(bool condition, + const char* file, + int line) { if (!condition) { - char message[100]; - sprintf(message, - "Condition was not true at %s:%d", - __FILE__, - __LINE__); - Assert(message); + Assert("Condition was not true at %s:%d\n", + file, + line); } } -void BaseTest::IsFalse(bool condition) +void BaseTest::IsFalse(bool condition, + const char* file, + int line) { if (condition) { - char message[100]; - sprintf(message, - "Condition was not false at %s:%d", - __FILE__, - __LINE__); - Assert(message); + Assert("Condition was not false at %s:%d\n", + file, + line); } } void BaseTest::AreEqual(int expected, - int actual) + int actual, + const char* file, + int line) { if (actual != expected) { - char message[100]; - sprintf(message, - "Expected %d/0x%.08x was %d/0x%.08x at %s:%d", - expected, - expected, - actual, - actual, - __FILE__, - __LINE__); - Assert(message); + Assert("Expected %d/0x%.08x was %d/0x%.08x at %s:%d\n", + expected, + expected, + actual, + actual, + file, + line); } } void BaseTest::AreNotEqual(int expected, - int actual) + int actual, + const char* file, + int line) { if (actual == expected) { - char message[100]; - sprintf(message, - "Actual value expected to be different from %d/0x%.08x at %s:%d", - expected, - expected, - __FILE__, - __LINE__); - Assert(message); + Assert("Actual value expected to be different from %d/0x%.08x at %s:%d\n", + expected, + expected, + file, + line); } } @@ -99,11 +99,12 @@ public: void Run() { int numberOfFailedTests = 0; - BaseTestList tests = GetTests(); + BaseTestList tests; + GetTests(tests); for (size_t i = 0; i < tests.size(); i++) { BaseTest& test = *tests[i]; - /*test.Run();*/ + test.Run(); if (test.Failed) numberOfFailedTests++; } @@ -116,11 +117,9 @@ public: } private: - BaseTestList GetTests() + void GetTests ( BaseTestList& tests ) { - BaseTestList tests; tests.push_back(new ModuleTest()); - return tests; } }; @@ -128,7 +127,7 @@ private: int main(int argc, char** argv) { - TestDispatcher testDispatcher = TestDispatcher(); + TestDispatcher testDispatcher; testDispatcher.Run(); return 0; }; diff --git a/reactos/tools/rbuild/tests/moduletest.cpp b/reactos/tools/rbuild/tests/moduletest.cpp index 5d46a740037..4e7f0f2d75d 100644 --- a/reactos/tools/rbuild/tests/moduletest.cpp +++ b/reactos/tools/rbuild/tests/moduletest.cpp @@ -2,5 +2,5 @@ void ModuleTest::Run() { - IsTrue(false); + IS_TRUE(false); }