このセクションの内容:
準備
プロジェクトの設定を開始する前に、次の操作が必要です。
- C++test ランタイム ライブラリをビルドします。
- リンカー オプションにライブラリを追加します。それには、プロジェクトのプロパティ設定画面を表示し、[Parasoft] > [C++test] > [ビルド設定] を選択します。そして、[リンカー オプション] で C++test ランタイム ライブラリへのパスを追加します。
- マルチスレッド アプリケーションのテストをサポートするようランタイム ライブラリをビルドするには、"
-DCPPTEST_THREADS=1
" を指定する必要があります。
テスト コンフィギュレーションを使ってテスト バイナリをビルドする
テスト プロジェクトは Wind River Workbench 管理プロジェクトではないため、 標準の [ビルド] メニューを使ったビルドのサポートはありません。テスト バイナリをビルドするには、C++test テスト コンフィギュレーションを使用します。次のビルトイン テスト コンフィギュレーションを使って、VxWorks テスト プロジェクトのテスト バイナリをビルドすることができます。
- Build VxWorks Test Executable - RTP (PassFS) 結果ファイルを格納するために PassFS を使用して、vxe 実行可能ファイルを生成します。
- Build VxWorks Test Executable - RTP (TSFS) 結果ファイルを格納するために TSFS を使用して、vxe 実行可能ファイルを生成します。
- Build VxWorks Test Executable - RTP (Socket) ホスト マシンに結果を送信するために TCP/IP を使って、vxe 実行可能ファイルを生成します。
- Build VxWorks Test Module - DKM (PassFS) 結果を格納するために PassFS を使って、out ファイルを生成します。
- Build VxWorks Test Module - DKM (TSFS) 結果を格納するために TSFS を使って、out ファイルを生成します。
場合によっては、テスト コンフィギュレーションによって生成された最初のテスト バイナリの種類を変更しなければならないことがあります。そのため、このプロセスがどのように管理され、何が生成されるのかを理解することが有用です。
- ダウンロード可能カーネル モジュールのテスト
- "*.out" ファイルを生成するようテスト プロジェクトを構成できます。 このバイナリは、実行中の VxWorks ターゲットで直接起動するか、VxWorks Image Project (VIP) をビルドするときに使用できます。
- パーシャル イメージ ファイルまたはアーカイブ ファイルを生成するようテスト プロジェクトを構成できます。このバイナリは VxWorks Image Project (VIP) をビルドするときにコンポーネントとして使用されます。
- リアル タイム プロセス プロジェクト
- "vxe" 実行可能ファイルを生成するようテスト プロジェクトを構成できます。このバイナリは、直接ターゲットで起動するか、または VxWorks Image Project をビルドするために ROMFS プロジェクトと共に使用することができます。
どちらの手法を選択するかに関わらず、リンク プロセスのカスタマイズが必要な場合があります。主に次の 2 つの変更が必要な場合があります。
- ツール チェーンとシンボル抽出ユーティリティおよびそのオプション。これらを変更するには、テスト実行フロー定義中の初期プロパティを編集します。コメントに従って定義済みのオプションから選択することも、独自の構成を指定することもできます。
- リンクを含め、プロジェクトの成果物のビルド プロセス。詳細については下記の説明を参照してください。
デフォルトのリンク プロセスは、テスト実行フロー定義の LinkStep
によって管理されます。これは、[プロジェクト プロパティ] > [ビルド設定] で指定されたリンカーの実行可能ファイルと、テスト プロジェクトの作成中またはリフレッシュ中にスキャンされたリンカー フラグを使用します。ここで重要なのは、テスト プロジェクトの作成中またはリフレッシュ中に出現した最後のリンカー コマンドラインを、C++test がフラグの有効なソースとして分類することです。 そのため、リンク フェーズを持つ複数のビルド ターゲットからテスト プロジェクトが作成された場合、最後のものだけが使用されます。
そのような場合、[プロジェクト プロパティ] > [ビルド設定] でユーザーがリンカー フラグを追加しなければならないことがあります。また、そのような変更では不十分な場合、または最終テスト バイナリを作成するために複数のプロセスを実行する必要がある場合、テスト実行フローの CustomStep 機能に基づいて、ユーザー独自のリンク ステップを用意しなければならないことがあります。通常これは次の例のような記述になります。
<CustomStep id="cust_linking" label="Custom linking ..." commandLine="valid command line here" workingDir="${cpptest:testware_loc}" stdIn="" stdOut="" result="${cpptest:testware_loc}/resultant_binary" dependencyFiles="${cpptest:test_objects_quoted}" / >
ユーザー独自のリンク ステップを実装する際、次の変数が役立ちます。
- ${cpptest:test_object_files} テスト用実行モジュールの一部になるオブジェクト ファイルのカンマ区切りリスト
- ${cpptest:test_objects_quoted} テスト用実行モジュールの一部になるオブジェクト ファイルのスペース区切りリスト。各ファイルは二重引用符 (") で囲まれます。
- ${cpptest:test_objects_esc_quoted} テスト用実行モジュールの一部になるオブジェクト ファイルのスペース区切りリスト。各ファイルはエスケープされた二重引用符 (\") で囲まれます。
テスト実行フローの定義のシンタックスの詳細については、「テスト実行フローのカスタマイズ」を参照してください。
テスト バイナリを実行する
バイナリの実行プロセスは、バイナリの種類によって異なります。
バイナリの種類 | 必要な操作 |
---|---|
.out ファイル | このバイナリは実行中の VxWorks ターゲットで直接起動できます (たとえば [Load and Run VxWorks Test Object] テスト コンフィギュレーションを使用します)。 または、このバイナリを VIP プロジェクト ビルドに含めて、イメージのブートの後に起動できます。 |
.a アーカイブ ファイル | 通常、このバイナリは VIP プロジェクトに追加され、イメージのブートの後に起動されます。 |
.vxe 実行可能ファイル | このバイナリは、実行中の VxWorks ターゲットで起動することも、VIP プロジェクトに追加してイメージのブート後に起動することもできます。 |
テスト バイナリを実行するためのテスト コンフィギュレーションが [Embedded Systems] > [Wind River] > [Workbench] カテゴリの下に 2 つ用意されています。[Load and Run VxWorks Test Object (DKM)] と [Load and Run VxWorks Test Executable (RTP)] です。VxSim の実行には、どちらのテスト コンフィギュレーションもそのままで使用できます。必要に応じてカスタマイズすることももちろん可能です。そのことをリマインドするために、これらのテスト コンフィギュレーションは実行中に C++test コンソールにメッセージを表示します。