summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGregor Jasny <gjasny@googlemail.com>2019-03-05 18:20:29 (GMT)
committerGregor Jasny <gjasny@googlemail.com>2019-03-05 18:20:29 (GMT)
commit1166aa5ce784a07ca2ce7d750f11ed174562bdc6 (patch)
tree35dd486d2f8a6ea1a8f023bde8f548a14eb0432b
parent451d3907fdb0eea70f1107712324300d786433d7 (diff)
downloadCMake-1166aa5ce784a07ca2ce7d750f11ed174562bdc6.zip
CMake-1166aa5ce784a07ca2ce7d750f11ed174562bdc6.tar.gz
CMake-1166aa5ce784a07ca2ce7d750f11ed174562bdc6.tar.bz2
ctest: refactor some code
-rw-r--r--Source/CTest/cmCTestRunTest.cxx27
-rw-r--r--Source/CTest/cmProcess.cxx7
-rw-r--r--Source/CTest/cmProcess.h5
3 files changed, 18 insertions, 21 deletions
diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx
index 41d02c5..3bf2087 100644
--- a/Source/CTest/cmCTestRunTest.cxx
+++ b/Source/CTest/cmCTestRunTest.cxx
@@ -432,32 +432,26 @@ bool cmCTestRunTest::StartTest(size_t completed, size_t total)
this->ProcessOutput.clear();
+ this->TestResult.Properties = this->TestProperties;
+ this->TestResult.ExecutionTime = cmDuration::zero();
+ this->TestResult.CompressOutput = false;
+ this->TestResult.ReturnValue = -1;
+ this->TestResult.TestCount = this->TestProperties->Index;
+ this->TestResult.Name = this->TestProperties->Name;
+ this->TestResult.Path = this->TestProperties->Directory;
+
// Return immediately if test is disabled
if (this->TestProperties->Disabled) {
- this->TestResult.Properties = this->TestProperties;
- this->TestResult.ExecutionTime = cmDuration::zero();
- this->TestResult.CompressOutput = false;
- this->TestResult.ReturnValue = -1;
this->TestResult.CompletionStatus = "Disabled";
this->TestResult.Status = cmCTestTestHandler::NOT_RUN;
- this->TestResult.TestCount = this->TestProperties->Index;
- this->TestResult.Name = this->TestProperties->Name;
- this->TestResult.Path = this->TestProperties->Directory;
this->TestProcess = cm::make_unique<cmProcess>(*this);
this->TestResult.Output = "Disabled";
this->TestResult.FullCommandLine.clear();
return false;
}
- this->TestResult.Properties = this->TestProperties;
- this->TestResult.ExecutionTime = cmDuration::zero();
- this->TestResult.CompressOutput = false;
- this->TestResult.ReturnValue = -1;
this->TestResult.CompletionStatus = "Failed to start";
this->TestResult.Status = cmCTestTestHandler::BAD_COMMAND;
- this->TestResult.TestCount = this->TestProperties->Index;
- this->TestResult.Name = this->TestProperties->Name;
- this->TestResult.Path = this->TestProperties->Directory;
// Check for failed fixture dependencies before we even look at the command
// arguments because if we are not going to run the test, the command and
@@ -635,9 +629,8 @@ bool cmCTestRunTest::ForkProcess(cmDuration testTimeOut, bool explicitTimeout,
{
this->TestProcess = cm::make_unique<cmProcess>(*this);
this->TestProcess->SetId(this->Index);
- this->TestProcess->SetWorkingDirectory(
- this->TestProperties->Directory.c_str());
- this->TestProcess->SetCommand(this->ActualCommand.c_str());
+ this->TestProcess->SetWorkingDirectory(this->TestProperties->Directory);
+ this->TestProcess->SetCommand(this->ActualCommand);
this->TestProcess->SetCommandArguments(this->Arguments);
// determine how much time we have
diff --git a/Source/CTest/cmProcess.cxx b/Source/CTest/cmProcess.cxx
index cd2e2f7..bfe8d70 100644
--- a/Source/CTest/cmProcess.cxx
+++ b/Source/CTest/cmProcess.cxx
@@ -73,7 +73,7 @@ cmProcess::cmProcess(cmCTestRunTest& runner)
cmProcess::~cmProcess() = default;
-void cmProcess::SetCommand(const char* command)
+void cmProcess::SetCommand(std::string const& command)
{
this->Command = command;
}
@@ -83,6 +83,11 @@ void cmProcess::SetCommandArguments(std::vector<std::string> const& args)
this->Arguments = args;
}
+void cmProcess::SetWorkingDirectory(std::string const& dir)
+{
+ this->WorkingDirectory = dir;
+}
+
bool cmProcess::StartProcess(uv_loop_t& loop, std::vector<size_t>* affinity)
{
this->ProcessState = cmProcess::State::Error;
diff --git a/Source/CTest/cmProcess.h b/Source/CTest/cmProcess.h
index e5ca17f..a0a4b6b 100644
--- a/Source/CTest/cmProcess.h
+++ b/Source/CTest/cmProcess.h
@@ -28,10 +28,9 @@ class cmProcess
public:
explicit cmProcess(cmCTestRunTest& runner);
~cmProcess();
- const char* GetCommand() { return this->Command.c_str(); }
- void SetCommand(const char* command);
+ void SetCommand(std::string const& command);
void SetCommandArguments(std::vector<std::string> const& arg);
- void SetWorkingDirectory(const char* dir) { this->WorkingDirectory = dir; }
+ void SetWorkingDirectory(std::string const& dir);
void SetTimeout(cmDuration t) { this->Timeout = t; }
void ChangeTimeout(cmDuration t);
void ResetStartTime();