Procházet zdrojové kódy

Add ability to specify more than one package directory or coverage directory.

Bill Hoffman před 13 roky
rodič
revize
a7abf5e090
1 změnil soubory, kde provedl 24 přidání a 16 odebrání
  1. 24 16
      Source/CTest/cmParseMumpsCoverage.cxx

+ 24 - 16
Source/CTest/cmParseMumpsCoverage.cxx

@@ -29,24 +29,32 @@ bool cmParseMumpsCoverage::ReadCoverageFile(const char* file)
     return false;
     }
   std::string line;
-  cmSystemTools::GetLineFromStream(in, line);
-  std::string::size_type pos = line.find(':', 0);
-  std::string packages;
-  if(pos != std::string::npos)
+  while(cmSystemTools::GetLineFromStream(in, line))
     {
-    packages = line.substr(pos+1);
-    }
-  cmSystemTools::GetLineFromStream(in, line);
-  pos = line.find(':', 0);
-  std::string coverage_dir;
-  if(pos != std::string::npos)
-    {
-    coverage_dir = line.substr(pos+1);
+    std::string::size_type pos = line.find(':', 0);
+    std::string packages;
+    if(pos != std::string::npos)
+      {
+      std::string type = line.substr(0, pos);
+      std::string path = line.substr(pos+1);
+      if(type == "packages")
+        {
+        this->LoadPackages(path.c_str());
+        }
+      else if(type == "coverage_dir")
+        {
+        this->LoadCoverageData(path.c_str());
+        }
+      else
+        {
+        cmCTestLog(this->CTest, ERROR_MESSAGE,
+                   "Parse Error in Mumps coverage file :\n"
+                   << file <<
+                   "\ntype: [" << type << "]\npath:[" << path << "]\n"
+                   "input line: [" << line << "]\n");
+        }
+      }
     }
-  // load the mumps files from the packages directory
-  this->LoadPackages(packages.c_str());
-  // now load the *.mcov files from the coverage directory
-  this->LoadCoverageData(coverage_dir.c_str());
   return true;
 }