Преглед на файлове

ENH: Improve performance of testing and do not complain if DartTestfile.txt is not found or if directory does not exist

Andy Cedilnik преди 20 години
родител
ревизия
e712c7c05e
променени са 2 файла, в които са добавени 10 реда и са изтрити 10 реда
  1. 9 10
      Source/CTest/cmCTestTestHandler.cxx
  2. 1 0
      Source/CTest/cmCTestTestHandler.h

+ 9 - 10
Source/CTest/cmCTestTestHandler.cxx

@@ -86,10 +86,8 @@ bool cmCTestSubdirCommand::InitialPass(std::vector<std::string> const& args)
  
     if ( !cmSystemTools::FileExists(fname.c_str()) )
       {
-      std::string m = "Could not find directory: ";
-      m += fname;
-      this->SetError(m.c_str());
-      return false;
+      // No subdirectory? So what...
+      continue;
       }
     cmSystemTools::ChangeDirectory(fname.c_str());
     const char* testFilename;
@@ -105,8 +103,8 @@ bool cmCTestSubdirCommand::InitialPass(std::vector<std::string> const& args)
       }
     else
       {
-      cmSystemTools::ChangeDirectory(cwd.c_str());
-      return false;
+      // No DartTestfile.txt? Who cares...
+      continue;
       }
     fname += "/";
     fname += testFilename;
@@ -291,6 +289,8 @@ cmCTestTestHandler::cmCTestTestHandler()
   m_CustomMaximumFailedTestOutputSize = 300 * 1024;
   
   m_MemCheck = false;
+
+  m_DartStuff.compile("(<DartMeasurement.*/DartMeasurement[a-zA-Z]*>)");
 }
 
 //----------------------------------------------------------------------
@@ -484,7 +484,6 @@ void cmCTestTestHandler::ProcessDirectory(std::vector<cmStdString> &passed,
                                           std::vector<cmStdString> &failed)
 {
   std::string current_dir = cmSystemTools::GetCurrentWorkingDirectory();
-  cmsys::RegularExpression dartStuff("(<DartMeasurement.*/DartMeasurement[a-zA-Z]*>)");
   m_TestList.clear();
 
   this->GetListOfTests();
@@ -737,11 +736,11 @@ void cmCTestTestHandler::ProcessDirectory(std::vector<cmStdString> &passed,
           }
         failed.push_back(testname);
         }
-      if (output != "")
+      if (!output.empty() && output.find("<DartMeasurement") != output.npos)
         {
-        if (dartStuff.find(output.c_str()))
+        if (m_DartStuff.find(output.c_str()))
           {
-          std::string dartString = dartStuff.match(1);
+          std::string dartString = m_DartStuff.match(1);
           cmSystemTools::ReplaceString(output, dartString.c_str(),"");
           cres.m_RegressionImages = this->GenerateRegressionImages(dartString);
           }

+ 1 - 0
Source/CTest/cmCTestTestHandler.h

@@ -174,6 +174,7 @@ private:
   std::string TestsToRunString;
   bool m_UseUnion;
   tm_ListOfTests m_TestList;
+  cmsys::RegularExpression m_DartStuff;
 };
 
 #endif