From a7abf5e090379a77f50ce2285ac4c1c99159d9d2 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Wed, 2 May 2012 16:47:24 -0400 Subject: Add ability to specify more than one package directory or coverage directory. --- Source/CTest/cmParseMumpsCoverage.cxx | 40 +++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/Source/CTest/cmParseMumpsCoverage.cxx b/Source/CTest/cmParseMumpsCoverage.cxx index ed263a4..7076315 100644 --- a/Source/CTest/cmParseMumpsCoverage.cxx +++ b/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; } -- cgit v0.12