テストケースに複雑度を加える

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 に新しいコードを貼り付け、テストを再実行します。

Image:KAST_tutorial_1_4_GWYN_10.png

結果は、誤検知が生成されなかった (すべてのテストケースが処理された) ことを示します。