Browse Source

Merge topic 'fix-12490-shorten-gcov-filenames'

2f309cb CTest: Add COVERAGE_EXTRA_FLAGS cache variable (#12490)
David Cole 14 years ago
parent
commit
5576655f36
3 changed files with 14 additions and 3 deletions
  1. 3 0
      Modules/CTest.cmake
  2. 4 1
      Modules/DartConfiguration.tcl.in
  3. 7 2
      Source/CTest/cmCTestCoverageHandler.cxx

+ 3 - 0
Modules/CTest.cmake

@@ -189,6 +189,8 @@ IF(BUILD_TESTING)
   FIND_PROGRAM(COVERAGE_COMMAND gcov DOC 
     "Path to the coverage program that CTest uses for performing coverage inspection"
     )
+  SET(COVERAGE_EXTRA_FLAGS "-l" CACHE STRING
+    "Extra command line flags to pass to the coverage tool")
 
   # set the site name
   SITE_NAME(SITE)
@@ -257,6 +259,7 @@ IF(BUILD_TESTING)
     BZRCOMMAND
     BZR_UPDATE_OPTIONS
     COVERAGE_COMMAND
+    COVERAGE_EXTRA_FLAGS
     CTEST_SUBMIT_RETRY_DELAY
     CTEST_SUBMIT_RETRY_COUNT
     CVSCOMMAND

+ 4 - 1
Modules/DartConfiguration.tcl.in

@@ -59,14 +59,17 @@ UpdateType: @UPDATE_TYPE@
 # Compiler info
 Compiler: @CMAKE_CXX_COMPILER@
 
-# Dynamic analysis and coverage
+# Dynamic analysis (MemCheck)
 PurifyCommand: @PURIFYCOMMAND@
 ValgrindCommand: @VALGRIND_COMMAND@
 ValgrindCommandOptions: @VALGRIND_COMMAND_OPTIONS@
 MemoryCheckCommand: @MEMORYCHECK_COMMAND@
 MemoryCheckCommandOptions: @MEMORYCHECK_COMMAND_OPTIONS@
 MemoryCheckSuppressionFile: @MEMORYCHECK_SUPPRESSIONS_FILE@
+
+# Coverage
 CoverageCommand: @COVERAGE_COMMAND@
+CoverageExtraFlags: @COVERAGE_EXTRA_FLAGS@
 
 # Cluster commands
 SlurmBatchCommand: @SLURM_SBATCH_COMMAND@

+ 7 - 2
Source/CTest/cmCTestCoverageHandler.cxx

@@ -751,12 +751,15 @@ int cmCTestCoverageHandler::HandlePHPCoverage(
     }
   return static_cast<int>(cont->TotalCoverage.size());
 }
+
 //----------------------------------------------------------------------
 int cmCTestCoverageHandler::HandleGCovCoverage(
   cmCTestCoverageHandlerContainer* cont)
 {
   std::string gcovCommand
     = this->CTest->GetCTestConfiguration("CoverageCommand");
+  std::string gcovExtraFlags
+    = this->CTest->GetCTestConfiguration("CoverageExtraFlags");
 
   // Style 1
   std::string st1gcovOutputRex1
@@ -825,8 +828,10 @@ int cmCTestCoverageHandler::HandleGCovCoverage(
     // Call gcov to get coverage data for this *.gcda file:
     //
     std::string fileDir = cmSystemTools::GetFilenamePath(it->c_str());
-    std::string command = "\"" + gcovCommand + "\" -l -p -o \"" + fileDir
-      + "\" \"" + *it + "\"";
+    std::string command = "\"" + gcovCommand + "\" " +
+      gcovExtraFlags + " " +
+      "-o \"" + fileDir + "\" " +
+      "\"" + *it + "\"";
 
     cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, command.c_str()
       << std::endl);