このセクションでは、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 Application with Full Monitoring (File System, WRWB 4.x)
- RTP プロジェクトの場合、Run VxWorks RTP Application with Full Monitoring (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 が提供するマッピングを自動検出して使用します。
- Application's entry point (DKM プロジェクトのみ) - バイナリがターゲットにロードされた後、自動的に呼び出されるエントリ ポイント関数を指定します。エントリ ポイントを含め、テスト バイナリを手動で制御する方法については「動テスト実行用にテスト バイナリをビルドする」を参照してください。
- Path to VxWorks image (DKM プロジェクトのみ) - 利用可能なシンボルの情報を抽出するのに使用する VxWorks イメージへのパスを指定します (スタブを適切に設定するために必要)。VxWorks Simulator を使用する場合、C/C++test は自動的に VxWorks イメージを検出します。Running Target に接続する場合、イメージへのパスを手動で指定する必要があります。Unix 形式のパス区切り文字を使用します (
c:/path/to/vxworks/image
)。
テスト アプリケーションのビルドと実行
VxWorks Simulator または Running Target が接続されていることを確認してください。
- 実行するテストを選択します。
- プロジェクト タイプに応じて、以下のいずれかのテスト コンフィギュレーションを実行します。
- DKM プロジェクトの場合、Run VxWorks DKM Application with Full Monitoring (File System, WRWB 4.x)
- RTP プロジェクトの場合、Run VxWorks RTP Application with Full Monitoring (File System, WRWB 4.x)
テスト コンフィギュレーションの実行については「テストの実行」を参照してください。
C/C++test は自動的に以下を実行します。
- コードのインストゥルメント
- テスト バイナリのビルド
- ターゲットへのバイナリのロード (Debug Agent を使用)
- テスト バイナリの実行 (Debug Agent を使用)。DKM プロジェクトの場合、テスト コンフィギュレーションで指定されたエントリ ポイントが呼び出されます。「テスト コンフィギュレーションのカスタマイズ」を参照してください。
- ターゲットからのバイナリのアンロード (Debug Agent を使用)。
- カバレッジおよび実行時モニタリング結果の収集 (Debug Agent / ホスト-ターゲット パス マッピングを使用)
手動テスト実行用にテスト バイナリをビルドする (DKM プロジェクトのみ)
デフォルトでは、C/C++test はテスト バイナリを自動的にビルドし、実行します。DKM バイナリを使用して手動で機能テストのセットを実行する必要がある場合、テスト バイナリのビルドだけを行い、自動的にはテストを実行しないよう C/C++test を設定できます。これにより、テスト バイナリを手動でターゲットにアップロードし、テストを実行し、カバレッジ データおよび実行時モニタリングの結果を Workbench IDE にロードできます。
DKM テスト バイナリのテストを手動で実行するには、次の操作を行います。
- Run VxWorks DKM Application with Full Monitoring (File System, WRWB 4.x) テスト コンフィギュレーションを複製します。
- 新規コンフィギュレーションの名前を変更します (たとえば「VxWorks DKM build only」など)。
- [実行] > [全般] > [実行の詳細] > [テスト実行フロー] に移動し、ドロップダウン メニューから [Build VxWorks DKM Application with Full Monitoring] を選択して [適用] をクリックします。
- (任意) [実行] > [全般] > [実行の詳細] > [Test module binary] に移動し、テスト バイナリを保存する場所をカスタマイズします。
- プロジェクト エクスプローラーでテスト対象の DKM プロジェクトを選択します。
- 複製したテスト コンフィギュレーションを実行します。
C/C++test は自動的に以下を実行します。
- コードのインストゥルメント
- テスト バイナリのビルド - 手動でテスト バイナリをターゲットにロードします。
- ターゲット コンソールで CppTest_InitializeRuntime を呼び出し、実行時アプリケーション モニタリングを初期化します。
- テスト バイナリを使用して手動でテストを実行します。
- ターゲット コンソールで CppTest_FinalizeRuntime を呼び出し、実行時アプリケーション モニタリングを終了します。
- 手動でターゲットからテスト バイナリをアンロードします。
- [ビルトイン] > [Utilities] > [Load Test Results (Files)] テスト コンフィギュレーションを実行し、カバレッジおよび実行時モニタリングの結果をロードします。
結果の確認
テスト実行が完了すると、以下を参照できます。
- テスト実行時に収集されたカバレッジ情報。詳細は「カバレッジ情報の参照」を参照。
- 実行時モニタリングの結果。詳細は「実行時エラー検出」を参照。