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

View File

@ -20,8 +20,10 @@
#include "cmCTest.h"
#include "cmSystemTools.h"
cmCTestRunTest::cmCTestRunTest()
cmCTestRunTest::cmCTestRunTest(cmCTestTestHandler* handler)
{
this->CTest = handler->CTest;
this->TestHandler = handler;
}
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
bool cmCTestRunTest::StartTest()

View File

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