Kwdefectimport

kwdefectimport は、サードパーティ (非 Klocwork) の欠陥を Klocwork プロジェクトにインポートするためのツールです。この機能は、Klocwork 内からこれらの欠陥を確認する必要があるにもかかわらず、これらの欠陥が Klocwork によって検出されなかった場合に使用されます。kwdefectimport の使用方法の詳細については、kwdefectimport を使用した外部欠陥のインポートを参照してください。

前提条件

少なくとも以下の内容がそれぞれ記述された、有効な外部欠陥リストが必要です。
  • 欠陥コード。
  • 欠陥を含んでいるソースファイルの絶対パスまたは相対パスおよびファイル名。作業ディレクトリを指定することもできます。
  • 欠陥のソースファイル内の場所を表す行番号。
  • 欠陥を説明するメッセージ。欠陥がツール内で強調表示されたときのコンテキストを追加します。これは必須ではありませんが、強く推奨されます。

欠陥をインポートする場合、欠陥に関連付けられた分類基準、カテゴリ、および欠陥タイプが存在している必要があります。詳細については、分類基準の作成を参照してください。

欠陥をインポートするには、インターフェイス、com.klocwork.defectimport.IDefectParser を実装する Java クラスも書き込む必要があります。詳細については、欠陥パーサーの作成を参照してください。

使用方法

  kwdefectimport [options] <defects_source> [<defects_source>...]  

フィールド

  • <options> は、以下にリストしたオプションのいずれかです。
  • <defects_source> は、インポートする欠陥の場所です。複数のソースを指定できます。

kwdefectimport --tables-directory "C:/Klocwork/Server XY.Z/projects_root/projects/abc_main"
 --working-directory "C:/_workspaces/ABC_Main/src" --parser-class com.klocwork.defectimport.parser.TNSDLDefectParser
 --rejected-defects C:/tables/rejecteddefects.json --ext-libs "C:/Klocwork/lib/kwdefectimport.jar" 
--ext-libs "C:/Klocwork/lib/another_required_library.jar" "C:\already_analyzed_defects_in_proprietary_format\defects_01.xml" 
"C:\already_analyzed_defects_in_proprietary_format\defects_02.xml  

オプション

名前 (および短い名前) 説明
--tables-directory (-T) 欠陥がインポートされるテーブルディレクトリの場所です。
--help (-h) ヘルプを表示します。
--version バージョン情報を表示します
--working-directory (-W) オプション 作業ディレクトリの場所です。この値が指定されると、欠陥リストで指定されたファイル名はこのディレクトリに基づいて関連リンクと見なされます。
--ext-libs (-L) パーサーコンポーネントの jar ファイルを含んでいる外部ライブラリの場所です。
--parser-class (-p) インターフェイスを実装するのに必要なパーサー java コンポーネントの場所です。
--rejected-defects (-R) 除外された欠陥を含んでいる JSON ファイルのパスおよびファイル名です (オプション)

検証

kwdefectimport を実行すると、外部欠陥ファイルのデータは、インポート対象の欠陥リストに追加される前に検証されます。検証中に問題が発生するか、不正確なデータが見つかった場合、次のエラーのいずれかが生じる場合があります。

エラー 説明
欠陥タイプが登録されない 欠陥コードが分類基準、カテゴリ、および欠陥タイプの要件に従って登録されていない場合、欠陥は除外されます。
重複した欠陥が許容されない

各欠陥が処理されると、欠陥のタイプの名前、欠陥が存在するファイル、および欠陥が発生した行番号で構成される記録が作成されます。同じ識別情報を持つ後続の欠陥が処理されるとき、その欠陥は重複した欠陥として除外されます。

すなわち、以前の「元の」欠陥とメッセージが異なる可能性があるにもかかわらず、欠陥が重複と見なされるということになります。

欠陥が発生するソースファイルが指定された場所で見つからない

ソースファイル名が絶対値の場合、このファイルが実際に存在するかどうかについてファイルシステムがチェックされます。ファイルが存在しない場合、欠陥は除外されます。

ソースファイル名が相対値の場合は、作業ディレクトリの値がファイルを検索する際の開始点になります。ファイルがこの場所の相対位置に存在しない場合、欠陥は除外されます。

欠陥が発生するソースファイルが file.dat (範囲を広げた場合は entity.dat も含む) で参照されない この現象は、指定した外部ソースベースに対して kwdefectimport を初めて実行した場合に必ず発生します。処理される欠陥ごとに、欠陥が発生したファイル名と file.dat で参照されたすべてのファイルが比較されます。対象のファイルが file.dat および entity.dat に追加されていない場合、このときに追加されます。この後この同じソースファイルで発生する欠陥が発生しても、ファイルは再追加されません。このバリデータは、file.dat や entity.dat を編集できないなどの例外的な環境が発生しない限り、常に継続します。

終了コード

kwdefectimport の実行後、重大なエラーが存在せず、すべての欠陥が予想どおりインポートされた場合、終了コードは 0 になります。重大なエラーが発生した場合 (バリデータによって欠陥が除外された場合を除く)、終了コードは 1 になります。それ以外の場合は、バリデータによって除外された欠陥の数を表す数字が終了コードになります。次のテーブルは、考えられる終了コードと、エラーが発生した条件を示します。

エラー値 1 16 32 64 128  
エラー名 重大 欠陥タイプが登録されない 重複した欠陥 ソースファイルが見つからない ソースファイルが参照されない 終了コード
            0
  x         1
    x       16
      x     32
    x x     48
        x   64
    x   x   80
      x x   96
    x x x   112
          x 128
    x     x 144
      x   x 160
    x x   x 176
        x x 192
    x   x x 208
      x x x 224
    x x x x 240

x は、ソース欠陥の処理中に名前付きタイプのエラーが 1 回以上発生したことを示します。