問題タブ [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.
unit-testing - GCOVでのコードカバレッジは.gcdaファイルを生成できません
GCOVでコードカバレッジを取得したいので、 http: //developer.apple.com/library/mac/#qa/qa2007/qa1514.htmlでビルド設定を設定します
- 「その他のリンカーフラグ」に「-lgcov」を追加します
- 「計測器プログラムフロー」を確認してください
- 「テストカバレッジファイルの生成」をチェックします
しかし、.gcdaファイルを作成できません。誰か助けてもらえますか?
iphone - iPhone: シミュレーターで .gcda プロファイリング データ ファイルを生成できない
iPhone シミュレーターを使用してコードのプロファイルを作成しようとしています。[Generate Test Coverage File and Instrument Program Flow ] を有効にし、リンカー フラグに-lgcovを追加しました。私が読んだすべてによると、セットアップに関して私がする必要があるのはそれだけです。
更新:テスト カバレッジ ファイルの生成は-ftest-coverageフラグをトリガーし、計測プログラム フローは-fprofile-arcsフラグをトリガーします。ビルド ログを確認しましたが、コンパイル時に設定されています。
プログラムを実行すると、.gcnoファイルが横に表示されます。.o build/.build/Debug-iphonesimulator/.build/Objects-normal/i386 ディレクトリのコンパイル済みコード。
しかし、シミュレーターでアプリを実行すると、 *.gcdaファイルが表示されません。
私の理解では、これらのファイルには計測器からのデータが含まれています。しかし、コンピューターのどこにもそれらが見つかりません。
私はそれらを作成して*.gcnoファイルと一緒に表示できることを知っています。これは、それらを含む古いゴミ箱のビルド ディレクトリがあるためです。それらを表示して実行を記録するには、どうすればよいかわかりません。
どんな助けでも感謝します。
c++ - C ++ gcovとlcovの問題を使用していますか?
私はubuntu10.1、g++コンパイラを使用しています。
C++プロジェクトにgcovとlcovを使用しようとしています。私はなんとかgcovをコンパイルすることができます:
エラーや警告メッセージはありません。次に、gcovを実行してみます。
また大丈夫です。私も自分のプログラムを実行しようとします:
gcovを再度実行すると、メイン、ユーザー、およびgame.cppに一定の割合が表示されます。データをキャプチャしたいので、ターミナルに次のように入力します。
しかし、それは私にこれを与えます:
Web全体を検索し、lcovのドキュメントを読みましたが、答えが見つかりません。誰でも私を助けることができますか?
さらに、main.gcdaファイルも開くことができませんでした(テキストエディタを使用して開いてみましたが、文字エンコードの問題がかなりあります:UTF-8、Western(ISO-8859-1)、Western(ISO-8859) -11)などですが、ファイルを開いて読み取ることはできません。
助けてください..誰か??
編集:
私の間違いは認めます(「home / Projects / Game1」の大文字は「P」です。)パスを確認した後、次の新しいエラーが発生しました。
testing - gcov による共有ライブラリのカバレッジ テスト [Linux/Fortran]
共有ライブラリのカバレッジ テストを実行しようとしています。私が gcov/lcov を選択したのは、無料でオープン ソースであるため、すぐに試すことができるからです (商用ソフトウェアは承認/購入が必要で、多くの決定を下す必要があります。時間がかかります)。
状況は次のとおりです - ライブラリ - Fortran で書かれた当社の製品は、シミュレーション ソフトウェア (具体的には MSC.Software の ADAMS) に使用されます。-fprofile-arcs -ftest-coverage を使用してライブラリをコンパイルでき、ADAMS で使用すると正しく動作します。ただし、.gcda ファイルは作成されません。
ライブラリの基本的な動作をテストするための小さなテスト実行可能ファイルがあります (メソッドの小さなサブセット)。カバレッジ テスト スイッチを使用してこの実行可能ファイルをコンパイルすると、実行可能ファイル自体とライブラリの両方の .gcda ファイルが得られます。
問題は、ライブラリを使用する実行可能ファイルがカバレッジ テスト スイッチでコンパイルされていない場合、ライブラリの gcov 測定を呼び出すことは可能かということです。はいの場合、どのように?
広範なテストを作成することは可能ですが、ADAMS (またはその他のシミュレーション パッケージ) を複製するのとほとんど同じです。または、間違ったカバレッジ テスト ツールを選択したため、商用製品に移行する必要がありますか?
前もって感謝します。
マイク
ios - XCode4でlibgcov.aを検索するにはどうすればよいですか
複数のiOSプロジェクト間で共有する静的ライブラリを構築してきましたが、gcov(または任意のコードカバレッジ分析ツール)を使用して、テストが欠落している場所を教えてください。ただし、次の指示に従ってgcovを有効にすると、次のようになります。http: //supermegaultragroovy.com/blog/2005/11/03/unit-testing-and-code-coverage-with-xcode/
Libtoolから次のエラーが発生します。
何らかの理由で、XCode4はlibgcov.aファイルを見つけることができません。私のシステムの多くの場所にありますが、何らかの理由で見つかりません。私はXCodeと一般的なgccベースのプログラミングにかなり慣れていないので、これを修正する方法がわかりません。libgcov.aの場所を具体的に指定する必要があると思いますが、よくわかりません。その方法について。
hudson - Hudson への lcov の追加
ここのハドソンにはかなり新しい。lcovをどのように統合するのでしょうか? tarball を Hudson ジョブにインストールするにはどうすればよいですか?
unit-testing - 大規模なプロジェクト (静的ライブラリなど) の gcov
次のディレクトリ レイアウトを持つより大きなプロジェクトに取り組んでいます。
でコンパイルした後-fprofile-arcs -ftest-coverage
、Build/MyTest ディレクトリ内で MyTest アプリケーションを実行します。予想どおり、Build ディレクトリ内に *.gcno および *.gcda ファイルがあります。MyTest ディレクトリ内で gcov を実行すると、さまざまな *.gcov ファイルが生成されますが、残念ながら MyA と MyB 内のすべてのものではありませんが、すべての関数はこの 2 つのライブラリ内で呼び出されます。さまざまなオプションを試しましたが、どういうわけか、このレイアウトで有用な (つまり正しい) *.gcov ファイルを作成できません。
すべての cpp を 1 つのディレクトリ内にコピーして手順を繰り返すと、すべてが期待どおりに機能し、カバレッジ分析は完璧です。
gcov - 共有ライブラリのコード カバレッジをサポートする gcov のバージョン
共有ライブラリのコード カバレッジをサポートする gcov のバージョンはどれですか?
c++ - コア ダンプと gcov カバレッジ レポート
マルチスレッドプログラムでストレステストを行い、カバレッジも収集しています。私の知る限り、プログラムが _exit() または SIGABRT、SIGSEGV などのシグナルによって終了された場合、gcov は .gcda ファイルを生成しません。
プログラムがクラッシュすると、シグナルによってコア ファイルが生成され、gcov カバレッジ データは生成されません。もちろん、信号を処理してカバレッジ データを生成することはできましたが、この場合、コア ダンプ ファイルを生成できませんでした。しかし、クラッシュの原因を突き止めるために、コア ダンプと gcov データ ファイルの両方を生成したいと考えています。
私の質問は、信号なしでコア ダンプを生成する方法はありますか、またはプログラムが突然終了したときに gcov カバレッジ データ ファイルを生成する方法はありますか?
c++ - C++ コードでインスタンス化されていないテンプレートを見つける
C++ コードでインスタンス化されていないテンプレートを見つける最良の方法は何ですか?
テンプレートを多用するコード ベースがあります。もちろん、テスト カバレッジが高いことを確認したいと考えています。使用されているすべてのコードについて、これは を使用して非常にうまく機能しgcov
ます。
ただし、使用されていないテンプレートは、によって実行不可として報告されgcov
ます。
いくつかのグーグル検索の後、g++
これらのテンプレートのコードを強制的に発行する方法はないようです (これは論理的なものであり、コンパイラーはどのように型を推測する必要がありますか?) また、インスタンス化されていないテンプレート コードを gcov に認識させる方法もないようです。実行可能なコードとして。
GCC-ftest-coverage -fprofile-arcs
インスツルメンテーションによって生成されたファイルを拡張できる「すぐに使える」ものはありますか? GCCのgcov オプションのドキュメントによると、テンプレート関数本体全体を 1 つのブロックとしてマークするだけでおそらく十分でしょう。
編集(背景情報): ヘッダーのみのテンプレート ライブラリに取り組んでいます。ここでの私の目的は、未使用/テストされていない機能を見つけることです。
コード カバレッジに欠陥があることは承知していますが、インスタンス化されていないコードを見つけることは、コードのテストを改善するための非常に重要なステップです。現在、各関数の先頭にチェックポイント マクロを配置しています。(file, line)
テスト モードでは、渡されたチェックポイントのグローバル セットに のペアを挿入するコードに展開されます。テストを実行した後、手動ですべてのファイルを読み取り、到達したチェックポイントを使用可能なすべてのチェックポイントのセットと比較します。
インスタンス化されていないコードを見つけることは重要です。たとえば、直感的でない C++ テンプレートの優先順位の動作のために、読者や作成者でさえ使用されると予想されるデッド コードがどこかにある可能性があります。