Code Composer プロジェクトをテストするためのコンフィギュレーションは、典型的なプロジェクト構成を処理できるように構成されています。しかし、実行時テストを有効にするには、プロジェクト コンフィギュレーションの変更が必要になる場合もあります。通常、以下のような変更を行います。

  • テスト フレームワークによってリソースの消費が増えるため、ヒープおよびスタックのデフォルト サイズの拡張が必要になる場合があります。
  • テスト フレームワークによってリソースの消費が増えるため、メモリへのプログラム配置の変更が必要になる場合があります。たとえば、C++test ランタイム ライブラリとリンクされたテスト実行可能ファイルが内部的なシグナル プロセッサ メモリに収まらず、外部 RAM に配置しなければならない場合などです。この場合、プロジェクトのリンカー スクリプトの変更が必要になります。
  • 単体テストの実行が、元のプログラムの実行より大幅に遅いという現象が見られます。実行が遅くなる原因はいくつかあります。C++test のインストゥルメンテーションによるオーバーヘッド、ホストにテスト結果を格納するためにホスト プラットフォームへのファイル I/O 操作のチャネリングを行う TI ランタイム サポート ライブラリを使用していること、比較的低速な外部メモリでプログラムを実行していることです。インストゥルメンテーション機能を制限することで、パフォーマンスを改善することができます。[テスト コンフィギュレーション] ダイアログの [実行] タブにある [インストゥルメント モード] オプションでインストゥルメンテーション機能を制限できます。[インストゥルメントなし] 構成の場合に最も高いパフォーマンスが得られます。[インストゥルメントなし] 構成では、カバレッジの収集やスタック トレースのレポートは行われず、回帰単体テストだけが行われます。
  • [ビルトイン] > [Embedded Systems] > [Texas Instruments] > [ Run TI CCS v4+ Tests] および [Run TI CCS v4+ Application with Memory Monitoring] ビルトイン テスト コンフィギュレーションには、C++test ランタイム ライブラリを準備するステップが組込まれています。  このステップがある場合、手動で C++test ランタイム ライブラリをビルドしてリンカー フラグに追加する必要はありません。ランタイム ライブラリの自動ビルドを防止したい場合は、テスト コンフィギュレーションの [実行] > [全般] タブで [テスト実行フロー] の [編集] ボタンをクリックし、テスト フロー実行の XML 文書から <BuildRuntimeLibStep /> を削除します。

Code Composer 環境でのテストを容易にするために、簡単な JavaScript プログラムが用意されています。<CPPTEST_INSTALL_DIR>/bin/engine/bin/CCS4xConnector.jsこのプログラムは、ターゲットまたはシミュレーターへのテスト バイナリの配布および実行に役立ちます。 

[Run TI CCS v4+ Tests] および [Run TI CCS v4+ Application with Memory Monitoring] テスト コンフィギュレーションは、 Code Composer プロジェクトのアクティブなターゲット構成を使って、準備されたテストを実行します。「アクティブな」ターゲット構成がプロジェクトで選択されていない場合、「デフォルトの」ターゲット構成が使用されます ( 「アクティブ」または「デフォルト」としてマークされた構成がない場合、一番目に利用可能なターゲット構成ファイルが選択されます)。この動作を変更する場合、テスト実行フロー プロパティの値として、ターゲット構成ファイルを手動で指定することができます。これにはテスト コンフィギュレーションの [実行] > [全般] タブの [実行の詳細] フィールドからアクセスできます。ターゲット構成ファイルはフル パスで指定するべきです。

CCS ユーティリティは、Code Composer Studio のディストリビューションに付属するサンプル スクリプト loadti に基づいています。4.x の場合、このスクリプトは <Code Composer Install dir>/ccs4/scripting/examples/loadti にあります。5.x の場合、<Code Composer Install dir>/ccsv5/ccs_base/scripting/examples/ にあります。詳細オプションについてはサンプルのドキュメントを参照してください。 

実行された CCS4xConnector.js ユーティリティは、Debug Server に接続し、テスト バイナリをロードして実行しようとします。

単体テスト

既存の Code Composer プロジェクトに対して単体テストを実行する前に、「実行時テスト」で説明しているカスタマイズが必要な場合があります。

生成された単体テストを実行するには、次の操作を行います。

  1. 単体テストのための目的のコンテキストを選択します。
  2. [ビルトイン] > [Embedded Systems] > [Texas Instruments] > [Run TI CCS v4+ Tests] テスト コンフィギュレーションを選択します。

ビルトイン テスト コンフィギュレーションのカスタマイズが必要な場合、次の操作を行います。

  1. [ビルトイン] > [Embedded Systems] > [Texas Instruments] > [Run TI CCS v4+ Tests] テスト コンフィギュレーションを複製します。
  2. 複製されたテスト コンフィギュレーションの [実行] > [全般] タブを開きます。
  3. [実行の詳細] で以下のテスト実行フロー プロパティを変更できます。
    • Target configuration file: このプロパティはテスト プロセスで使用するデバッガー構成ファイルを指します。デフォルトでは、"Active" ターゲット コンフィギュレーション ファイルが使用されます (または "Active" がない場合は "Default" が使用されます)。有効なターゲット コンフィギュレーション ファイルへのパスを任意に指定できます。GEL ファイルの初期化を含め、このターゲットを使用するために環境を正しく構成する必要があります。C++test は指定のとおりにターゲットに接続しようとします。指定以外の初期化は行いません。
    • Executable exit point symbol: このプロパティはテスト実行の最後を示すブレークポイントを設定するために使用されます。

テスト ケースのデバッグ

TI Code Composer v4 の場合、標準の実行モジュール デバッグ手段を使用します。

TI Code Composer v5.x および 6.0 の場合、 Eclipse の内部デバッグ モードを使用します。詳細については 次のセクションを参照してください。

アプリケーション検証

既存の Code Composer プロジェクトに対して単体テストを実行する前に、「実行時テスト」で説明しているカスタマイズが必要な場合があります。

生成された単体テストを実行するには、次の操作を行います。

  1. 単体テストのための目的のコンテキストを選択します。
  2. [ビルトイン] > [Embedded Systems] > [Texas Instruments] > [Run TI CCS v4+ Application with Memory Monitoring] テスト コンフィギュレーションを選択します。

ビルトイン テスト コンフィギュレーションのカスタマイズが必要な場合、次の操作を行います。

  1. [ビルトイン] > [Embedded Systems] > [Texas Instruments] > [Run TI CCS v4+ Application with Memory Monitoring] テスト コンフィギュレーションを複製します。
  2. 複製されたテスト コンフィギュレーションの [実行] > [全般] タブを開きます。
  3. [実行の詳細] で以下のテスト実行フロー プロパティを変更できます。
    • Target configuration file: このプロパティはテスト プロセスで使用するデバッガー構成ファイルを指します。デフォルトでは、"Active" ターゲット コンフィギュレーション ファイルが使用されます (または "Active" がない場合は "Default" が使用されます)。有効なターゲット コンフィギュレーション ファイルへのパスを任意に指定できます。GEL ファイルの初期化を含め、このターゲットを使用するために環境を正しく構成する必要があります。C/C++test は指定されているとおりにターゲットに接続するだけであり、その他の初期化は行いません。
    • Executable exit point symbol: このプロパティはテスト実行の最後を示すブレークポイントを設定するために使用されます。
  • No labels