このセクションでは、C/C++test Plugin for Wind River Workbench 4.x を使用して単体テストを行う方法を説明します。C/C++test での単体テスト実行に関する全般的な情報は「テストの作成と実行」を参照してください。
以下の手順は、C/C++test Plugin for Wind River Workbench 4.x を使用して単体テストを実行し、情報を収集するために必要な手順です。
プロジェクトの設定
C/C++test Plugin for Wind River Workbench 4.x は以下のプロジェクト タイプをサポートしています。
- Downloadable Kernel Module
- Real-Time Process
C/C++ コードを解析する前に、プロジェクトを正しく設定する必要があります。プロジェクトの [プロパティ] を開き、[Parasoft] > [C/C++test] > [ビルド設定] に移動し、以下のオプションの設定を確認します。
- [オプションのソース] ドロップダウン メニューで [Wind River Workbench プロジェクトのオプションを使用] が選択されていること。
- [ビルド ターゲット] オプションが適切に設定されていること。
- [プロジェクト設定と同期化] オプションがオンであること。
コンパイラ ファミリおよび実行モジュールは初回の解析実行時に自動的に設定されます。
自動テスト用の実行環境の設定
テストを実行する前に、プロジェクトが実行環境 (シミュレーターまたはターゲット) で正常に実行でき、正しく設定されていることを確認します。
- VxWorks ランタイム環境で Debug Agent が有効化されていることを確認します。
- Debug Agent のターゲット アドレスがテスト コンフィギュレーションで指定されたターゲット アドレスと一致していることを確認します。
C/C++test が使用するデフォルトのターゲット アドレスは127.0.0.1:60000
です。テスト コンフィギュレーションでターゲット アドレスをカスタマイズできます (「テスト コンフィギュレーションのカスタマイズ」を参照)。
Debug Agent でネットワーク ポートの自動マッピングを使用しないようにします。VxWorks Simulator 設定時に固定の Debug Agent ローカル ポートを指定できます。[Advanced] > [Network Config] > [Configure...] に移動し、debug_agent に新規の Port Mapping を追加します。Remote Port: 1534 > Local Port: 60000 - VxWorks ランタイム環境でホスト-ターゲット パス マッピングを持つファイル システム (HostFS、PassFS など) が利用できることを確認します。
デフォルトでは、C/C++test はテストおよびカバレッジ結果収集時に自動的に検出されたホスト-ターゲット マッピングを使用します。テスト コンフィギュレーションでマッピングをカスタマイズできます (「テスト コンフィギュレーションのカスタマイズ」を参照)。
テスト コンフィギュレーションのカスタマイズ
実行環境のコンフィギュレーション設定を参照または変更するには、次の操作を行います。
- IDE メニューで [Parasoft] > [テスト コンフィギュレーション] をクリックします。
- [ビルトイン] > [Embedded Systems] > [Wind River] > [Workbench 4] に移動します。
- プロジェクト タイプに応じて以下のいずれかのテスト コンフィギュレーションを右クリックし、[複製] を選択します。
- DKM プロジェクトの場合、Run VxWorks DKM Unit Tests (File System, WRWB 4.x)
- RTP プロジェクトの場合、Run VxWorks RTP Unit Tests (File System, WRWB 4.x) - [ユーザー定義] カテゴリに追加される複製されたコンフィギュレーションを選択します。
- [実行] > [全般] > [実行の詳細] に移動し、以下の設定を確認または変更します。
- Target address - ターゲット アドレス (host:port)
を指定します。デフォルト値は127.0.0.1:60000
です。このアドレスが VxWorks Simulator または Running Target の設定と一致していることを確認してください。
- Target-host path mapping - ターゲットとホストの間のパス マッピング (/target/path=/host/path
) を指定します。C/C++test はこのマッピングを使用してテストおよびカバレッジ ログ ファイルを保存し、アクセスします。 マッピングには、[Test execution logs directory (on host)] で指定されたホストの場所が含まれていなければなりません。デフォルトでは、C/C++test は Debug Agent が提供するマッピングを自動検出して使用します。
- Path to VxWorks image (DKM プロジェクトのみ) - 利用可能なシンボルの情報を抽出するのに使用する VxWorks イメージへのパスを指定します (スタブを適切に設定するために必要)。VxWorks Simulator を使用する場合、C/C++test は自動的に VxWorks イメージを検出します。Running Target に接続する場合、イメージへのパスを手動で指定する必要があります。 Unix 形式のパス区切り文字を使用します (c:/path/to/vxworks/image
)。
テスト ケースの作成およびスタブの設定
C/C++test を使用してテストを作成および設定する方法については「テストの作成と実行」を参照してください。
スタブの作成および設定については「スタブ」を参照してください。
新しく追加されたテスト ファイルおよびスタブ ファイルは、ビルド ターゲットから自動的に実行されます。
DKM プロジェクト用のスタブの作成
DKM プロジェクト用にスタブを設定する場合、VxWorks カーネルで利用可能なシンボルに関する情報を収集することを強く推奨します。それには、カスタム テスト コンフィギュレーションを作成します。
- [ビルトイン] > [Generate Stubs] コンフィギュレーションを複製します。
- 新規コンフィギュレーションの名前を「Generate Stubs for DKM Projects」に変更します。
- [実行] > [全般] > [実行の詳細] > [テスト実行フロー] に移動し、ドロップダウン メニューから [Generate Stubs for VxWorks DKM - WRWB 4.x] を選択します。
- (任意) VxWorks イメージへのパスを設定します (「テスト コンフィギュレーションのカスタマイズ」を参照)。
- [適用] をクリックします。
単体テストの実行
VxWorks Simulator または Running Target が接続されていることを確認してください。
- 実行するテストを選択します。
- プロジェクト タイプに応じて、以下のいずれかのテスト コンフィギュレーションを実行します。
- DKM プロジェクトの場合、Run VxWorks DKM Unit Tests (File System, WRWB 4.x)
- RTP プロジェクトの場合、Run VxWorks RTP Unit Tests (File System, WRWB 4.x)
テスト コンフィギュレーションの実行については「テストの実行」を参照してください。
C/C++test は自動的に以下を実行します。
- コードのインストゥルメント
- テスト バイナリのビルド
- ターゲットへのバイナリのロード (Debug Agent を使用)
- テストの実行 (Debug Agent を使用)
- ターゲットからのバイナリのアンロード (Debug Agent を使用)
- テストおよびカバレッジ結果の収集 (Debug Agent / ホスト-ターゲット パス マッピングを使用)
結果の確認
テスト実行が完了すると、以下を参照できます。
- テスト実行結果。詳細は「テスト結果の検証」を参照。
- テスト実行時に収集されたカバレッジ情報。詳細は「カバレッジ情報の参照」を参照。