2023-05-18

lcov on macOS

macOS上でLCOVを使用しカバレッジレポートを取る方法を説明する。

インストール

brew install llvm lcov w3m

CMakeのシンプルな設定例

CMakeLists.txt:
cmake_minimum_required(VERSION 3.16)
project(a VERSION 0.1.0)

add_compile_options(-fprofile-arcs -ftest-coverage)
add_link_options(--coverage)

add_executable(a a.c)
以下の設定を試したが、生成されるカバレッジデータのフォーマットが異なり、LCOVで処理する方法がわからなかった。
# add_compile_options(-fprofile-instr-generate -fcoverage-mapping)
# add_link_options(-fprofile-instr-generate -fcoverage-mapping)
その他、以下のファイルを準備する。 llvm-gcov.sh:
#! /bin/bash
exec `brew --prefix llvm`/bin/llvm-cov gcov "$@"

ビルドし実行

以下のどちらでも良さそう。
cmake -G Xcode -B build .
cmake --build build
cmake -B build .
(cd build/ && make VERBOSE=1)
./build/a
実行して正常終了すれば、*.gcda*.gcnoというファイルができているはず。

カバレッジの取得

以下のコマンドで、LCOVのデータを作成し、HTMLを作成する。(そしてw3mで開く。)
lcov -c -d ./ -o lcov.info --gcov-tool $PWD/llvm-gcov.sh
genhtml -q lcov.info -o ./coverage/
w3m ./coverage/index.html

参考にしたサイト

0 件のコメント:

コメントを投稿