This module provides the ctest_coverage_collect_gcov function.

This function runs gcov on all .gcda files found in the binary tree and packages the resulting .gcov files into a tar file. This tarball also contains the following:

  • data.json defines the source and build directories for use by CDash.
  • Labels.json indicates any LABELS that have been set on the source files.
  • The uncovered directory holds any uncovered files found by CTEST_EXTRA_COVERAGE_GLOB.

After generating this tar file, it can be sent to CDash for display with the ctest_submit(CDASH_UPLOAD) command.

ctest_coverage_collect_gcov(TARBALL <tarfile>
  [SOURCE <source_dir>][BUILD <build_dir>]
  [GCOV_COMMAND <gcov_command>]
  [GCOV_OPTIONS <options>...]

Run gcov and package a tar file for CDash. The options are:

TARBALL <tarfile>
Specify the location of the .tar file to be created for later upload to CDash. Relative paths will be interpreted with respect to the top-level build directory.
SOURCE <source_dir>
Specify the top-level source directory for the build. Default is the value of CTEST_SOURCE_DIRECTORY.
BUILD <build_dir>
Specify the top-level build directory for the build. Default is the value of CTEST_BINARY_DIRECTORY.
GCOV_COMMAND <gcov_command>
Specify the full path to the gcov command on the machine. Default is the value of CTEST_COVERAGE_COMMAND.
GCOV_OPTIONS <options>...
Specify options to be passed to gcov. The gcov command is run as gcov <options>... -o <gcov-dir> <file>.gcda. If not specified, the default option is just -b.
Recursively search for .gcda files in build_dir rather than determining search locations by reading TargetDirectories.txt.
Delete coverage files after they’ve been packaged into the .tar.
Suppress non-error messages that otherwise would have been printed out by this function.