CTestCoverageCollectGCOV

在 3.2 版本中添加。

此模块提供 ctest_coverage_collect_gcov 函数。

此函数在二进制树中找到的所有 .gcda 文件上运行 gcov,并将生成的 .gcov 文件打包到一个 tar 文件中。此 tar 包还包含以下内容

  • data.json 定义源目录和构建目录供 CDash 使用。

  • Labels.json 指出在源文件上设置的任何 LABELS

  • uncovered 目录容纳由 CTEST_EXTRA_COVERAGE_GLOB 找到的任何未覆盖的文件。

生成此 tar 文件后,可通过 ctest_submit(CDASH_UPLOAD) 命令将此文件发送至 CDash 以显示。

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

使用 gcov 并为 CDash 打包 tar 文件。选项为

TARBALL <tarfile>

指定要创建的 .tar 文件的位置,用于稍后上传至 CDash。相对路径将根据顶层构建目录进行解释。

TARBALL_COMPRESSION <option>

在 3.18 版本中添加。

TARBALL 数据文件指定压缩算法。使用此选项可在将数据文件提交至 CDash 之前减小其大小。 <option> 必须为 GZIPBZIP2XZZSTDFROM_EXT 或 CMake 评估为 FALSE 的表达式之一。默认值为 BZIP2

如果指定了 FROM_EXT,则生成的 文件将基于 <tarfile> 的文件扩展名进行压缩(即 .tar.gz 将使用 GZIP 压缩)。将生成压缩输出的文件扩展名包括 .tar.gz.tgz.tar.bzip2.tbz.tar.xz.txz

SOURCE <source_dir>

指定构建的顶级源目录。默认值是 CTEST_SOURCE_DIRECTORY 的值。

BUILD <build_dir>

指定构建的顶级构建目录。默认值是 CTEST_BINARY_DIRECTORY 的值。

GCOV_COMMAND <gcov_command>

指定机器上 gcov 命令的完整路径。默认值是 CTEST_COVERAGE_COMMAND 的值。

GCOV_OPTIONS <options>...

指定传递给 gcov 的选项。 gcov 命令以 gcov <options>... -o <gcov-dir> <file>.gcda 的形式运行。如果未指定该选项,则默认选项只是 -b -x

GLOB

在版本 3.6 中添加。

在 build_dir 中递归搜索 .gcda 文件,而不是通过读取 TargetDirectories.txt 确定搜索位置。

DELETE

在版本 3.6 中添加。

在覆盖率文件打包到 .tar 之后将其删除。

QUIET

取消打印本函数输出的非错误消息。

在版本 3.3 中添加:添加了对 CTEST_CUSTOM_COVERAGE_EXCLUDE 变量的支持。