[Cmake-commits] CMake branch, next, updated. v2.8.8-2801-g1c9ac26

Bill Hoffman bill.hoffman at kitware.com
Wed May 2 17:24:24 EDT 2012


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  1c9ac268bd9907626cb1171474736dcccfe844b7 (commit)
       via  0a169e628bb222fec7deead87f6ebe8fa77c7805 (commit)
      from  f3fd279448a9c0ec48a7d77287fb8f1de54a594f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1c9ac268bd9907626cb1171474736dcccfe844b7
commit 1c9ac268bd9907626cb1171474736dcccfe844b7
Merge: f3fd279 0a169e6
Author:     Bill Hoffman <bill.hoffman at kitware.com>
AuthorDate: Wed May 2 17:24:20 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed May 2 17:24:20 2012 -0400

    Merge topic 'mumps_coverage' into next
    
    0a169e6 Remove uncovered files from cache coverage data.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0a169e628bb222fec7deead87f6ebe8fa77c7805
commit 0a169e628bb222fec7deead87f6ebe8fa77c7805
Author:     Bill Hoffman <bill.hoffman at kitware.com>
AuthorDate: Wed May 2 17:23:01 2012 -0400
Commit:     Bill Hoffman <bill.hoffman at kitware.com>
CommitDate: Wed May 2 17:23:01 2012 -0400

    Remove uncovered files from cache coverage data.
    
    Cache coverage data currently contains files with 0 coverage
    on each line. This change will remove those files from the coverage
    sent to CDash.

diff --git a/Source/CTest/cmParseCacheCoverage.cxx b/Source/CTest/cmParseCacheCoverage.cxx
index fb85810..e4b0a88 100644
--- a/Source/CTest/cmParseCacheCoverage.cxx
+++ b/Source/CTest/cmParseCacheCoverage.cxx
@@ -44,9 +44,45 @@ bool cmParseCacheCoverage::LoadCoverageData(const char* d)
         }
       }
     }
+  // now remove files wht no actual coverage...
+  this->RemoveUnCoveredFiles();
   return true;
 }
 
+void cmParseCacheCoverage::RemoveUnCoveredFiles()
+{
+  // loop over the coverage data computed and remove all files
+  // that only have -1 or 0 for the lines.
+  cmCTestCoverageHandlerContainer::TotalCoverageMap::iterator ci =
+    this->Coverage.TotalCoverage.begin();
+  while(ci != this->Coverage.TotalCoverage.end())
+    {
+    cmCTestCoverageHandlerContainer::SingleFileCoverageVector& v =
+      ci->second;
+    bool nothing = true;
+    for(cmCTestCoverageHandlerContainer::SingleFileCoverageVector::iterator i=
+          v.begin(); i != v.end(); ++i)
+      {
+      if(*i > 0)
+        {
+        nothing = false;
+        break;
+        }
+      }
+    if(nothing)
+      {
+      cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT,
+                 "No coverage found in: " << ci->first
+                 << std::endl);
+      this->Coverage.TotalCoverage.erase(ci++);
+      }
+    else
+      {
+      ++ci;
+      }
+    }
+}
+
 bool cmParseCacheCoverage::SplitString(std::vector<std::string>& args,
                                        std::string const& line)
 {
diff --git a/Source/CTest/cmParseCacheCoverage.h b/Source/CTest/cmParseCacheCoverage.h
index f377567..114eb92 100644
--- a/Source/CTest/cmParseCacheCoverage.h
+++ b/Source/CTest/cmParseCacheCoverage.h
@@ -29,6 +29,8 @@ public:
 protected:
   // implement virtual from parent
   bool LoadCoverageData(const char* dir);
+  // remove files with no coverage
+  void RemoveUnCoveredFiles();
   // Read a single mcov file
   bool ReadCMCovFile(const char* f);
   // split a string based on ,

-----------------------------------------------------------------------

Summary of changes:
 Source/CTest/cmParseCacheCoverage.cxx |   36 +++++++++++++++++++++++++++++++++
 Source/CTest/cmParseCacheCoverage.h   |    2 +
 2 files changed, 38 insertions(+), 0 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list