テストケースに複雑度を加える
KAST チェッカー開発プロセスでの次のステップは、テストケースにテストを追加することです。追加できるテストは次のとおりです。
- 誤検知テスト - チェッカーが特定の条件に対してエラーを生成しないことを確認します。
- より複雑なテスト - チェッカーが特殊なケースまたは複雑度の高いケースに対してエラーを生成することを確認します。
このチュートリアルのサンプルチェッカーでは、次の 3 つの誤検知テストケースを追加します。
- 非代入ブール演算
- ブール等価演算
- 複合式での割り当て
これらのケースでは、Klocwork エラーは生成されません。
1.testcase.cc
のコードを次のように変更します。
void f(int a, int b) { if (a = b) { /* ERROR - assignment in condition */ } if (a > b) { /* OK - no assignment */ } if (a == b) { /* OK - equal check, not assignment */ } if ((c = getchar()) != EOF) { /* OK - assignment as part of more complex expression */ } }
2.Checker Studio に新しいコードを貼り付け、テストを再実行します。
結果は、誤検知が生成されなかった (すべてのテストケースが処理された) ことを示します。