通常、コードカバレッジツールの腕をひねって、特定の実行中に実行されたパスを示すレポートを取得できます。このレポートには、コード自体が表示され、最初の数列は、特定のパスが実行されたかどうかに関するカバレッジツールの特定の表記に従ってマークアップされている必要があります。
これをそのまま使用できる場合もあれば、前処理して実行されなかったコードを削除するか、実行されたかどうかを示す新しい表記を各行に追加する必要がある場合もあります(ほとんどのツールはパス情報のみを表示します。コントロールポイント):
したがって、カバレッジツールから、次のようなレポートを取得できます。
T- if(sometest)
{
x somecode;
}
else
{
- someother_code;
}
表記T-は、ifステートメントがtrueと評価されただけであり、コードの最初の部分のみが実行されたことを示します。後の表記「x」は、この行が実行されたことを示します。
最初の列にT、F、またはxが含まれている場合にのみ一致する正規表現を形成できるため、実行されたすべての制御ステートメントと実行された行をキャプチャできます。
各コントロールポイントでのみカバレッジ情報を取得する場合があります。その場合、Cファイルを解析し、実行行を自分でマークする必要があります。それほど簡単ではありませんが、不可能でもありません。
それでも、これは興味深い質問のように聞こえますが、解決策はおそらく価値よりも多くの作業です...
-アダム