特別な parasoft-instrumentation coverage コメントを使用し、特定の関数のカバレッジ インストゥルメンテーションを無効または有効にできます。
// parasoft-instrumentation coverage off- カバレッジ インストゥルメンテーションを無効化// parasoft-instrumentation coverage on- カバレッジ インストゥルメンテーションを再有効化
カバレッジ インストゥルメンテーションが無効化された関数の要素 (行や判断文など) は、カバー可能な要素としてカウントされません。
どちらのコメントも、(プリプロセス前の) 同一ファイル内で、コメントを含む行より後にある関数定義に適用されます。コメントは関数単位で (関数全体に) 適用されます。つまり、関数の中にコメントが記述された場合、コメントより後に定義された関数にだけ適用されます。
次のサンプルでは、関数 f2()、f3()、f5()、main() に対してカバレッジ インストゥルメンテーションが無効化され、関数 g()、f1()、f4() に対して有効化されます。関数 f4() 内のコメントは、コメントの後に定義がある f5() および main() 関数に適用されます。次のサンプル コードは、カバー可能な行が 7 行 (g() に 1 行、f1() に 2 行、f4() に 4 行) あるとみなされます。
int g(int i) { return i+1; }
int f1(int a) {
if (a >= 0) return +1;
else return -1;
}
// parasoft-instrumentation coverage off
int f2(int a) {
return g(a - 1) + g(a);
}
int f3(int a) {
return a + 2;
}
// parasoft-instrumentation coverage on
int f4(int a, int b) {
if (a == 3) {
return b;
} else {
/* parasoft-instrumentation coverage off */
int i = g(a+b);
return i;
}
}
int f5(int a) {
return f3(a * 2);
}
int main() {
f1(12);
return 0;
}
parasoft-instrumentation coverage 構文は、//... および /*...*/ のどちらの形式のコメント内でも使用できます。/*...*/ 形式のコメントの場合、構文全体をコメント開始文字 /* と同じ行に配置する必要があります。parasoft-instrumentation coverage コメントが正しく認識されるよう、行にはコメントだけを記述する必要があります。