CTestCoverageCollectGCOV

在版本 3.2 中新增。

此模組提供 ctest_coverage_collect_gcov 函數。

此函數在二進制樹中找到的所有 .gcda 檔案上執行 gcov,並將產生的 .gcov 檔案打包成 tar 檔案。此 tarball 也包含以下內容

  • data.json 定義了原始碼和建置目錄,供 CDash 使用。

  • Labels.json 指示已在原始碼檔案上設定的任何 LABELS

  • uncovered 目錄保存由 CTEST_EXTRA_COVERAGE_GLOB 找到的任何未涵蓋檔案。

在產生此 tar 檔案後,可以將其發送到 CDash 以使用 ctest_submit(CDASH_UPLOAD) 命令顯示。

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,則將根據 的檔案副檔名壓縮產生的檔案(即 .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 變數的支援。