summaryrefslogtreecommitdiffstats
path: root/Source/CTest
diff options
context:
space:
mode:
Diffstat (limited to 'Source/CTest')
-rw-r--r--Source/CTest/cmParseMumpsCoverage.cxx40
1 files 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;
}