diff --git a/reactos/tools/rbuild/test.h b/reactos/tools/rbuild/test.h index e8471af52a4..2c5c806b6a0 100644 --- a/reactos/tools/rbuild/test.h +++ b/reactos/tools/rbuild/test.h @@ -8,7 +8,8 @@ class BaseTest public: bool Failed; BaseTest(); - /*virtual void Run();*/ + virtual ~BaseTest(); + virtual void Run() = 0; protected: void Assert(char *message); void IsTrue(bool condition); @@ -24,6 +25,7 @@ private: class ModuleTest : public BaseTest { +public: void Run(); }; diff --git a/reactos/tools/rbuild/tests/alltests.cpp b/reactos/tools/rbuild/tests/alltests.cpp index e19211ef06c..6afb3bf573d 100644 --- a/reactos/tools/rbuild/tests/alltests.cpp +++ b/reactos/tools/rbuild/tests/alltests.cpp @@ -5,11 +5,11 @@ BaseTest::BaseTest() { Failed = true; } -/* -void BaseTest::Run() + +BaseTest::~BaseTest() { } -*/ + void BaseTest::Assert(char *message) { printf(message); @@ -81,6 +81,17 @@ void BaseTest::Fail() Failed = true; } +class BaseTestList : public vector +{ +public: + ~BaseTestList() + { + for ( size_t i = 0; i < size(); i++ ) + { + delete (*this)[i]; + } + } +}; class TestDispatcher { @@ -88,10 +99,10 @@ public: void Run() { int numberOfFailedTests = 0; - vector tests = GetTests(); + BaseTestList tests = GetTests(); for (size_t i = 0; i < tests.size(); i++) { - BaseTest& test = tests[i]; + BaseTest& test = *tests[i]; /*test.Run();*/ if (test.Failed) numberOfFailedTests++; @@ -105,10 +116,10 @@ public: } private: - vector GetTests() + BaseTestList GetTests() { - vector tests; - tests.push_back(ModuleTest()); + BaseTestList tests; + tests.push_back(new ModuleTest()); return tests; } };