diff options
author | Bryon Bean <bryon.bean@kitware.com> | 2017-10-23 12:16:45 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-01-10 15:19:14 (GMT) |
commit | fcebff75f912f50bdc7fd30f4185141255ba4b1f (patch) | |
tree | 7d5fd4b5c40c4d9bf25e27172443f43332d84b39 /Source/CTest | |
parent | 3dd2edf4ab94f5044b73b20151592c8e94a5160a (diff) | |
download | CMake-fcebff75f912f50bdc7fd30f4185141255ba4b1f.zip CMake-fcebff75f912f50bdc7fd30f4185141255ba4b1f.tar.gz CMake-fcebff75f912f50bdc7fd30f4185141255ba4b1f.tar.bz2 |
cmProcess: Use explicit enum for process exit exception
Translate the values from KWSys Process.
Diffstat (limited to 'Source/CTest')
-rw-r--r-- | Source/CTest/cmCTestRunTest.cxx | 8 | ||||
-rw-r--r-- | Source/CTest/cmProcess.cxx | 18 | ||||
-rw-r--r-- | Source/CTest/cmProcess.h | 14 |
3 files changed, 33 insertions, 7 deletions
diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx index 1f7516c..906e547 100644 --- a/Source/CTest/cmCTestRunTest.cxx +++ b/Source/CTest/cmCTestRunTest.cxx @@ -225,19 +225,19 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started) this->TestResult.ExceptionStatus = this->TestProcess->GetExitExceptionString(); switch (this->TestProcess->GetExitException()) { - case cmsysProcess_Exception_Fault: + case cmProcess::Exception::Fault: cmCTestLog(this->CTest, HANDLER_OUTPUT, "SegFault"); this->TestResult.Status = cmCTestTestHandler::SEGFAULT; break; - case cmsysProcess_Exception_Illegal: + case cmProcess::Exception::Illegal: cmCTestLog(this->CTest, HANDLER_OUTPUT, "Illegal"); this->TestResult.Status = cmCTestTestHandler::ILLEGAL; break; - case cmsysProcess_Exception_Interrupt: + case cmProcess::Exception::Interrupt: cmCTestLog(this->CTest, HANDLER_OUTPUT, "Interrupt"); this->TestResult.Status = cmCTestTestHandler::INTERRUPT; break; - case cmsysProcess_Exception_Numerical: + case cmProcess::Exception::Numerical: cmCTestLog(this->CTest, HANDLER_OUTPUT, "Numerical"); this->TestResult.Status = cmCTestTestHandler::NUMERICAL; break; diff --git a/Source/CTest/cmProcess.cxx b/Source/CTest/cmProcess.cxx index fac0df9..857f5c1 100644 --- a/Source/CTest/cmProcess.cxx +++ b/Source/CTest/cmProcess.cxx @@ -193,9 +193,23 @@ void cmProcess::ResetStartTime() this->StartTime = std::chrono::steady_clock::now(); } -int cmProcess::GetExitException() +cmProcess::Exception cmProcess::GetExitException() { - return cmsysProcess_GetExitException(this->Process); + switch (cmsysProcess_GetExitException(this->Process)) { + case cmsysProcess_Exception_None: + return Exception::None; + case cmsysProcess_Exception_Fault: + return Exception::Fault; + case cmsysProcess_Exception_Illegal: + return Exception::Illegal; + case cmsysProcess_Exception_Interrupt: + return Exception::Interrupt; + case cmsysProcess_Exception_Numerical: + return Exception::Numerical; + default: // case cmsysProcess_Exception_Other: + break; + } + return Exception::Other; } std::string cmProcess::GetExitExceptionString() diff --git a/Source/CTest/cmProcess.h b/Source/CTest/cmProcess.h index 79379aa..297cc47 100644 --- a/Source/CTest/cmProcess.h +++ b/Source/CTest/cmProcess.h @@ -47,8 +47,20 @@ public: void SetId(int id) { this->Id = id; } int GetExitValue() { return this->ExitValue; } std::chrono::duration<double> GetTotalTime() { return this->TotalTime; } - int GetExitException(); + + enum class Exception + { + None, + Fault, + Illegal, + Interrupt, + Numerical, + Other + }; + + Exception GetExitException(); std::string GetExitExceptionString(); + /** * Read one line of output but block for no more than timeout. * Returns: |