summaryrefslogtreecommitdiffstats
path: root/Source/CTest
diff options
context:
space:
mode:
authorBryon Bean <bryon.bean@kitware.com>2017-10-23 12:16:45 (GMT)
committerBrad King <brad.king@kitware.com>2018-01-10 15:19:14 (GMT)
commitfcebff75f912f50bdc7fd30f4185141255ba4b1f (patch)
tree7d5fd4b5c40c4d9bf25e27172443f43332d84b39 /Source/CTest
parent3dd2edf4ab94f5044b73b20151592c8e94a5160a (diff)
downloadCMake-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.cxx8
-rw-r--r--Source/CTest/cmProcess.cxx18
-rw-r--r--Source/CTest/cmProcess.h14
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: