このセクションでは、C/C++test と QNX Momentics の統合の概要を説明します。
はじめに
C/C++test プラグインは、Eclipse の標準的なプラグイン インストールの仕組みを利用して QNX Momentics IDE と統合します。詳細は「プラグインとして C/C++test をインストールする」を参照してください。
前提条件
- QNX Software Development Platform (サポート対象バージョンについては IDE を参照)
- サポート対象ホストおよびコンパイラ固有のその他の要件については、「コンパイラ」を参照してください。
ライセンス
C/C++test プラグインは、ローカル (マシンロック) ライセンスまたは Parasoft DTP またはスタンドアロンの Parasoft License Server インスタンスから取得したネットワーク ライセンスを使用できます。ライセンス設定の詳細については、「ライセンス」を参照してください。
QNX プロジェクトの処理
静的解析または単体テストを実行するには、QNX プロジェクトから以下の情報を収集する必要があります。
- ソース ファイルへのパス
- コンパイラのコマンド ライン
- リンカーのコマンド ライン
これらの情報は QNX Momentics IDE プロジェクト構造の記述から、make ファイルをスキャンすることによって収集されます。
make ファイルのスキャン
- プロジェクトを選択し、C/C++test のテスト コンフィギュレーションを実行します。
- ビルド プロセスが開始されます。make ファイルは、実際のコンパイル/リンク コマンド ラインの代わりに、オプション スキャン ユーティリティによってあらかじめ設定されたコマンド ラインを実行します。通常、コマンド ラインは次のように変更されます。
- オリジナルのコンパイラ コマンド ライン:
qcc <options> <file>
- C/C++test の設定済みコンパイラ コマンド ライン:
options_scanner <options> qcc <options> <file>
- オリジナルのコンパイラ コマンド ライン:
- オプション スキャナーはコマンド ラインを解析し、コンパイラ/リンカーオプションを後で使用するために保存します。
ビルド プロセスが完了すると、必要な情報がすべて収集されています。
プロジェクト構成
テストを開始する前に、プロジェクトのコンパイラ/リンカー オプション ソースが正しく設定されているかを確認します。多くの場合、C/C++test は必要な設定を自動的に検出します。コンパイラ/リンカー フラグ ソース設定は [ビルド設定] で指定されています。ビルド設定を参照するには、次の操作を行います。
- プロジェクト エクスプローラーでプロジェクト ノードを右クリックし、ショートカット メニューの [プロパティ] をクリックします。
- 左側のペインで [Parasoft] > [C/C++test] カテゴリを展開し、 [ビルド設定] カテゴリを選択します。
以下の構成オプションを指定できます。
オプションのソース
コンパイラ/リンカー スイッチの収集方法を指定します。
QNX プロジェクトを直接テストする場合は、[QNX ビルド システムのオプションを使用] を選択します。C/C++test のオプション エクストラクターは、QNX の make ファイルをスキャンします。コンパイラ/リンカーの実行可能ファイル名、コンパイラ/リンカーのコマンド ライン、コンパイル/リンク プロセスを開始するために必要なシステム環境がスキャンされます。これらの設定は、後の C/C++test の解析で使われます。
プロジェクト設定
- ビルド コマンド ライン: ビルド システムを起動するコマンド ラインを入力します。システムは特に限定されていませんが、デフォルトでは make ベースのシステムが想定され、適切なコマンドがあらかじめ設定されています。コマンドはプロジェクトの Makefile でmake を実行し、プロジェクトのコンパイルおよびリンク オプションをスキャンします。そのために、C/C++ コンパイラおよびリンカーは、${CPPTEST_SCAN} マクロに隠された特別なスキャナーに置き換えられます。-i および -B make オプションを使用すると非常に便利です。
- ビルド作業ディレクトリ: ビルド コマンドを起動するディレクトリを指定します。
- 従属ファイル: テスト/ビルド アクションが実行されるたびに、変更があるかどうかをチェックするファイルを指定します。変更されたファイルが発見されると、ビルド コマンドは再実行されます。プロジェクトのオプションのソースとなる (あるいはオプションに影響を与える) すべてのファイルを指定する必要があります。通常は Makefile だけです。
- キャッシュのリセット ボタン: スキャンされたすべてのオプションを消去し、次回のテスト アクションで再スキャンします。
コンパイラ設定
[コンパイラ設定] エリアでは、プロジェクト ソースのコンパイルとテスト実行可能ファイルのビルドで使用するコンパイラ セット/ツールを指定します。以下のオプションがあります。
- 種類: 現在登録されているすべてのコンパイラ から適切な種類コンパイラを選択します。QNX® GCC 5.x を使用します。
[自動検出] ボタンをクリックすると、コンパイラ実行可能ファイルの設定と、コンパイラ構成ディレクトリに保存されたコンパイラ バージョンの正規表現に基づいて、コンパイラの種類が検出されます。組込みソリューションで使用されるコンパイラはさまざまな種類があるため、自動検出で常に期待どおりの結果が得られるとは限りません。 - C コンパイラ: C コンパイラの実行ファイルを指定します。
- C++ コンパイラ: C++ コンパイラの実行ファイルを指定します。
- リンカー: リンカーの実行ファイルを指定します。
オプション
ランタイム ライブラリの場所や、その他のコンパイラ/リンカーオプションを指定します。
- -
DPARASOFT_CPPTEST
はデフォルトでコンパイラ オプションに追加されます。この後に任意のオプションを追加できます。 - オプションは追加のみで、削除することはできません (シンボルを undefine するなど、オリジナルのオプションを否定しないかぎり)。
${cpptest:original_options}
変数を使用してオリジナルのプロジェクトのオプションを参照できます。
「プロジェクト レベルまたはファイル レベルでのオプションの設定」も参照してください。
静的解析
静的解析を開始する前に、プロジェクトの [プロパティー] パネルの [Parasoft] > [C/C+test] > [ビルド設定] エリアでコンパイラが適切に設定されているかを確認します。通常は [QNX ビルド システムのオプションを使用] を [オプションのソース] として選択します。コンパイラ設定が正しいことを確認したら、静的解析を開始できます。
実行時テスト
このセクションでは、単体テストおよびApplication Monitoringについて説明します。
単体テスト
QNX プロジェクトのテスト用 C/C++test ランタイム ライブラリのビルド
組込みテストでは、選択されたプラットフォーム用に C/C++test ランタイム ライブラリをクロスコンパイルしてから、単体テストを行う必要があります。[Run QNX Momentics Tests] ビルトイン コンフィギュレーションは、自動的にランタイム ライブラリをビルドします。
C/C++test ランタイム ライブラリを手動でビルドする必要がある場合は、QNX_5.mk
をターゲット コンフィギュレーションとして 「C/C++test ランタイム ライブラリのビルド」の操作を行ってください。
QNX 単体テスト用テスト コンフィギュレーション
C/C++test には、QNX プロジェクト用のテスト コンフィギュレーション テンプレート( [ビルトイン] > [Embedded Systems] > [QNX] > [Run QNX Momentics Tests]) があります。このコンフィギュレーションには、QNX プロジェクトの完全な単体テストを行うために必要なステップがすべて含まれています。
- C/C++test ランタイム ライブラリのビルド
- テスト実行可能ファイルのビルド
- リモートの QNX システムでのテスト実行可能ファイルの実行
- 結果の収集
このテスト コンフィギュレーションは単なるテンプレートです。次の操作を行って、リモート QNX システム構成に合わせてカスタマイズする必要があります。
- [Parasoft] メニューの [テスト コンフィギュレーション] をクリックします。
- [ビルトイン] > [Embedded Systems] > [QNX] ツリー ノードを展開します。
- [Run QNX Momentics Tests] ノードを右クリックし、[複製] をクリックします。
- [ユーザー定義] カテゴリの下に追加された新しいテスト コンフィギュレーションを選択します。
- [実行] タブをクリックします。
- リモート QNX システム構成に合わせてテスト コンフィギュレーションのプロパティを変更します。
- QNX target: ターゲット ホストのアドレス
- QNX target test directory: ターゲット ホストのテストが実行されるディレクトリ
- QNX target user name: ターゲット ホストへの接続で使用されるユーザー名
このテスト コンフィギュレーションは、Windows の rcp ツール (リモート コピーを可能にする) および rsh ツール (リモート シェル実行を可能にする) に依存しています。リモート QNX システムは、rcp および rsh からのリモート呼び出しを許可するように構成されている必要があります。あるいは、テスト実行フローを変更して rcp および rsh 以外のツールを使用することもできます。
テスト ケースのデバッグ
Eclipse の内部デバッグ モードを使用します。詳細については以下を参照してください。
アプリケーション検証
QNX アプリケーション検証用テスト コンフィギュレーション
C/C++test には、QNX アプリケーションのメモリ エラー チェック付き実行用テスト コンフィギュレーション テンプレート([ビルトイン] > [Embedded Systems] > [QNX] > [Build and Run Application with Memory Monitoring for QNX Momentics]) があります。このコンフィギュレーションには、QNX アプリケーションをメモリ エラー チェック付きで実行するために必要なステップがすべて含まれています。
- アプリケーションのビルド
- リモート QNX システムでのアプリケーションの実行
- 結果の収集
このテスト コンフィギュレーションは単なるテンプレートです。リモート QNX システム構成に合わせてカスタマイズする必要があります。次の操作を行います。
- [Parasoft] メニューの [テスト コンフィギュレーション] をクリックします。
- [ビルトイン] > [Embedded Systems] > [QNX] ツリー ノードを展開します。
- [Build and Run Application with Memory Monitoring for QNX Momentics] ノードを右クリックし、[複製] をクリックします。
- [ユーザー定義] カテゴリに追加された新しいテスト コンフィギュレーションを選択します。
- [実行] タブをクリックします。
- リモート QNX システム構成に合わせてテスト コンフィギュレーションのプロパティを変更します。
- QNX target: ターゲット ホストのアドレス
- QNX target test directory: ターゲット ホストのアプリケーションが実行されるディレクトリ
- QNX target user name: ターゲット ホストへの接続で使用されるユーザー名
- QNX target PHOTON environment variable value: GUI アプリケーションの場合、Phindows セッションでアプリケーションの GUI を表示するには、この値を指定する必要があります。
このテスト コンフィギュレーションは、Windows の rcp ツール (リモート コピーを可能にする) および rsh ツール (リモート シェル実行を可能にする) に依存しています。リモート QNX システムは、rcp および rsh からのリモート呼び出しを許可するように構成されている必要があります。あるいは、テスト実行フローを変更して rcp および rsh 以外のツールを使用することもできます。