Browse Source

ENH: Properly report failed tests

Andy Cedilnik 20 years ago
parent
commit
0d824e1d1a
1 changed files with 10 additions and 1 deletions
  1. 10 1
      Source/CTest/cmCTestTestHandler.cxx

+ 10 - 1
Source/CTest/cmCTestTestHandler.cxx

@@ -748,10 +748,10 @@ void cmCTestTestHandler::ProcessDirectory(std::vector<cmStdString> &passed,
 
     if ( !m_CTest->GetShowOnly() )
       {
+      bool testFailed = false;
       if (res == cmsysProcess_State_Exited && retVal == 0)
         {
         cmCTestLog(m_CTest, HANDLER_OUTPUT,   "   Passed");
-        passed.push_back(testname);
         if ( it->m_WillFail )
           {
           cmCTestLog(m_CTest, HANDLER_OUTPUT,   " - But it should fail!");
@@ -765,6 +765,7 @@ void cmCTestTestHandler::ProcessDirectory(std::vector<cmStdString> &passed,
         }
       else
         {
+        testFailed = true;
         cres.m_Status = cmCTestTestHandler::FAILED;
         if ( res == cmsysProcess_State_Expired )
           {
@@ -810,11 +811,19 @@ void cmCTestTestHandler::ProcessDirectory(std::vector<cmStdString> &passed,
             {
             cres.m_Status = cmCTestTestHandler::COMPLETED;
             cmCTestLog(m_CTest, HANDLER_OUTPUT, " - supposed to fail");
+            testFailed = false;
             }
           cmCTestLog(m_CTest, HANDLER_OUTPUT, std::endl);
           }
+        }
+      if ( testFailed )
+        {
         failed.push_back(testname);
         }
+      else
+        {
+        passed.push_back(testname);
+        }
       if (!output.empty() && output.find("<DartMeasurement") != output.npos)
         {
         if (m_DartStuff.find(output.c_str()))