lcov
これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドlcovです。
プログラム:
NAME
lcov-グラフィカルなGCOVフロントエンド
SYNOPSIS
lcov -c|- 捕獲
[-d|- ディレクトリ ディレクトリにジョブを開始します。] [-k|--カーネルディレクトリ ディレクトリにジョブを開始します。]
[-o|-出力ファイル トレースファイル] [-t|--テスト名 テスト名]
[-b|--ベースディレクトリ ディレクトリにジョブを開始します。] [-i|- イニシャル] [--gcov-ツール ツール]
[-チェックサム] [-チェックサムなし] [-再帰なし] [-f|-フォローする]
[--compat-libtool] [--no-compat-libtool] [-無視-エラー エラー]
[--to-パッケージ パッケージ] [--from-パッケージ パッケージ] [-q|- 静かな]
[-マーカーなし] [- 外部の] [-いいえ-外部]
[--config-ファイル 設定ファイル] [--rc キーワード=値]
[--互換性 モード=オン|オフ|自動]
lcov -z|--ゼロカウンター
[-d|- ディレクトリ ディレクトリにジョブを開始します。] [-再帰なし] [-f|-フォローする]
[-q|- 静かな]
lcov -l|- リスト トレースファイル
[-q|- 静かな] [--リストのフルパス] [--no-リストのフルパス]
[--config-ファイル 設定ファイル] [--rc キーワード=値]
lcov -a|--add-tracefile トレースファイル
[-o|-出力ファイル トレースファイル] [-チェックサム] [-チェックサムなし]
[-q|- 静かな] [--config-ファイル 設定ファイル] [--rc キーワード=値]
lcov -e|- エキス トレースファイル パターン
[-o|-出力ファイル トレースファイル] [-チェックサム] [-チェックサムなし]
[-q|- 静かな] [--config-ファイル 設定ファイル] [--rc キーワード=値]
lcov -r|- 削除する トレースファイル パターン
[-o|-出力ファイル トレースファイル] [-チェックサム] [-チェックサムなし]
[-q|- 静かな] [--config-ファイル 設定ファイル] [--rc キーワード=値]
lcov --差分 トレースファイル 差分
[-o|-出力ファイル トレースファイル] [-チェックサム] [-チェックサムなし]
[--変換ファイル名] [- ストリップ 深さ] [- 道 path] [-q|- 静かな]
[--config-ファイル 設定ファイル] [--rc キーワード=値]
lcov - まとめ トレースファイル
[-q|- 静かな]
lcov [-h| - 助けて] [-v|- バージョン]
DESCRIPTION
lcov は、GCCのカバレッジテストツールgcovのグラフィカルフロントエンドです。 ラインを集める、
複数のソースファイルの関数およびブランチカバレッジデータとHTMLページの作成
カバレッジ情報で注釈が付けられたソースコードが含まれています。 また、概要を追加します
ファイル構造内を簡単にナビゲートするためのページ。
lcov カバレッジデータを収集し、 genhtml HTMLページを作成します。 カバレッジデータは
現在実行中のLinuxカーネルまたはユーザースペースから収集されます
応用。 これを行うには、次の準備手順を完了する必要があります。
Linuxカーネルカバレッジの場合:
gcov-kernelインフラストラクチャのセットアップ手順に従います。
http://ltp.sourceforge.net/coverage/gcov.php
ユーザースペースアプリケーションカバレッジの場合:
オプション「-fprofile-arcs」とを使用して、GCCでアプリケーションをコンパイルします。
「-ftest-coverage」。
このマニュアルページは、の出力形式を参照していることに注意してください。 lcov 「.infoファイル」または
「tracefile」であり、GCOVの出力は「.dafile」と呼ばれます。
また、パーセンテージを印刷する場合、0%と100%は、値が次の場合にのみ印刷されることに注意してください。
それぞれ正確に0%と100%。 従来は0%に丸められるその他の値
または100%は、代わりに最も近い非境界値として出力されます。 この動作は
のそれと gcov(1)ツール。
OPTIONS
-a トレースファイル
--add-tracefile トレースファイル
の内容を追加 トレースファイル.
-aスイッチを使用して複数のトレースファイルを指定し、カバレッジデータを結合します
マッチングテストの実行回数を合計することにより、これらのファイルに含まれます。
ファイル名の組み合わせ。
追加操作の結果は、stdoutまたはtracefileに書き込まれます。
-oで指定します。
-z、-c、-a、-e、-r、-l、-diff、または--summaryのいずれかXNUMXつのみを指定できます。
時間。
-b ディレクトリにジョブを開始します。
--ベースディレクトリ ディレクトリにジョブを開始します。
ディレクトリにジョブを開始します。 相対パスのベースディレクトリとして。
このオプションを使用して、lcovの場合のビルド環境のベースディレクトリを指定します
次のようなエラーメッセージが生成されます。
エラー:ソースファイルを読み取ることができませんでした
/home/ユーザー/プロジェクト/サブディレクトリ1/サブディレクトリ2/サブディレクトリ1/サブディレクトリ2/file.c
この例では、/ home / user / projectをベースディレクトリとして使用します。
このオプションは、libtoolなどでビルドされたプロジェクトでlcovを使用する場合に必要です。
ベースディレクトリで動作する環境、つまり環境を構築します。
コンパイラを呼び出すときの現在の作業ディレクトリは、の同じディレクトリではありません
ソースコードファイルがあります。
このオプションは、複数のベースディレクトリがある環境では機能しないことに注意してください
使用されています。 その場合は設定ファイルの設定を使用してください geninfo_auto_base = 1 (参照してください
lcovrc(5))。
-c
- 捕獲
カバレッジデータをキャプチャします。
デフォルトでは、現在のカーネル実行カウントをキャプチャし、結果を書き込みます
標準出力へのカバレッジデータ。 --directoryオプションを使用して、カウントをキャプチャします
ユーザースペースプログラムの場合。
キャプチャ操作の結果は、stdoutまたはtracefileに書き込まれます。
-oで指定します。
-z、-c、-a、-e、-r、-l、-diff、または--summaryのいずれかXNUMXつのみを指定できます。
時間。
-チェックサム
-チェックサムなし
トレースファイルの書き込み時にチェックサムデータを生成するかどうかを指定します。
--checksumを使用してチェックサムの生成を有効にするか、-no-checksumを使用して無効にします。
チェックサムの生成は 無効 デフォルトでは
チェックサム生成を有効にすると、ソースごとにチェックサムが生成されます
コード行とカバレッジデータと一緒に保存されます。 このチェックサムは、
異なるソースコードバージョンからのカバレッジデータを結合しようとする試みを防ぎます。
異なるソースコードバージョンで作業しない場合は、このオプションを無効にして速度を上げてください
カバレッジデータ処理を向上させ、トレースファイルのサイズを削減します。
--互換性 モード=値[,モード=値、...]
互換モードを設定します。
--compatを使用して、lcovがXNUMXつ以上の互換モードを有効にするように指定します
カバレッジデータをキャプチャするとき。 mode = valueのコンマ区切りリストを提供できます
複数のモードの値を指定するためのペア。
有効な 値 には次の値があります:
on
互換モードを有効にします。
OFF
互換モードを無効にします。
オート
自動検出を適用して、互換モードが必要かどうかを判断します。 ノート
その自動検出は、すべての互換モードで使用できるわけではありません。
値が指定されていない場合、デフォルト値として「on」が想定されます。
有効な モード には次の値があります:
リブツール
以前のプロジェクトのカバレッジデータをキャプチャする場合は、このモードを有効にします
libtoolメカニズムを使用して構築されています。 --compat-libtoolも参照してください。
この設定のデフォルト値は「オン」です。
ハンマー
以前のプロジェクトのカバレッジデータをキャプチャする場合は、このモードを有効にします
変更を含むバージョンのGCC3.3を使用してビルド(ハンマーパッチ)
それ以降のGCCバージョンの。 変更されたGCC3.3を特定するには、
拡張子「.bbg」で終わるファイルのプロジェクトのビルドディレクトリ。
GCC 3.3の変更されていないバージョンでは、これらのファイルに「.bb」という名前が付けられています。
この設定のデフォルト値は「auto」です。
分割crc
以前のプロジェクトのカバレッジデータをキャプチャする場合は、このモードを有効にします
変更を含むバージョンのGCC4.6を使用してビルド(分割
それ以降のGCCバージョンの関数チェックサム)。 一般的なエラーメッセージ
そのようなGCCバージョンによって生成されたカバレッジデータでlcovを実行すると、
メモリ 'および'ファイルの予期しない終わりに達しました '。
この設定のデフォルト値は「auto」です。
--compat-libtool
--no-compat-libtool
libtool互換モードを有効にするかどうかを指定します。
--compat-libtoolを使用してlibtool互換モードを有効にするか、-no-compat-libtoolを使用して
無効にします。 libtool互換モードは 使用可能 デフォルトでは
libtool互換モードが有効になっている場合、lcovはソースコードを想定します
「.libs」という名前のディレクトリにある.daファイルに関連するものは、
親ディレクトリ。
ビルド環境に「.libs」という名前のディレクトリがあるが、使用しない場合
libtoolの場合、カバレッジデータをキャプチャする際の問題を防ぐために、このオプションを無効にします。
--config-ファイル 設定ファイル
使用する構成ファイルを指定します。
このオプションを指定すると、システム全体の構成ファイルも
/ etc / lcovrc、またはユーザーごとの構成ファイル 〜/ .lcovrc 読み取られます。
このオプションは、次の複数のインスタンスを実行する必要がある場合に役立つことがあります。 lcov
異なる構成ファイルオプションを並行して使用します。
--変換ファイル名
diffを適用するときにファイル名を変換します。
このオプションを--diffと一緒に使用して、処理されたデータのファイル名の名前を変更します
diffによって提供されたデータに従って設定します。
--差分 トレースファイル 差分ファイル
カバレッジデータを変換する トレースファイル ソースコードの差分ファイルを使用する 差分ファイル.
異なるソースコードからのカバレッジデータをマージする場合は、このオプションを使用します
プログラムのレベル。たとえば、古いバージョンから取得したデータがあり、
最新バージョンのデータと組み合わせることができます。 lcov ソースをマップしようとします
これらのバージョン間のコード行を作成し、カバレッジデータをそれぞれ調整します。
差分ファイル 統一された形式である必要があります。つまり、「-u」を使用して作成する必要があります。
オプションの 差分 ツール。
古いバージョンに存在しない行は、としてカウントされないことに注意してください
インストルメント化されているため、この操作の結果として生じるトレースファイルは
個別に解釈されますが、新しいものから取得された他のトレースファイルと一緒に解釈されます
バージョン。 また、変換されたカバレッジデータは次の目的でのみ使用する必要があることに注意してください
プロセス自体が精度の低下をもたらすため、概要の目的。
diff演算の結果は、stdoutまたはtracefileに書き込まれます。
-oで指定します。
-z、-c、-a、-e、-r、-l、-diff、または--summaryのいずれかXNUMXつのみを指定できます。
時間。
-d ディレクトリにジョブを開始します。
- ディレクトリ ディレクトリにジョブを開始します。
で.daファイルを使用する ディレクトリにジョブを開始します。 カーネルの代わりに。
ユーザースペースプログラムのカバレッジデータを処理する場合は、このオプションを使用して
プログラムがコンパイルされた場所を指定します(ここでカウンターファイルが
.daで終わるものが保存されます)。
このオプションは複数回指定できることに注意してください。
- 外部の
-いいえ-外部
外部ソースファイルのカバレッジデータをキャプチャするかどうかを指定します。
外部ソースファイルは、いずれかのディレクトリにないファイルです。
--directoryまたは--base-directoryで指定します。 --externalを使用して外部を含める
カバレッジデータのキャプチャ中のソースファイル、またはこのデータを無視する場合は--no-external。
外部ソースファイルのデータは 含まれました デフォルトでは
-e トレースファイル パターン
- エキス トレースファイル パターン
からデータを抽出する トレースファイル.
特定のセットのカバレッジデータのみを抽出する場合は、このスイッチを使用します
トレースファイルからのファイル。 追加のコマンドラインパラメータは、次のように解釈されます。
シェルワイルドカードパターン(それに応じてエスケープする必要がある場合があることに注意してください)
シェルが最初にそれらを拡張するのを防ぎます)。 のすべてのファイルエントリ トレースファイル which
それらのパターンの少なくともXNUMXつに一致するものが抽出されます。
抽出操作の結果は、stdoutまたはtracefileに書き込まれます。
-oで指定します。
-z、-c、-a、-e、-r、-l、-diff、または--summaryのいずれかXNUMXつのみを指定できます。
時間。
-f
-フォローする
.daファイルを検索するときは、リンクをたどってください。
--from-パッケージ パッケージ
で.daファイルを使用する パッケージ カーネルやディレクトリの代わりに。
ビルドとテスト用に別々のマシンがあり、
ビルドマシンで.infoファイルの作成を実行します。 詳細については、-to-packageを参照してください
情報を表示します。
--gcov-ツール ツール
gcovツールの場所を指定します。
-h
- 助けて
短いヘルプテキストを印刷して、終了します。
-無視-エラー エラー
エラーのリストを指定してから、処理を続行します。
このオプションを使用して、XNUMXつ以上のクラスのエラーのリストを指定します。その後のlcov
中止するのではなく、処理を続行する必要があります。
エラー 次のキーワードのコンマ区切りリストにすることができます。
gcov: gcovツールがゼロ以外の戻りコードで返されました。
ソース: データセットのソースコードファイルが見つかりませんでした。
グラフ: グラフファイルが見つからないか、破損しています。
-i
- イニシャル
初期のゼロカバレッジデータをキャプチャします。
.bb、.bbg、または.gcnoを含むディレクトリで-cとこのオプションを指定してlcovを実行します
テストケースを実行する前にファイル。 結果は「ベースライン」カバレッジデータファイルです
これには、計測されたすべての回線のカバレッジがゼロです。 このデータファイルを組み合わせる
(lcov -aを使用)テスト実行後にキャプチャされたカバレッジデータファイルを使用して、
すべてのソースコードが含まれているわけではない場合でも、カバーされている合計行の割合は正しいです
テスト中にファイルがロードされました。
テストケースのデータをキャプチャする際の推奨手順:
1.ベースラインカバレッジデータファイルを作成します
#lcov -c -i -d appdir -o app_base.info
2.テストを実行します
#appdir / test
3.テストカバレッジデータファイルを作成します
#lcov -c -d appdir -o app_test.info
4.ベースラインとテストカバレッジデータを組み合わせる
#lcov -a app_base.info -a app_test.info -o app_total.info
-k サブディレクトリ
--カーネルディレクトリ サブディレクトリ
カーネルカバレッジデータをキャプチャするのは サブディレクトリ.
すべてのカーネルのカバレッジデータを取得したくない場合は、このオプションを使用しますが、
特定のサブディレクトリのみ。 このオプションは複数回指定できます。
カーネルサブディレクトリへのフルパスを指定する必要がある場合があることに注意してください
カーネルのgcovサポートのバージョンによって異なります。
-l トレースファイル
- リスト トレースファイル
の内容を一覧表示します トレースファイル.
-z、-c、-a、-e、-r、-l、-diff、または--summaryのいずれかXNUMXつのみを指定できます。
時間。
--リストのフルパス
--no-リストのフルパス
リスト操作中にフルパスを表示するかどうかを指定します。
--list-full-pathを使用して、リスト操作中にフルパスを表示するか、
--no-list-full-pathは、短縮されたパスを表示します。 パスは 短縮 デフォルトでは
-マーカーなし
除外に関係なくカバレッジデータを取得する場合は、このオプションを使用します
ソースコードファイル内のマーカー。 見る ジェインフォ (1)除外マーカーの詳細。
-再帰なし
指定したディレクトリのカバレッジデータのみを取得する場合は、このオプションを使用します
サブディレクトリを処理せずに。
-o トレースファイル
-出力ファイル トレースファイル
にデータを書き込む トレースファイル stdoutの代わりに。
標準出力を使用するには、ファイル名として「-」を指定します。
慣例により、lcovで生成されたカバレッジデータファイルは「トレースファイル」と呼ばれ、
ファイル名拡張子は「.info」である必要があります。
- 道 path
差分を適用するときにファイル名からパスを削除します。
このオプションを--diffと一緒に使用して、指定されたものを無視するようにlcovに指示します
tracefileとdiffファイル名を照合するときの初期パスコンポーネント。
-q
- 静かな
進行状況メッセージを印刷しないでください。
このオプションは、進行を防ぐために出力ファイル名が指定されていない場合に暗示されます
標準出力にも出力されるカバレッジデータを混乱させるメッセージ。
--rc キーワード=値
構成ディレクティブをオーバーライドします。
このオプションを使用して、 キーワード=値 をオーバーライドするステートメント
lcovrc構成ファイル内の対応する構成ステートメント。 あなたはできる
複数の構成ステートメントをオーバーライドするには、このオプションを複数回指定してください。
詳細はこちら: lcovrc(5)使用可能なキーワードとその意味のリスト。
-r トレースファイル パターン
- 削除する トレースファイル パターン
からデータを削除する トレースファイル.
特定のファイルセットのカバレッジデータを削除する場合は、このスイッチを使用します
トレースファイルから。 追加のコマンドラインパラメータはシェルとして解釈されます
ワイルドカードパターン(これを防ぐために、それに応じてエスケープする必要がある場合があることに注意してください。
最初にそれらを拡張することからシェル)。 のすべてのファイルエントリ トレースファイル で一致します
これらのパターンの少なくともXNUMXつが削除されます。
削除操作の結果は、stdoutまたはtracefileに書き込まれます。
-oで指定します。
-z、-c、-a、-e、-r、-l、-diff、または--summaryのいずれかXNUMXつのみを指定できます。
時間。
- ストリップ 深さ
差分を適用するときにパスコンポーネントを削除します。
このオプションを--diffと一緒に使用して、指定された番号を無視するようにlcovに指示します
tracefileとdiffファイル名を照合するときの初期ディレクトリの数。
- まとめ トレースファイル
指定されたトレースファイルのサマリーカバレッジ情報を表示します。
このオプションは複数回指定できることに注意してください。
-z、-c、-a、-e、-r、-l、-diff、または--summaryのいずれかXNUMXつのみを指定できます。
時間。
-t テスト名
--テスト名 テスト名
トレースファイルに保存するテスト名を指定します。
この名前は、複数のデータセットがマージされるときにカバレッジデータセットを識別します
結合されたトレースファイル(オプション-aを参照)。
有効なテスト名は、文字、XNUMX進数、およびアンダースコアで構成できます。
キャラクター ("_")。
--to-パッケージ パッケージ
後で処理するために.daファイルを保存します。
ビルドとテスト用に別々のマシンがあり、
ビルドマシンで.infoファイルの作成を実行します。 これを行うには、次の手順に従ってください
手順:
テストマシン上:
-テストを実行します
--lcov -c [-dディレクトリ]を実行します--to-package file
- コピー file ビルドマシンに
ビルドマシンの場合:
--lcov -c--from-packageを実行します file [-oおよびその他のオプション]
これは、カーネルとユーザースペースのカバレッジデータの両方で機能します。 あなたが持っているかもしれないことに注意してください
-bと--to-packageまたはのいずれかを使用してビルドディレクトリへのパスを指定します
--from-パッケージ。 パッケージデータは.infoファイルに変換する必要があることにも注意してください
プログラムを再コンパイルする前に、またはそれは無効になります。
-v
- バージョン
バージョン番号を出力して終了します。
-z
--ゼロカウンター
すべての実行カウントをゼロにリセットします。
デフォルトでは、カーネル実行カウントをリセットしようとします。 --directoryオプションを使用して
ユーザースペースプログラムのすべてのカウンターをリセットします。
-z、-c、-a、-e、-r、-l、-diff、または--summaryのいずれかXNUMXつのみを指定できます。
時間。
onworks.netサービスを使用してオンラインでlcovを使用する