CMake + Ninja + Clang を使って、PC上でC言語プログラミングの勉強中
動作させたときのカバレッジ情報を見る方法を調べたのでメモ
コンパイルオプションに -fprofile-arcs と -ftest-coverage を追加してビルド
できた .exe ファイルを実行すると default.profraw が作られる
この default.profraw にカバレッジデータが記録されているようで
しかも実行するたびに加算していくわけではなく、毎回0からカウントしていく
(自分はコマンドライン引数でテスト動作切り替えていたので、
実行するたびにリネームして残しておき、後でマージして対応した)
この .profraw からは直接カバレッジ情報見れないみたいで
まずは↓のように llvm-profdataを使って .profdata へ変換する
llvm-profdata merge default.profraw --output default.profdata
.profdata と .exe を llvm-cov に渡してやるとカバレッジ情報が見れる
↓のようにhtml出力すると見やすくて便利
llvm-cov show -format=html -output-dir=cov_html -instr-profile default.profdata hoge.exe
自分のプロジェクトでは CMAKE_BUILD_TYPE を Coverage にするとカバレッジ出力するように対応した
c_cmake_ninja\config_coveraage.bat を実行してCMakeにbuildフォルダ作成させる。
c_cmake_ninja\build\build_and_test.bat を実行してビルド、テスト、カバレッジデータ出力をさせる。