mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
1) vector<BaseClass> = bad juju, must use vector<BaseClass*>
2) BaseClass must have virtual dtor 3) make Run() pure virtual svn path=/branches/xmlbuildsystem/; revision=12769
This commit is contained in:
@@ -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();
|
||||
};
|
||||
|
||||
|
||||
@@ -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<BaseTest*>
|
||||
{
|
||||
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<BaseTest> 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<BaseTest> GetTests()
|
||||
BaseTestList GetTests()
|
||||
{
|
||||
vector<BaseTest> tests;
|
||||
tests.push_back(ModuleTest());
|
||||
BaseTestList tests;
|
||||
tests.push_back(new ModuleTest());
|
||||
return tests;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user