[cmake-commits] hoffman committed cmCTestTestHandler.cxx 1.57 1.58 cmCTestTestHandler.h 1.24 1.25

cmake-commits at cmake.org cmake-commits at cmake.org
Wed Sep 19 11:16:59 EDT 2007


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

Modified Files:
	cmCTestTestHandler.cxx cmCTestTestHandler.h 
Log Message:
ENH: fix failing test when valgrind is on


Index: cmCTestTestHandler.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CTest/cmCTestTestHandler.cxx,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -d -r1.57 -r1.58
--- cmCTestTestHandler.cxx	17 Sep 2007 14:40:57 -0000	1.57
+++ cmCTestTestHandler.cxx	19 Sep 2007 15:16:57 -0000	1.58
@@ -655,11 +655,11 @@
   
   cres.ExecutionTime = (double)(clock_finish - clock_start);
   cres.FullCommandLine = testCommand;
-  
+  std::string reason;
   if ( !this->CTest->GetShowOnly() )
     {
     bool testFailed = false;
-    std::vector<cmsys::RegularExpression>::iterator passIt;
+    std::vector<std::pair<cmsys::RegularExpression,std::string> >::iterator passIt;
     bool forceFail = false;
     if ( it->RequiredRegularExpressions.size() > 0 )
       {
@@ -668,13 +668,17 @@
             passIt != it->RequiredRegularExpressions.end();
             ++ passIt )
         {
-        if ( passIt->find(output.c_str()) )
+        if ( passIt->first.find(output.c_str()) )
           {
           found = true;
           }
         }
       if ( !found )
-        {
+        { 
+        reason = "Required regular expression not found.";
+        reason +=  "Regex=[";
+        reason += passIt->second;
+        reason += "]";
         forceFail = true;
         }
       }
@@ -684,8 +688,12 @@
             passIt != it->ErrorRegularExpressions.end();
             ++ passIt )
         {
-        if ( passIt->find(output.c_str()) )
+        if ( passIt->first.find(output.c_str()) )
           {
+          reason = "Error regular expression found in output.";
+          reason += " Regex=[";
+          reason += passIt->second;
+          reason += "]";
           forceFail = true;
           }
         }
@@ -701,7 +709,7 @@
         cmCTestLog(this->CTest, HANDLER_OUTPUT,   " - But it should fail!");
         cres.Status = cmCTestTestHandler::FAILED;
         testFailed = true;
-          }
+        }
       else
         {
         cres.Status = cmCTestTestHandler::COMPLETED;
@@ -754,7 +762,7 @@
       else
         {
         // Force fail will also be here?
-        cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Failed");
+        cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Failed " << reason);
         if ( it->WillFail )
           {
           cres.Status = cmCTestTestHandler::COMPLETED;
@@ -1729,7 +1737,9 @@
             for ( crit = lval.begin(); crit != lval.end(); ++ crit )
               {
               rtit->ErrorRegularExpressions.push_back(
-                cmsys::RegularExpression(crit->c_str()));
+                std::pair<cmsys::RegularExpression, std::string>(
+                  cmsys::RegularExpression(crit->c_str()),
+                  std::string(crit->c_str())));
               }
             }
           if ( key == "MEASUREMENT" )
@@ -1754,7 +1764,9 @@
             for ( crit = lval.begin(); crit != lval.end(); ++ crit )
               {
               rtit->RequiredRegularExpressions.push_back(
-                cmsys::RegularExpression(crit->c_str()));
+                std::pair<cmsys::RegularExpression, std::string>(
+                  cmsys::RegularExpression(crit->c_str()),
+                  std::string(crit->c_str())));
               }
             }
           }

Index: cmCTestTestHandler.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CTest/cmCTestTestHandler.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- cmCTestTestHandler.h	24 Jul 2007 18:43:31 -0000	1.24
+++ cmCTestTestHandler.h	19 Sep 2007 15:16:57 -0000	1.25
@@ -80,8 +80,8 @@
     cmStdString Name;
     cmStdString Directory;
     std::vector<std::string> Args;
-    std::vector<cmsys::RegularExpression> ErrorRegularExpressions;
-    std::vector<cmsys::RegularExpression> RequiredRegularExpressions;
+    std::vector<std::pair<cmsys::RegularExpression,std::string> > ErrorRegularExpressions;
+    std::vector<std::pair<cmsys::RegularExpression,std::string> > RequiredRegularExpressions;
     std::map<cmStdString, cmStdString> Measurements;
     bool IsInBasedOnREOptions;
     bool WillFail;



More information about the Cmake-commits mailing list