今までは gcc + gcov でやっていたのだが、Codecov の方が clang から gcc に変更になったので、Coveralls は clang に。
と、思ったらぶつかったのでメモ。
https://github.com/srz-zumix/iutest/issues/234
まず、clang が生成する gcno のフォーマットが gcc 4.2 で、Travis CI の xenial 環境に入ってる gcc が 5.5 だったため clang + gcov でもエラーが出て集計できなかった、というのが根本的な原因と思われます。
gcov -r *.gcda; also_run_disabled_tests.gcno:version '402*', prefer '505*' Segmentation fault (core dumped)
この状態で lcov を使うと、表題のエラーになっていました。
geninfo: ERROR: /home/travis/build/srz-zumix/iutest/test/assertion_return_tests.gcno: reached unexpected end of filelcov は gcov をバックエンドとして使っているので、おそらく内部的に gcov のエラーが置きているのではないかと予想。(ホントのところは知らんけど)
解決方法
Check Code Coverage with Clang and LCOV | Logan's Note↑の記事にあるように、llvm-gcov.sh ファイルを作成する。中身は以下の通り
あとは、lcov のオプションに --gcov-tool path/to/dir/llvm-gcov.sh とするだけです。
iutest で実際にやってますので、そちらも参考にしてみてください。
ではでは。
0 件のコメント:
コメントを投稿