IDE での指摘事項の抑制
[DTP の指摘事項] ビューから、個々の指摘事項、ファイル中のある指摘事項タイプに属するすべて の指摘事項、またはファイル中のすべての指摘事項を抑制することができます。
1 つの違反または複数の違反を右クリックし、[抑制] を選択します。
表示されたダイアログで、違反を抑制する理由を入力し、抑制のタイプを選択します。
以下のいずれかのオプションを選択できます。
- ローカル - 抑制情報はワークスペースまたはソリューションに保存され、ローカルでの解析でだけ使用されます。ローカルの抑制を保存する場所をカスタマイズできます。詳細については「テストコンフィギュレーションの設定 ページ」を参照してください。
- in source code - 指摘事項はコード内で抑制され、ソース管理システムにコードをチェックインした場合に抑制がチーム内で共有されます。
- in DTP - 抑制情報は Development Testing Platform に保存され、チーム内で共有されます。
- [OK] をクリックして抑制を完了します。
ソース コードで手動で指摘事項を抑制する
C++test では、以下の C または C++ スタイル コメント組み込みディレクティブを直接コード内で使用して抑制を定義できます。
- parasoft-suppress <ruleid> [<ruleid> ...] ["<comment>"]: 現在の行だけの抑制を作成します (抑制ディレクティブのある行)。
- parasoft off: この行とファイル最終行の間で発生するすべての静的解析違反のレポートを抑制します。
- parasoft on: この行とファイル最終行の間で発生するすべての静的解析違反のレポートを抑制解除します。
- parasoft suppress/unsuppress [line <linewildcard>][class <classnamewildcard>] [file <filenamewildcard>] [item <ruleid>][type <severity>] [reason <comment>]: 指定されたパラメーターを持つ抑制を削除します。例
line *, line 10, line 50-*
class MyClass, class *
file *example.cpp, file *ex*.cpp
item SECURITY-02
type SV
reason "Not relevant to my code."
上記の要素 (line, class, file,
等) は、各エントリを空白で区切ることで、組み合わせて使用できます (例:item * class MyClass line 10-*)。
<filenamewildcard>
は、ファイルへの絶対パスとして指定します。
例 A:
/* parasoft suppress item SECURITY-02 */
抑制がある行から、現在のファイルの SECURITY-02 の違反レポートを抑制します。
例 B: /* parasoft unsuppress item * class MyClass line 10-* */
現在のファイルの 10 行から、MyClass クラスのすべての違反を抑制解除します。
例 C: /* parasoft unsuppress item SECURITY-02 file *example.
cpp */
現在の翻訳単位内にあり、パスが *example.cpp というファイル名パターンに一致するすべてのファイルの SECURITY-02 ルールを抑制解除します。
例 D: /* parasoft suppress all */
現在のファイルのディレクティブが存在する行から、すべての違反を抑制します。
例 E:
void foo(); /* parasoft-suppress SECURITY-02 */
void bar(); // parasoft-suppress SECURITY-03 "Not relevant to my code."
foo の宣言がある行で SECURITY-02 を抑制し、bar の宣言があり "Not relevant to my code." という理由で除外された行で SECURITY-03 を抑制します。
例 F:
/* parasoft off */
/* parasoft unsuppress line 30-45 */
すべてを抑制してから、行 30 から 45 を抑制解除します。
その他の注意点
item
が指定されていない場合、抑制(解除) はすべてのルールに適用されます。これはitem *
を指定したのと同じです。file
が指定されていない場合、抑制(解除) は現在のファイルにだけ適用されます。line
が指定されていない場合、抑制(解除) はディレクティブを含む行から適用されます。- 名前に空白を含むファイルを抑制するには、引用符を使用する必要があります。例:
parasoft suppress file "*file with whitespace.cpp"
- ヘッダー ファイルで
file *
パターンの抑制を指定すると、ヘッダー ファイルをインクルードするすべてのファイルで抑制が有効になります。ファイルが指定されていない場合、抑制はヘッダーにだけ適用されます。 parasoft-suppress
ディレクティブは他のparasoft on、parasoft off,
andおよび parasoft suppress/unsuppress
ディレクトリとは非常に異なっています。parasoft-suppress
は、現在の行 (ディレクティブがある行) だけを抑制し、他のディレクティブとは異なる構文を使用します。