summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestCoverageHandler.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/CTest/cmCTestCoverageHandler.cxx')
-rw-r--r--Source/CTest/cmCTestCoverageHandler.cxx10
1 files changed, 8 insertions, 2 deletions
diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx
index daa10c9..b839c10 100644
--- a/Source/CTest/cmCTestCoverageHandler.cxx
+++ b/Source/CTest/cmCTestCoverageHandler.cxx
@@ -1215,8 +1215,6 @@ int cmCTestCoverageHandler::HandleGCovCoverage(
while (cmSystemTools::GetLineFromStream(ifile, nl)) {
cnt++;
- // TODO: Handle gcov 3.0 non-coverage lines
-
// Skip empty lines
if (nl.empty()) {
continue;
@@ -1227,6 +1225,14 @@ int cmCTestCoverageHandler::HandleGCovCoverage(
continue;
}
+ // Handle gcov 3.0 non-coverage lines
+ // non-coverage lines seem to always start with something not
+ // a space and don't have a ':' in the 9th position
+ // TODO: Verify that this is actually a robust metric
+ if (nl[0] != ' ' && nl[9] != ':') {
+ continue;
+ }
+
// Read the coverage count from the beginning of the gcov output
// line
std::string prefix = nl.substr(0, 12);