Przeglądaj źródła

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.
Brad King 16 lat temu
rodzic
commit
b6c26cded2

+ 2 - 6
Source/CTest/cmCTestMultiProcessHandler.cxx

@@ -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

+ 3 - 7
Source/CTest/cmCTestRunTest.cxx

@@ -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()

+ 1 - 5
Source/CTest/cmCTestRunTest.h

@@ -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; }