[Cmake-commits] [cmake-commits] king committed cmCTestCoverageHandler.cxx 1.69 1.70 cmCTestCoverageHandler.h 1.21 1.22

cmake-commits at cmake.org cmake-commits at cmake.org
Wed Mar 11 12:03:51 EDT 2009


Update of /cvsroot/CMake/CMake/Source/CTest
In directory public:/mounts/ram/cvs-serv1818/Source/CTest

Modified Files:
	cmCTestCoverageHandler.cxx cmCTestCoverageHandler.h 
Log Message:
BUG: Avoid duplicate CTest coverage submission

This teaches ctest_coverage() to remove any existing CoverageLog-*.xml
when it creates new coverage results.  Otherwise the next ctest_submit()
may submit old coverage log files which unnecessarily.


Index: cmCTestCoverageHandler.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CTest/cmCTestCoverageHandler.cxx,v
retrieving revision 1.69
retrieving revision 1.70
diff -C 2 -d -r1.69 -r1.70
*** cmCTestCoverageHandler.cxx	9 Mar 2009 16:19:52 -0000	1.69
--- cmCTestCoverageHandler.cxx	11 Mar 2009 16:03:47 -0000	1.70
***************
*** 163,166 ****
--- 163,184 ----
  }
  
+ //----------------------------------------------------------------------------
+ void cmCTestCoverageHandler::CleanCoverageLogFiles(std::ostream& log)
+ {
+   std::string logGlob = this->CTest->GetCTestConfiguration("BuildDirectory");
+   logGlob += "/Testing/";
+   logGlob += this->CTest->GetCurrentTag();
+   logGlob += "/CoverageLog*";
+   cmsys::Glob gl;
+   gl.FindFiles(logGlob.c_str());
+   std::vector<std::string> const& files = gl.GetFiles();
+   for(std::vector<std::string>::const_iterator fi = files.begin();
+       fi != files.end(); ++fi)
+     {
+     log << "Removing old coverage log: " << *fi << "\n";
+     cmSystemTools::RemoveFile(fi->c_str());
+     }
+ }
+ 
  //----------------------------------------------------------------------
  bool cmCTestCoverageHandler::StartCoverageLogFile(
***************
*** 343,346 ****
--- 361,365 ----
  
    ofs << "Performing coverage: " << elapsed_time_start << std::endl;
+   this->CleanCoverageLogFiles(ofs);
  
    cmSystemTools::ConvertToUnixSlashes(sourceDir);

Index: cmCTestCoverageHandler.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CTest/cmCTestCoverageHandler.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -C 2 -d -r1.21 -r1.22
*** cmCTestCoverageHandler.h	9 Mar 2009 16:19:56 -0000	1.21
--- cmCTestCoverageHandler.h	11 Mar 2009 16:03:47 -0000	1.22
***************
*** 57,60 ****
--- 57,61 ----
    bool ShouldIDoCoverage(const char* file, const char* srcDir,
      const char* binDir);
+   void CleanCoverageLogFiles(std::ostream& log);
    bool StartCoverageLogFile(cmGeneratedFileStream& ostr, int logFileCount);
    void EndCoverageLogFile(cmGeneratedFileStream& ostr, int logFileCount);



More information about the Cmake-commits mailing list