CTestCoverageCollectGCOV

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
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.

TARBALL_COMPRESSION <option> Specify a compression algorithm for the

TARBALL data file. Using this option reduces the size of the data file before it is submitted to CDash. <option> must be one of GZIP, BZIP2, XZ, ZSTD, FROM_EXT, or an expression that CMake evaluates as FALSE. The default value is BZIP2.

If FROM_EXT is specified, the resulting file will be compressed based on the file extension of the <tarfile> (i.e. .tar.gz will use GZIP compression). File extensions that will produce compressed output include .tar.gz, .tgz, .tar.bzip2, .tbz, .tar.xz, and .txz.

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 -x.

GLOB

Recursively search for .gcda files in build_dir rather than determining search locations by reading TargetDirectories.txt.

DELETE

Delete coverage files after they’ve been packaged into the .tar.

QUIET

Suppress non-error messages that otherwise would have been printed out by this function.