問題タブ [gcov]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
129 参照

unit-testing - gcov を使用して他のソース ファイルのカバレッジをテストする

クラスプロジェクトの場合、gcov を使用して、メイン関数を持たないファイルのカバレッジをテストする必要がありますが、メイン関数を持つファイルによって呼び出されます。つまり、これまでに作成したすべてのライブラリ呼び出しを含む .c ファイルと、それらの呼び出しをテストする .c ファイルがあります。問題は、gcov を使用すると、実行可能な .c ファイルでのみ機能し、他の .c ファイルの関数呼び出しのカバレッジが表示されないことです。

これを回避する方法があるかどうか誰かが知っていますか?

0 投票する
4 に答える
10154 参照

c++ - ヘッダーのみのライブラリで有用なGCov結果を取得する

ヘッダーのみのC++ライブラリ(多くのテンプレートなど)では、GCovを使用してテストカバレッジをチェックします。ただし、未使用の関数はそもそもコンパイラによって生成されないため、すべてのヘッダーが100%カバーされていると報告されます。カバーされていない機能を手動で見つけるのは簡単ですが、継続的インテグレーションの目的を損ないます…</ p>

これを自動的に解決するにはどうすればよいですか?カバレッジメトリックとして「ラインヒット/LOC」を使用し、100%に到達しないようにする必要がありますか?

0 投票する
4 に答える
26788 参照

gcc - gcovがgcdaファイルを生成しない

-fprofile-arcsリンクするために&-ftest-coverageと何も使用せずにgcovを実行しようとしました。

このエラーが発生していました:-

プログラムが終了します。

コンパイルするコマンド-

どんな助けでも投票していただければ幸いです。

ありがとう。

0 投票する
1 に答える
180 参照

c++ - BS-42e6.gcno ファイルのデバッグ

コード カバレッジのために既存のコード ベースを使用して gcov を構成しようとしています。

gcov を構成するための wiki ページをたどり、makefile に -fprofile-arcs -ftest-coverage を追加しました。サービスをコンパイルすると、名前が付けられた gcno ファイルが 1 つだけ生成されます (BS-42e6.gcno)。

wiki ページによると、gcov は、test.c.gcno や test1.cpp.gcno のような c および cpp ファイルごとに gcno ファイルを生成する必要がありますが、1 つの gcno ファイルを取得しました。

gcno ファイルをさらに進める方法がわかりませんでした。

このサービスはxmlベースのフレームワークに存在します。したがって、xmlから入力を渡し、フレームワークは入力パラメータのマーシャリングとアンマーシャリングを行い、cまたはcppファイルを渡します。

そこで、テスト用の gcov ファイルについて質問があります。Wiki ページに従って、コンパイルから a.out を取得し、a.out を実行してそれぞれのファイルを生成します。しかし、私の場合、どうすればさらに進めますか。

さらに情報を提供する必要がある場合はお知らせください

http://gcc.gnu.org/onlinedocs/gcc/Gcov.html http://www.ecoscentric.com/ecospro/doc/html/ref/gcov.html http://codingfreak.blogspot.in/2009/ 02/gcov-analyzing-code-produced-with-gcc.html

0 投票する
3 に答える
3758 参照

gcov - gcdaファイルを含む複数のディレクトリのlcov

gcovとlcovを使用してカバレッジレポートを生成したいと思います。

私が今までやったこと:-

私がしなければならないこと:-

これらのデータファイル(.gcda)を使用する必要があり、lcovを使用してクリーンなレポートを作成したいと思います。

問題:-

ソースファイルが存在する複数のディレクトリがあり、各ディレクトリ内にオブジェクトファイルを保持するためのobj/ARCHディレクトリを作成しています。

したがって、最終的なディレクトリ構造は次のようになります。

M3、M4、M5と同じです。

プロトレベルからlcovを実行していますが、.gcdaファイルは検出されますが、.hおよび.Cファイルの検出でエラーが発生します。このプロセスパスを独立させる方法はありますか?

前もって感謝します。

0 投票する
2 に答える
834 参照

c++ - gcovカバレッジ分析のためのBjam?

主に C++ で記述されたプロジェクトに、重要なクロスプラットフォーム ビルド システムを統合しようとしています。私はこれまで Cmake と Scons を評価してきましたが、どちらも (GNU) make よりも改善されていますが、私がこれらのツールを使用しようとしていたコンテキストでは、どちらのアプローチもエレガントでも透過的でもないように見えました。これにより、Boost Build (Bjam) にたどり着きました。私のプロジェクトが Boost に依存していることを考えると、bjam は実行可能なターゲット プラットフォームで既に利用できるはずです。

Jenkins などのビルド サーバーへの最終的な統合を視野に入れて、ライブラリの単体テスト用のコード カバレッジをきちんと統合しようとするのが困難になりました。私は Bjam のベスト/スタンダード プラクティスに進んで従いますが、3 つの異なる「バリエーション」が必要だと思います。

  • release - 最適化された静的ライブラリのみをビルドする
  • debug - 最適化されていない静的ライブラリと単体テストをビルドする
  • カバレッジ - カバレッジ対応のライブラリを構築し、カバレッジ対応でない単体テストとリンクします。

基本的に、標準のデバッグ ビルドとリリース ビルドに加えて、カバレッジ データも収集する特別な目的のデバッグ ビルドが必要です。

(少なくとも) g++ と msvc でビルドする必要があり、gcov スイッチは g++ でのみ使用します。これは、私のライブラリ ターゲットが単体テストの実行可能ターゲットとは異なる "compilerflags" を必要とすることを意味します...そして、私のコンパイラ スイートの 1 つに対してのみ...そして 1 つのバリアントに対してのみです。

Bjam でこれを実現する最善の方法はわかりませんが、かなり一般的な使用例であると思います。Bjam は gcov カバレッジ分析 (おそらく lcov を使用して結果を提示する) を明示的にサポートしていますか? そうでない場合、上記の(単純化された)シナリオをサポートする戦略を誰かが推奨できますか?

0 投票する
4 に答える
9695 参照

gcov - Reading .gcno and/or .gcda files on Mac

My build directory contains .gcno and .gcda files. When I open the directory with CoverStory, everything shows up fine.

My ultimate goal is to read the gcov output (.gcno and .gcda files), but these two file types are in binary format. Is there a way to read them via Terminal so that I can save the text equivalent to a text file?

Thanks!

0 投票する
0 に答える
1352 参照

linux - Linux で GCOV_PREFIX を使用して、目的の場所に *.gcda ファイルを作成しますか?

GCOV_PREFIX 環境変数の使用に問題があります。

ビルド マシンで使用しているコンパイラのバージョン - gcc バージョン 3.4.6 20060404 (Red Hat 3.4.6-3)

ビルド マシンで「fprofile-arcs –ftest-coverage」を使用してソース ファイル (*.c) をコンパイルしています。ビルド マシンは、実行可能ファイル、オブジェクト ファイル (各ソース ファイルに対応)、および gcno ファイル (各ソース ファイルに対応) を生成します。次の場所

/あいうえお

/a/b は、テスト マシンの次のディレクトリ "/tmp/test/a/b" にマウントされます。テスト マシンで実行可能ファイルを実行すると、*.gcda ファイルを作成するために同じディレクトリ構造 "a/b/c/d" が期待されます。利用できないため、「profiling:/a/b/c/d/xyz.gcda:Cannot open」というエラーが表示されます。

しかし、テスト マシンに同じディレクトリ構造を作成したくありません。

テスト マシンにディレクトリ (/tmp/gcovfiles) を作成し、gcda ファイルを /tmp/gcovfiles の場所に作成したいと考えています。

環境変数 GCOV_PREFIX および GCOV_PREFIX_STRIP を使用してみました。しかし、それは何の効果もありませんでした。私の使い方が悪いのかもしれません。

助けていただけますか?

0 投票する
1 に答える
837 参照

xml - Emma XML レポートを Cobertura XML 形式に変換するツールはありますか?

Emma XML レポートのみを生成できるコード カバレッジ ツールを使用していますが、必要なのは Cobertura または gcov 形式です。変換を行うためのツールはすでに存在しますか? そうでない場合は、自分でやらなければならないのではないかと心配しています。

0 投票する
1 に答える
1524 参照

c - (a && b)ステートメントにはいくつのブランチがありますか?gcovによると:4

次のプログラムを「gcc-fprofile-arcs-ftest-coveragetest.c」でコンパイルしました。

プログラムの実行後、「gcov -bc test.c」を呼び出すと、4つのブランチの50%が少なくとも1回は取得されたことが報告されます。なぜgcovは、プログラムに2つではなく4つのブランチがあると言うのですか?次のプログラムを実行した後、gcovは、2つのブランチの50%が少なくとも1回は取得されたことを正しく報告します。