Bläddra i källkod

Merge topic 'non-coverage-lines'

ed6d20ddcb CTest: Handle non-coverage lines in gcov files

Acked-by: Kitware Robot <[email protected]>
Merge-request: !4822
Brad King 5 år sedan
förälder
incheckning
e773892ccb
1 ändrade filer med 8 tillägg och 2 borttagningar
  1. 8 2
      Source/CTest/cmCTestCoverageHandler.cxx

+ 8 - 2
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);