このセクションでは、C++test Wind River Workbench プラグインの機能の概要およびWind River Workbench に C++test プラグインをインストールする方法を説明します。
このセクションの内容:
統合の概要
C++test プラグインは、 Eclipse プラグインのメカニズムを利用して Wind River Workbench IDE に統合されます。C++test は、次の場所にリンク ファイルを追加して Wind River Workbench IDE にプラグインされます。
<Wind River Installation Root>/<workbench-version_number>/wrwb/platform/eclipse/links/com.parasoft.xtest.cpptest.link
このリンク ファイルには、C++test プラグインへのパスが記述されており、このパス情報を使って Eclipse は C++test プラグインをロードして起動します。
インストールが終了すると、C++test はビューをデフォルトのWorkbench Application Development パースペクティブに追加します。また、Workbench では別に C++test パースペクティブも利用できます。
静的解析のサポート
静的解析 (コーディング規約とデータ フロー) は、次のプロジェクト タイプについてサポートされます(ただし、データ フロー解析を利用するにはライセンス オプションが必要です)。
- VxWorks ダウンロード可能カーネル モジュール
- VxWorks リアル タイム プロセス プロジェクト
- VxWorks 共有ライブラリ プロジェクト
- VxWorks 653 makefile プロジェクト
静的解析は Flexible と Standard の両方のビルド サポート ストラテジを等しくサポートします。詳細については「静的解析」を参照してください。
単体テストのサポート
完全な単体テスト実行フローは、次のプロジェクト タイプについてサポートされます。
- VxWorks リアル タイム プロセス プロジェクト
- VxWorks ダウンロード可能カーネル モジュール
- VxWorks 共有ライブラリ プロジェクト
単体テストは Flexible と Standard の両方のビルド サポート ストラテジを等しくサポートします。ただし、場合によってはさらに構成が必要なこともあります。たとえば、プロジェクトが Flexible ビルド サポート ストラテジを使用していない場合に、生成されたテスト コンポーネント (テスト ケースやスタブなど) をオリジナルのビルド プロセスから除外したり、テストに必要なデータを生成して追加したりすることです。詳細については、「単体テスト」を参照してください。
テストできるプロジェクトについて
Wind River ツール スイートは、ターゲット プラットフォームとアプリケーションの種類によって、さまざまな種類のプロジェクトで動作します。次の方法でプロジェクトをテストすることができます。
- Wind River Workbench プロジェクトを直接テストする
- テスト プロジェクトを介して Wind River Workbench プロジェクトをテストする
- カスタム セットアップ (VxWorks 653 プロジェクト)
Wind River VxWorks 653 プロジェクトは、カスタムのプロジェクト セットアップ処理を必要とします。
Wind River Workbench プロジェクト (Flexible または Standard ビルド サポート) のソース コードをテストするには、次の 2 つの方法があります :
- Wind River Workbench プロジェクトを直接テストする
- "テスト プロジェクト" を介してテストする
Wind River Workbench プロジェクトを直接テストする場合、ワークスペースに何もエンティティを追加しなくても、プロジェクトのテストが可能であると見なされます。 必要な操作は、完全なプロジェクトまたはプロジェクト中のリソースを選択してテスト コンフィギュレーションを実行することです。
Wind River Workbench プロジェクトを直接テストできない場合、テスト プロジェクトを作成し、テスト プロジェクトを介してコードをテストする必要があります。
一般的に、Wind River Workbench プロジェクトを直接テストできるのは次の場合です。
- テスト対象プロジェクトにサブ プロジェクトがない
- テスト対象プロジェクトのビルド ターゲットに追加されたすべてのリソースをプロジェクトがインクルードしている
これらの条件をプロジェクトが満たしていない場合、テスト プロジェクトを介してソース コードをテストするべきです。テスト プロジェクトが必要なケースが多いのは、たとえば、複数のレベルのサブ プロジェクトがある階層構造を持つプロジェクト (たとえば VIP/DKM [containers]/DKM [source projects]) の場合や、Flexible ビルド サポートを使用していて、ビルド ターゲットの定義に他のプロジェクトのリソースが含まれているプロジェクトの場合です。
既知の問題と制限事項
オプションのスキャンの問題
解析を開始するとき、C++test はまず make ファイルをスキャンしてコンパイル/リンク オプションを探します。テスト セッションを正常に実行するには、プロジェクトのビルドに必要なコンパイル/リンクのすべてのルールを、必要なすべてのファイルに対して確実に呼び出す必要があります。詳細については 「重要な注意 - すべてのターゲットを強制的にビルドするには」 を参照してください。
サポートされる言語拡張の制限事項
サポートされないコンパイラ キーワード
- extended
- __interrupt__ and interrupt
- __packed__ and packed
- bool, pixel, vec_step, and vector AltiVec Keywords
- __ev64_* Keywords
- __accum, __fixed, __X, and __Y DSP Extensions
- pascal
組込み関数の制限事項 (Diab コンパイラ)
次の組込み関数または型指定子をソース コード中で使用している場合、C++test のパースが失敗する可能性があります。
ARM
- ffi
PPC
- 乗累算命令 (PPC405)
- AltiVec 命令グループ
Sh
- __fixed 型
Sparc
- __scan および __divscc
その他の制限事項
- Wind River Workbench 対応 C++test プラグインは、"テスト プロジェクト" のテストについてのみコマンドライン インターフェイスをサポートします。Wind River Workbench プロジェクトを直接テストする場合にはコマンドライン インターフェイスはサポートされません。
- Wind River Workbench 対応 C++test プラグインは、ビルド ターゲット定義に追加されたリソースがビルド ターゲット定義と同じプロジェクトに属していない場合、Flexible ビルドのプロジェクトの単体テストをサポートしません。