[Cmake-commits] [cmake-commits] king committed cmCTestTestHandler.cxx 1.94 1.95

cmake-commits at cmake.org cmake-commits at cmake.org
Thu Jul 2 16:13:57 EDT 2009


Update of /cvsroot/CMake/CMake/Source/CTest
In directory public:/mounts/ram/cvs-serv16391/Source/CTest

Modified Files:
	cmCTestTestHandler.cxx 
Log Message:
ENH: Reports "Passed" for WILL_FAIL tests

Previously tests marked with WILL_FAIL have been reported by CTest as

  ...............***Failed  - supposed to fail

when they correctly failed.  Now we just report ".....Passed" because
there is no reason to draw attention to something that works as
expected.


Index: cmCTestTestHandler.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CTest/cmCTestTestHandler.cxx,v
retrieving revision 1.94
retrieving revision 1.95
diff -C 2 -d -r1.94 -r1.95
*** cmCTestTestHandler.cxx	27 Feb 2009 21:28:07 -0000	1.94
--- cmCTestTestHandler.cxx	2 Jul 2009 20:13:55 -0000	1.95
***************
*** 769,773 ****
    if ( !this->CTest->GetShowOnly() )
      {
-     bool testFailed = false;
      std::vector<std::pair<cmsys::RegularExpression,
        std::string> >::iterator passIt;
--- 769,772 ----
***************
*** 817,902 ****
          }
        }
!     
!     if (res == cmsysProcess_State_Exited &&
!         (retVal == 0 || it->RequiredRegularExpressions.size()) &&
!         !forceFail)
        {
!       cmCTestLog(this->CTest, HANDLER_OUTPUT,   "   Passed");
!       if ( it->WillFail )
          {
!         cmCTestLog(this->CTest, HANDLER_OUTPUT,   " - But it should fail!");
!         cres.Status = cmCTestTestHandler::FAILED;
!         testFailed = true;
          }
        else
          {
!         cres.Status = cmCTestTestHandler::COMPLETED;
          }
-       cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl);
        }
!     else
        {
!       testFailed = true;
!       
!       cres.Status = cmCTestTestHandler::FAILED;
!       if ( res == cmsysProcess_State_Expired )
!         {
!         cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Timeout" << std::endl);
!         cres.Status = cmCTestTestHandler::TIMEOUT;
!         }
!       else if ( res == cmsysProcess_State_Exception )
!         {
!         cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Exception: ");
!         switch ( retVal )
!           {
!           case cmsysProcess_Exception_Fault:
!             cmCTestLog(this->CTest, HANDLER_OUTPUT, "SegFault");
!             cres.Status = cmCTestTestHandler::SEGFAULT;
!             break;
!           case cmsysProcess_Exception_Illegal:
!             cmCTestLog(this->CTest, HANDLER_OUTPUT, "Illegal");
!             cres.Status = cmCTestTestHandler::ILLEGAL;
!             break;
!           case cmsysProcess_Exception_Interrupt:
!             cmCTestLog(this->CTest, HANDLER_OUTPUT, "Interrupt");
!             cres.Status = cmCTestTestHandler::INTERRUPT;
!             break;
!           case cmsysProcess_Exception_Numerical:
!             cmCTestLog(this->CTest, HANDLER_OUTPUT, "Numerical");
!             cres.Status = cmCTestTestHandler::NUMERICAL;
!             break;
!           default:
!             cmCTestLog(this->CTest, HANDLER_OUTPUT, "Other");
!             cres.Status = cmCTestTestHandler::OTHER_FAULT;
!           }
!         cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl);
!         }
!       else if ( res == cmsysProcess_State_Error )
!         {
!         cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Bad command " << res
!                    << std::endl);
!         cres.Status = cmCTestTestHandler::BAD_COMMAND;
!         }
!       else
          {
!         // Force fail will also be here?
!         cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Failed " << reason);
!         if ( it->WillFail )
!           {
!           cres.Status = cmCTestTestHandler::COMPLETED;
!           cmCTestLog(this->CTest, HANDLER_OUTPUT, " - supposed to fail");
!           testFailed = false;
!           }
!         cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl);
          }
        }
!     if ( testFailed )
        {
!       failed.push_back(testname);
        }
!     else
        {
        passed.push_back(testname);
        }
      if (!output.empty() && output.find("<DartMeasurement") != output.npos)
        {
--- 816,883 ----
          }
        }
! 
!     if (res == cmsysProcess_State_Exited)
        {
!       bool success =
!         !forceFail && (retVal == 0 || it->RequiredRegularExpressions.size());
!       if((success && !it->WillFail) || (!success && it->WillFail))
          {
!         cres.Status = cmCTestTestHandler::COMPLETED;
!         cmCTestLog(this->CTest, HANDLER_OUTPUT,   "   Passed" << std::endl);
          }
        else
          {
!         cres.Status = cmCTestTestHandler::FAILED;
!         cmCTestLog(this->CTest, HANDLER_OUTPUT,
!                    "***Failed " << reason << std::endl);
          }
        }
!     else if ( res == cmsysProcess_State_Expired )
        {
!       cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Timeout" << std::endl);
!       cres.Status = cmCTestTestHandler::TIMEOUT;
!       }
!     else if ( res == cmsysProcess_State_Exception )
!       {
!       cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Exception: ");
!       switch ( retVal )
          {
!         case cmsysProcess_Exception_Fault:
!           cmCTestLog(this->CTest, HANDLER_OUTPUT, "SegFault");
!           cres.Status = cmCTestTestHandler::SEGFAULT;
!           break;
!         case cmsysProcess_Exception_Illegal:
!           cmCTestLog(this->CTest, HANDLER_OUTPUT, "Illegal");
!           cres.Status = cmCTestTestHandler::ILLEGAL;
!           break;
!         case cmsysProcess_Exception_Interrupt:
!           cmCTestLog(this->CTest, HANDLER_OUTPUT, "Interrupt");
!           cres.Status = cmCTestTestHandler::INTERRUPT;
!           break;
!         case cmsysProcess_Exception_Numerical:
!           cmCTestLog(this->CTest, HANDLER_OUTPUT, "Numerical");
!           cres.Status = cmCTestTestHandler::NUMERICAL;
!           break;
!         default:
!           cmCTestLog(this->CTest, HANDLER_OUTPUT, "Other");
!           cres.Status = cmCTestTestHandler::OTHER_FAULT;
          }
+       cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl);
        }
!     else // if ( res == cmsysProcess_State_Error )
        {
!       cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Bad command " << res
!                  << std::endl);
!       cres.Status = cmCTestTestHandler::BAD_COMMAND;
        }
! 
!     if(cres.Status == cmCTestTestHandler::COMPLETED)
        {
        passed.push_back(testname);
        }
+     else
+       {
+       failed.push_back(testname);
+       }
      if (!output.empty() && output.find("<DartMeasurement") != output.npos)
        {



More information about the Cmake-commits mailing list