mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-08 14:50:10 -06:00
cmProcess: Use explicit enum for process state
Translate the values from KWSys Process.
This commit is contained in:
@@ -154,8 +154,8 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
|
||||
this->WriteLogOutputTop(completed, total);
|
||||
std::string reason;
|
||||
bool passed = true;
|
||||
int res =
|
||||
started ? this->TestProcess->GetProcessStatus() : cmsysProcess_State_Error;
|
||||
cmProcess::State res =
|
||||
started ? this->TestProcess->GetProcessStatus() : cmProcess::State::Error;
|
||||
int retVal = this->TestProcess->GetExitValue();
|
||||
bool forceFail = false;
|
||||
bool skipped = false;
|
||||
@@ -194,7 +194,7 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (res == cmsysProcess_State_Exited) {
|
||||
if (res == cmProcess::State::Exited) {
|
||||
bool success = !forceFail &&
|
||||
(retVal == 0 ||
|
||||
!this->TestProperties->RequiredRegularExpressions.empty());
|
||||
@@ -215,11 +215,11 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
|
||||
cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Failed " << reason);
|
||||
outputTestErrorsToConsole = this->CTest->OutputTestOutputOnTestFailure;
|
||||
}
|
||||
} else if (res == cmsysProcess_State_Expired) {
|
||||
} else if (res == cmProcess::State::Expired) {
|
||||
cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Timeout ");
|
||||
this->TestResult.Status = cmCTestTestHandler::TIMEOUT;
|
||||
outputTestErrorsToConsole = this->CTest->OutputTestOutputOnTestFailure;
|
||||
} else if (res == cmsysProcess_State_Exception) {
|
||||
} else if (res == cmProcess::State::Exception) {
|
||||
outputTestErrorsToConsole = this->CTest->OutputTestOutputOnTestFailure;
|
||||
cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Exception: ");
|
||||
this->TestResult.ExceptionStatus =
|
||||
@@ -248,7 +248,7 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
|
||||
}
|
||||
} else if ("Disabled" == this->TestResult.CompletionStatus) {
|
||||
cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Not Run (Disabled) ");
|
||||
} else // cmsysProcess_State_Error
|
||||
} else // cmProcess::State::Error
|
||||
{
|
||||
cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Not Run ");
|
||||
}
|
||||
|
||||
@@ -156,13 +156,29 @@ int cmProcess::GetNextOutputLine(std::string& line,
|
||||
return cmsysProcess_Pipe_None;
|
||||
}
|
||||
|
||||
// return the process status
|
||||
int cmProcess::GetProcessStatus()
|
||||
cmProcess::State cmProcess::GetProcessStatus()
|
||||
{
|
||||
if (!this->Process) {
|
||||
return cmsysProcess_State_Exited;
|
||||
if (this->Process) {
|
||||
switch (cmsysProcess_GetState(this->Process)) {
|
||||
case cmsysProcess_State_Starting:
|
||||
return State::Starting;
|
||||
case cmsysProcess_State_Error:
|
||||
return State::Error;
|
||||
case cmsysProcess_State_Exception:
|
||||
return State::Exception;
|
||||
case cmsysProcess_State_Executing:
|
||||
return State::Executing;
|
||||
case cmsysProcess_State_Expired:
|
||||
return State::Expired;
|
||||
case cmsysProcess_State_Killed:
|
||||
return State::Killed;
|
||||
case cmsysProcess_State_Disowned:
|
||||
return State::Disowned;
|
||||
default: // case cmsysProcess_State_Exited:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return cmsysProcess_GetState(this->Process);
|
||||
return State::Exited;
|
||||
}
|
||||
|
||||
void cmProcess::ChangeTimeout(std::chrono::duration<double> t)
|
||||
|
||||
@@ -30,8 +30,19 @@ public:
|
||||
// Return true if the process starts
|
||||
bool StartProcess();
|
||||
|
||||
// return the process status
|
||||
int GetProcessStatus();
|
||||
enum class State
|
||||
{
|
||||
Starting,
|
||||
Error,
|
||||
Exception,
|
||||
Executing,
|
||||
Exited,
|
||||
Expired,
|
||||
Killed,
|
||||
Disowned
|
||||
};
|
||||
|
||||
State GetProcessStatus();
|
||||
int GetId() { return this->Id; }
|
||||
void SetId(int id) { this->Id = id; }
|
||||
int GetExitValue() { return this->ExitValue; }
|
||||
|
||||
Reference in New Issue
Block a user