Browse Source

Fix for bug #10859, ctest exit exception incorrectly reported.

CTest was using the return value from the program instead of the
exit exception value for the process.
Bill Hoffman 15 years ago
parent
commit
8f8c1edca2
3 changed files with 8 additions and 2 deletions
  1. 1 1
      Source/CTest/cmCTestRunTest.cxx
  2. 6 0
      Source/CTest/cmProcess.cxx
  3. 1 1
      Source/CTest/cmProcess.h

+ 1 - 1
Source/CTest/cmCTestRunTest.cxx

@@ -220,7 +220,7 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
     {
     outputTestErrorsToConsole = this->CTest->OutputTestOutputOnTestFailure;
     cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Exception: ");
-    switch ( retVal )
+    switch(this->TestProcess->GetExitException())
       {
       case cmsysProcess_Exception_Fault:
         cmCTestLog(this->CTest, HANDLER_OUTPUT, "SegFault");

+ 6 - 0
Source/CTest/cmProcess.cxx

@@ -264,3 +264,9 @@ int cmProcess::ReportStatus()
   return result;
 
 }
+
+
+int cmProcess::GetExitException()
+{
+  return cmsysProcess_GetExitException(this->Process);
+}

+ 1 - 1
Source/CTest/cmProcess.h

@@ -43,7 +43,7 @@ public:
   void SetId(int id) { this->Id = id;}
   int GetExitValue() { return this->ExitValue;}
   double GetTotalTime() { return this->TotalTime;}
-
+  int GetExitException();
   /**
    * Read one line of output but block for no more than timeout.
    * Returns: