このセクションでは、Parasoft C/C++test Standard でプロジェクトのコード依存関係データを収集し、後で Lattix Architect にインポートできるファイルとしてエクスポートする方法を説明します。

要件

  • Parasoft C/C++test Standard
  • Lattix Architect

コード依存関係データを収集しエクスポートするには、C/C++test の特別なライセンス機能が必要です。詳細は Parasoft 製品担当者にお問い合わせください。

C/C++test でのコード依存関係データのエクスポート

コード依存関係データを収集し、エクスポートするには、ビルトインの Export Code Dependency Data テスト コンフィギュレーションを使用して C/C++test を実行します。コマンドは次のようになります。

cpptestcli -compiler gcc_9-64 -config "builtin://Export Code Dependency Data" -input cpptestscan.bdf

.bdf ファイルを作成し、コマンド ラインで解析を実行する方法については「静的解析の実行」を参照してください。

結果はワークスペース内にあるデフォルトのレポートの場所の deps サブディレクトリに XML ファイルとして保存されます。<WORKSPACE>reports/deps-report <path> コマンド ライン オプションまたは report.location=[path] 設定を使用してレポートの場所をカスタマイズできます。詳細は「レポートのカスタマイズ」を参照してください。C/C++test はコンパイル単位ごとに 1 つの .xml ファイルを作成します。 

スコープをカスタマイズしてヘッダー ファイルを含める

デフォルトでは、テスト対象プロジェクトのソース ファイルの依存関係データが収集されます。依存関係解析のスコープを変更し、ヘッダー ファイルを含めることができます。

  • プロジェクト ヘッダー ファイルを解析するには、-module . オプションを指定して C/C++test を実行します。コマンドは次のようになります。

    cpptestcli -compiler gcc_9-64 -config "builtin://Export Code Dependency Data" -input cpptestscan.bdf -module .
  • システム ヘッダーを含め、すべてのヘッダー ファイルを解析するには、コマンドラインまたは C/C++test の .properties ファイルで cpptest.analyzer.dependency.scope 設定を無効にして C/C++test を実行します。コマンドは次のようになります。

    cpptestcli -compiler gcc_9-64 -config "builtin://Export Code Dependency Data" -input cpptestscan.bdf -module . -property cpptest.analyzer.dependency.scope=false

    コマンドライン オプションまたは .properties ファイルを使用して C/C++test を設定する方法については「設定の概要」を参照してください。

静的解析で依存関係解析を実行する

コード依存関係データを収集しながら静的コード解析を実行するには、コード依存関係アナライザーと順守したいルール セットの両方を有効にしたカスタム テスト コンフィギュレーションを使用して C/C++Test を実行する必要があります。 

カスタム テスト コンフィギュレーションを作成するには、以下のいずれかを行います。

  • builtin://Export Code Dependency Data コンフィギュレーションを複製し、コードのチェックに使用するルールを有効化します。詳細については「カスタム テスト コンフィギュレーションの作成」を参照してください。
  • カスタム静的解析テスト コンフィギュレーションを定義する .properties ファイルを開いて次のエントリを追加します。

    cpptest.analyzer.dependency.enabled=true

Lattix Architect へのコード依存関係データのインポート

XML コード依存関係データ ファイルをインポートする方法については、Lattix Architect のドキュメントにログインしてください。

  • No labels