Initialize cmCTestRunTest instances robustly

All instances of this class need a cmCTestTestHandler, so we now require
one to construct it.  The instance also provides the cmCTest instance
too.
This commit is contained in:
Brad King 2009-09-11 10:09:48 -04:00
parent 74b79d3b39
commit b6c26cded2
3 changed files with 6 additions and 18 deletions

View File

@ -83,9 +83,7 @@ void cmCTestMultiProcessHandler::StartTestProcess(int test)
// now remove the test itself // now remove the test itself
this->EraseTest(test); this->EraseTest(test);
cmCTestRunTest* testRun = new cmCTestRunTest; cmCTestRunTest* testRun = new cmCTestRunTest(this->TestHandler);
testRun->SetCTest(this->CTest);
testRun->SetTestHandler(this->TestHandler);
testRun->SetIndex(test); testRun->SetIndex(test);
testRun->SetTestProperties(this->Properties[test]); testRun->SetTestProperties(this->Properties[test]);
if(testRun->StartTest()) if(testRun->StartTest())
@ -346,9 +344,7 @@ void cmCTestMultiProcessHandler::PrintTestList()
count++; count++;
cmCTestTestHandler::cmCTestTestProperties& p = *it->second; cmCTestTestHandler::cmCTestTestProperties& p = *it->second;
cmCTestRunTest testRun; cmCTestRunTest testRun(this->TestHandler);
testRun.SetCTest(this->CTest);
testRun.SetTestHandler(this->TestHandler);
testRun.SetIndex(p.Index); testRun.SetIndex(p.Index);
testRun.SetTestProperties(&p); testRun.SetTestProperties(&p);
testRun.ComputeArguments(); //logs the command in verbose mode testRun.ComputeArguments(); //logs the command in verbose mode

View File

@ -20,8 +20,10 @@
#include "cmCTest.h" #include "cmCTest.h"
#include "cmSystemTools.h" #include "cmSystemTools.h"
cmCTestRunTest::cmCTestRunTest() cmCTestRunTest::cmCTestRunTest(cmCTestTestHandler* handler)
{ {
this->CTest = handler->CTest;
this->TestHandler = handler;
} }
cmCTestRunTest::~cmCTestRunTest() cmCTestRunTest::~cmCTestRunTest()
@ -302,12 +304,6 @@ void cmCTestRunTest::MemCheckPostProcess()
} }
} }
void cmCTestRunTest::SetTestHandler(cmCTestTestHandler * handler)
{
this->TestHandler = handler;
this->CTest = handler->CTest;
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// Starts the execution of a test. Returns once it has started // Starts the execution of a test. Returns once it has started
bool cmCTestRunTest::StartTest() bool cmCTestRunTest::StartTest()

View File

@ -29,7 +29,7 @@
class cmCTestRunTest class cmCTestRunTest
{ {
public: public:
cmCTestRunTest(); cmCTestRunTest(cmCTestTestHandler* handler);
~cmCTestRunTest(); ~cmCTestRunTest();
void SetTestProperties(cmCTestTestHandler::cmCTestTestProperties * prop) void SetTestProperties(cmCTestTestHandler::cmCTestTestProperties * prop)
@ -38,12 +38,8 @@ public:
cmCTestTestHandler::cmCTestTestProperties * GetTestProperties() cmCTestTestHandler::cmCTestTestProperties * GetTestProperties()
{ return this->TestProperties; } { return this->TestProperties; }
void SetTestHandler(cmCTestTestHandler * handler);
void SetIndex(int i) { this->Index = i; } void SetIndex(int i) { this->Index = i; }
void SetCTest(cmCTest * ct) { this->CTest = ct; }
int GetIndex() { return this->Index; } int GetIndex() { return this->Index; }
std::string GetProcessOutput() { return this->ProcessOutput; } std::string GetProcessOutput() { return this->ProcessOutput; }