ctest: refactor some code

This commit is contained in:
Gregor Jasny 2019-03-05 19:20:29 +01:00
parent 451d3907fd
commit 1166aa5ce7
3 changed files with 18 additions and 21 deletions

View File

@ -432,32 +432,26 @@ bool cmCTestRunTest::StartTest(size_t completed, size_t total)
this->ProcessOutput.clear(); 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 // Return immediately if test is disabled
if (this->TestProperties->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.CompletionStatus = "Disabled";
this->TestResult.Status = cmCTestTestHandler::NOT_RUN; 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->TestProcess = cm::make_unique<cmProcess>(*this);
this->TestResult.Output = "Disabled"; this->TestResult.Output = "Disabled";
this->TestResult.FullCommandLine.clear(); this->TestResult.FullCommandLine.clear();
return false; 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.CompletionStatus = "Failed to start";
this->TestResult.Status = cmCTestTestHandler::BAD_COMMAND; 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 // 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 // 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 = cm::make_unique<cmProcess>(*this);
this->TestProcess->SetId(this->Index); this->TestProcess->SetId(this->Index);
this->TestProcess->SetWorkingDirectory( this->TestProcess->SetWorkingDirectory(this->TestProperties->Directory);
this->TestProperties->Directory.c_str()); this->TestProcess->SetCommand(this->ActualCommand);
this->TestProcess->SetCommand(this->ActualCommand.c_str());
this->TestProcess->SetCommandArguments(this->Arguments); this->TestProcess->SetCommandArguments(this->Arguments);
// determine how much time we have // determine how much time we have

View File

@ -73,7 +73,7 @@ cmProcess::cmProcess(cmCTestRunTest& runner)
cmProcess::~cmProcess() = default; cmProcess::~cmProcess() = default;
void cmProcess::SetCommand(const char* command) void cmProcess::SetCommand(std::string const& command)
{ {
this->Command = command; this->Command = command;
} }
@ -83,6 +83,11 @@ void cmProcess::SetCommandArguments(std::vector<std::string> const& args)
this->Arguments = 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) bool cmProcess::StartProcess(uv_loop_t& loop, std::vector<size_t>* affinity)
{ {
this->ProcessState = cmProcess::State::Error; this->ProcessState = cmProcess::State::Error;

View File

@ -28,10 +28,9 @@ class cmProcess
public: public:
explicit cmProcess(cmCTestRunTest& runner); explicit cmProcess(cmCTestRunTest& runner);
~cmProcess(); ~cmProcess();
const char* GetCommand() { return this->Command.c_str(); } void SetCommand(std::string const& command);
void SetCommand(const char* command);
void SetCommandArguments(std::vector<std::string> const& arg); 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 SetTimeout(cmDuration t) { this->Timeout = t; }
void ChangeTimeout(cmDuration t); void ChangeTimeout(cmDuration t);
void ResetStartTime(); void ResetStartTime();