特別な 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 コメントが正しく認識されるよう、行にはコメントだけを記述する必要があります。

  • No labels