Code Composer Studio 向け C++test 単体テスト環境 - テクマトリックス

Code Composer Studio 向け
C++test 単体テスト環境構築手順書
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
(V2.0)
2011/12/14
テクマトリックス株式会社
システム エンジニアリング事業部
1 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
目 次
1.
はじめに ..................................................................................................................................................... 4
2.
サンプルコード準備 ................................................................................................................................... 5
3.
シンボルリスト作成...................................................................................................................................... 16
4.
単体テスト実行用テストコンフィギュレーションの準備 ................................................................................... 26
4.1.
テストスイート作成用 ..................................................................................................................................................................................................................... 27
4.2.
スタブ情報収集用 ........................................................................................................................................................................................................................ 29
4.3.
単体テスト実行用 ......................................................................................................................................................................................................................... 36
5.
C++test ビルド設定の変更 ...................................................................................................................... 47
6.
単体テスト実行確認 ................................................................................................................................. 55
2 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
改 版 履 歴
日付
版
説明
2010/12/27
1.0
新規作成
2011/12/12
2.0
・環境構築のための、事前確認の章を追加
・単体テスト実行用のテストコンフィギュレーションのカスタマイズ方法の修正
3 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
1. は じ め に
本資料は、Code Composer Studio(以後、CCS)向け C++test 単体テスト環境構築手順書です。
本資料を作成するあたり使用したツールのバージョンは以下のようになっています。
Windows:XP
C++test:version 9.2.1.26 Eclipse プラグイン版
CCS:version 4.2.4
4 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
2. サ ン プ ル コ ー ド 準 備
1)
[File]>[New]>[CCS Project]を選択します。
5 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
2)
[Project name]テキストボックスに任意のプロジェクト名を入力し、[Next]ボタンを選択します。
6 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
3)
[Project Type]メニューに、開発で使用するプロジェクト・タイプと同じ設定をし、[Next]ボタンを選択します。
(図中では、「C2000」を設定しています。)
7 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
4)
[Next]ボタンを選択します。
8 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
5)
[Device Variant]メニューに、開発で使用するマイコンを設定し、[Linker Command File]メニューにマイコンに適したファイルを設定します。
(図中では、TMS320F28335 マイコンの設定をしています。リンカー コマンド ファイル(.cmd)には、メモリマップが設定されています。)
9 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
6)
[Empty Projects]>[ Empty Project]ツリーメニューを選択後、[Finish]ボタンを選択します。
10 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
7)
下記のディレクトリにある「BugDetective」チュートリアルソースをディレクトリごとプロジェクト下にコピーします。
<C++test インストールディレクトリ>¥Examples
11 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
8)
[Target]>[New Target Configuration]メニューを選択します。
実行環境接続時に使用するターゲット コンフィギュレーション ファイル(.ccxml)を生成するためのウィザードが起動します。
12 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
9)
[File name]テキストボックスに任意の名前を入力し、[Finish]ボタンを選択します。
13 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
10) ターゲット コンフィギュレーション ファイルをエディタで開き、開発に使用するマイコンに対応したシミュレーターを選択後、[Save]ボタンを選択します。
(図中では、「F283x CPU Cycle Accurate Simulator」を選択しています。
14 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
11) 「integerOverflow.c」、「bufferOverflow.c」サンプルコードをエディタで開き、下記のように変数の宣言を変更します。
※変更前
char buffer[BUFFER_SIZE];
※変更後
static char buffer[BUFFER_SIZE];
15 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
3. シンボルリスト作 成
C++test の初期設定の状態では、CCS の標準ライブラリのシンボル情報を参照できません。そこで、C++test がライブラリのシンボル情報を可能にするため、事前
にシンボル情報をまとめた「シンボルリスト」を作成します。
1)
[Parasoft]>[テストコンフィギュレーション]メニューを選択します。
ダイアログが起動します。
16 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
2)
[ビルトイン]>[Utilities]>[Extract Library Symbols]ツリーメニューを右クリックし、[複製]メニューを選択します。
17 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
3)
[ユーザー定義] >[Extract Library Symbols]ツリーメニューが選択されている状態で、[実行]タブにある[実行の詳細]>[テスト実行フロー]カテゴリの[詳細]ボタンを選択します。
XML フローの編集ダイアログが起動します。
18 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
4)
下記の内容に従って、XML フローの変数を変更します。
※変更前
<SetProperty key="nm" value="nm" uiEditable="true" displayName="Symbols listing tool name" />
<SetProperty key="nm_opts" value="-g -p --defined-only --no-demangle" uiEditable="true" displayName="Symbols listing options" />
<SetProperty key="sym_file" value="${cpptest:testware_loc}/libSym.xml" uiEditable="true" displayName="Path to generated file with symbols" />
<SetProperty key="img" value="" uiEditable="true" displayName="Path to external library/object to scan for symbols" />
※変更後
<SetProperty key="work_dir" value="${cpptest:testware_loc}" uiEditable="true" displayName="work directory to make symbols lis t" />
<SetProperty key="nm" value="nm" uiEditable="true" displayName="Symbols listing tool name" />
<SetProperty key="nm_opts" value="-g -p --defined-only --no-demangle" uiEditable="true" displayName="Symbols listing options" />
<SetProperty key="sym_file" value="${cpptestproperty:work_dir}/libSym.xml" uiEditable="true" displayName="Path to generated file with symbols" />
<SetProperty key="img" value="" uiEditable="true" displayName="Path to external library/object to scan for symbols" />
19 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
5)
下記の内容に従って、ディレクトリ設定を変更します。
※変更前
<CustomStep
id="nm"
label="Extracting symbols..."
commandLine="&quot;${cpptestproperty:nm}&quot; ${cpptestproperty:nm_opts} &quot;${cpptestproperty:img}&quot;"
workingDir="${cpptest:testware_loc}"
result="${cpptest:testware_loc}/libnm.out"
stdOut="${cpptest:testware_loc}/libnm.out"
hideStdOut="true"
okExitCode="0"
/>
※変更後
<CustomStep
id="nm"
label="Extracting symbols..."
commandLine="&quot;${cpptestproperty:nm}&quot; ${cpptestproperty:nm_opts} ${cpptestproperty:img}"
workingDir="${cpptestproperty:work_dir}"
result="${cpptestproperty:work_dir}/libnm.out"
stdOut="${cpptestproperty:work_dir}/libnm.out"
hideStdOut="true"
okExitCode="0"
/>
20 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
6)
下記の内容に従って、XML フローのシンボルリストの出力ディレクトリを変更します。
※変更前
<CustomStep
id="nm2xml"
label="Creating external symbols list..."
commandLine="&quot;${cpptestproperty:jre}&quot; -cp &quot;${cpptest:utils_dir}&quot; LSISymLstGen libnm.out &quot;${cpptestproperty:sym_file}&quot;"
workingDir="${cpptest:testware_loc}"
result="${cpptestproperty:sym_file}"
okExitCode="0"
/>
※変更後
<CustomStep
id="nm2xml"
label="Creating external symbols list..."
commandLine="&quot;${cpptestproperty:jre}&quot; -cp &quot;${cpptest:utils_dir}&quot; LSISymLstGen libnm.out &quot;${cpptestproperty:sym_file}&quot;"
workingDir="${cpptestproperty:work_dir}"
result="${cpptestproperty:sym_file}"
okExitCode="0"
/>
[OK]ボタンを選択します。
21 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
7)
[テスト実行フロー]カテゴリのテーブルを環境に合わせ設定します。
※設定内容
設定項目
設定内容
work directory to make symbols list
ライブラリ保存ディレクトリ
Symbols listing tool name
ライブラリのシンボル表示ツール
Symbols listing options
シンボル表示ツールのオプション
Path to generated file with symbols
C++test 用シンボルリストファイル
Path to external library/object to scan for symbols
ライブラリファイル
※設定例:C2000 用コンパイラを用いている場合(Windows XP 上)
設定項目
設定内容
work directory to make symbols list
C:\Program Files\Texas Instruments\ccsv4\tools\compiler\c2000\lib
Symbols listing tool name
C:\Program Files\Texas Instruments\ccsv4\tools\compiler\c2000\bin\nm2000.exe
Symbols listing options
Path to generated file with symbols
${cpptestproperty:work_dir}/libSym.xml
Path to external library/object to scan for symbols
rts2700.lib rts2700_eh.lib rts2700_ml.lib rts2700_ml_eh.lib rts2800.lib rts2800_eh.lib rts2800_fpu32.lib
rts2800_fpu32_eh.lib rts2800_ml.lib rts2800_ml_eh.lib
22 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
8)
[名前]テキストボックスに「04_シンボルリスト生成」と入力します。
[Apply]ボタン選択後、[OK]を選択しダイアログを閉じます。
23 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
9)
プロジェクトを選択している状態で、
の右側にある▼ボタンを選択後、[テストの実行]>[ユーザー定義]>[04_シンボルリスト生成]を選択します。
手順 7)の設定例に従って設定した場合、下記のコマンド実行と、同様の処理が実行されます。
cd C:\Program Files\Texas Instruments\ccsv4\tools\compiler\c2000\lib
set PATH=C:\Program Files\Texas Instruments\ccsv4\tools\compiler\c2000\bin;%PATH%
nm2000.exe rts2700.lib rts2700_eh.lib rts2700_ml.lib rts2700_ml_eh.lib rts2800.lib rts2800_eh.lib rts2800_fpu32.lib rts2800_fpu32_eh.lib ^
rts2800_ml.lib rts2800_ml_eh.lib > libnm.out
java -cp "C:\Program Files\Parasoft\C++test for Eclipse\9.2\engine\utils" LSISymLstGen libnm.out libSym.xml
24 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
10) ライブラリ保存ディレクトリに、「libSym.xml」シンボルリストが生成されている事を確認します。
25 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
4. 単 体 テスト実 行 用 テストコンフィギュレーションの準 備
1)
[Parasoft]>[テストコンフィギュレーション]メニューを選択します。
ダイアログが起動します。
26 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
4.1. テストスイート作 成 用
1)
[ビルトイン]>[Unit Testing]>[Generate Test Suites]ツリーメニューを右クリックし、[複製]メニューを選択します。
27 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
2)
[名前]テキストボックスに「01_テストスイート作成(テストケース無し)」と入力します。
[Apply]ボタンを選択します。
28 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
4.2. スタブ情 報 収 集 用
1)
[ビルトイン]>[Unit Testing]>[Collect Stub Information]ツリーメニューを右クリックし、[複製]メニューを選択します。
29 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
2)
[ユーザー定義] >[Collect Stub Information]ツリーメニューが選択されている状態で、[実行]>[全般]タブの[実行の詳細]>[テスト実行フロー]カテゴリの[詳細]ボタンを選
択します。
XML フローの編集ダイアログが起動します。
30 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
3)
下記の内容に従って、XML フローの変数の設定を変更します。
※変更前
<SetProperty key="stub_config_file" value="${cpptest:testware_loc}/stubconfig.xml" />
<SetProperty key="stub_config_header_file" value="${cpptest:testware_loc}/cpptest_stubconfig.h" />
※変更後
<SetProperty key="sym_file" value="${cpptest:testware_loc}/libSym.xml" uiEditable="true" displayName="Path to file with external symbols list" />
<SetProperty key="stub_config_file" value="${cpptest:testware_loc}/stubconfig.xml" />
<SetProperty key="stub_config_header_file" value="${cpptest:testware_loc}/cpptest_stubconfig.h" />
31 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
4)
下記の内容に従って、XML フローのシンボルを収集するためのステップで、3 章で作成したシンボルリストを参照する設定に変更します。
※変更前
<LsiStep />
※変更後
<LsiStep libSymFile="${cpptestproperty:sym_file}" />
[OK]ボタンを選択し、ダイアログを閉じます。
32 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
5)
[テスト実行フロー]カテゴリのテーブルを環境に合わせて設定します。
※設定内容
設定項目
設定内容
Path to file with external symbols list
C++test 用シンボルリストファイル
※設定例:C2000 用コンパイラを用いている場合(Windows XP 上)
設定項目
設定内容
Path to file with external symbols list
C:\Program Files\Texas Instruments\ccsv4\tools\compiler\c2000\lib\libSym.xml
33 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
6)
下記の内容に従い、[実行]>[シンボル]タブの[次の場所で発見されたファイルのシンボルも使用]テキストボックスを変更します。
※変更前
${cpptest:cfg_dir}/safestubs;${project_loc}/stubs;${project_loc}/factory
※変更後
${project_loc}/stubs;${project_loc}/factory
34 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
7)
[名前]テキストボックスに「02_Stubs 情報収集」と入力します。
[Apply]ボタンを選択します。
35 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
4.3. 単 体 テスト実 行 用
1)
[ビルトイン]>[Embedded System]>[Texas Instruments]>[Run TI CCS 4.x Tests]ツリーメニューを右クリックし、[複製]メニューを選択します。
36 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
2)
[ユーザー定義] >[Collect Stub Information]ツリーメニューが選択されている状態で、[実行]>[全般]タブの[実行の詳細]>[テスト実行フロー]カテゴリの[詳細]ボタンを選
択します。
XML フローの編集ダイアログが起動します。
37 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
3)
下記の内容に従い、XML フローの変数を変更します。
※変更前
<SetProperty key="stub_config_file" value="${cpptest:testware_loc}/stubconfig.xml" />
<SetProperty key="stub_config_header_file" value="${cpptest:testware_loc}/cpptest_stubconfig.h" />
※変更後
<SetProperty key="sym_file" value="${cpptest:testware_loc}/libSym.xml" uiEditable="true" displayName="Path to file with external symbols list" />
<SetProperty key="sim_tim_out" value="50000" uiEditable="true" displayName="Simlator time out" />
<SetProperty key="stub_config_file" value="${cpptest:testware_loc}/stubconfig.xml" />
<SetProperty key="stub_config_header_file" value="${cpptest:testware_loc}/cpptest_stubconfig.h" />
38 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
4)
下記の内容に従って、XML フローのシンボルを収集するためのステップで、3 章で作成したシンボルリストを参照する設定に変更します。
※変更前
<LsiStep />
※変更後
<LsiStep libSymFile="${cpptestproperty:sym_file}" />
39 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
5)
XML フローを下記の内容に従って、実行環境に接続後にテスト実行モジュールを実行するステップで、タイムアウト時間を設定する変更をします。
<CCSConnectorFlowStep
commandLine="${ccs:connector_cmd_line} &quot;${cpptest:cfg_dir}/../bin/CCS4xConnector.js&quot; --no-profile --(省略)
workingDir="${cpptest:test_exec_work_dir}"
/>
<CCSConnectorFlowStep
commandLine="${ccs:connector_cmd_line} &quot;${cpptest:cfg_dir}/../bin/CCS4xConnector.js&quot; --timeout ${cpptestproperty: sim_tim_out} --no-profile --(省略)
workingDir="${cpptest:test_exec_work_dir}"
/>
[OK]ボタンを選択し、ダイアログを閉じます。
40 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
6)
[テスト実行フロー]カテゴリのテーブルを、環境に合わせて設定します。
※設定内容
設定項目
設定内容
Path to file with external symbols list
C++test 用シンボルリストファイル
Simlator time out
シミュレーター上での単体テストタイムアウト時間
Target configuration file
ターゲット接続設定ファイル(.ccxml ファイル)
Executable exit point (symbol)
実行モジュール終端シンボル
※設定例:C2000 用コンパイラを用いている場合(Windows XP 上)
設定項目
設定内容
Path to file with external symbols list
C:\Program Files\Texas Instruments\ccsv4\tools\compiler\c2000\lib\libSym.xml
Simlator time out
50000
Target configuration file
${ccs:active_target_config} (Active 状態の.ccxml ファイルを参照)
Executable exit point (symbol)
C$$EXIT
41 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
7)
[実行]>[全般]タブの[実行の詳細]>[インストゥルメントモード]カテゴリの[詳細]ボタンを選択します。
42 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
8)
[カバレッジ メトリクス]カテゴリの中から、単体テスト実行時に取得したいカバレッジ情報のチェックボックスを有効にし、[OK]ボタンを選択します。
43 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
9)
下記の内容に従い、[実行]>[シンボル]タブの[次の場所で発見されたファイルのシンボルも使用]テキストボックスを変更します。
※変更前
${cpptest:cfg_dir}/safestubs;${project_loc}/stubs;${project_loc}/factory
※変更後
${project_loc}/stubs;${project_loc}/factory
44 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
10) [実行]>[実行時]タブの[タスクの詳細を含める]、[成功したアサーションの詳細を含める]チェックボックスを有効にします。
(※C++test ver 9.2 以降設定可能)
45 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
11) [名前]テキストボックス、「03_単体テストの実行」と入力します。
[Apply]ボタンを選択後、[OK]ボタンを選択しダイアログを閉じます。
46 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
5. C++test ビ ル ド 設 定 の 変 更
C++test では単体テスト用の実行モジュールをビルドする時、C++test ランタイムライブラリをリンクするため、通常のビルドに比べより大きいメモリ領域を
使用します。そのため、メモリマッピングを変更する必要があります。
また、CCS で通常のビルドを行った場合、プロジェクト直下に保存されているリンカー コマンド ファイルを参照しメモリマッピングしていますが、C++test
は、リンカー コマンド ファイルの拡張子が小文字(.cmd)の場合は自動で参照しますが、大文字(.CMD)の場合は自動で参照しません。
これを利用し、テスト用のリンカー コマンド ファイルを作成後、単体テスト用の実行モジュールをビルドする時、テスト用のリンカー コマンド ファイルを
参照する設定を行います。
1)
プロジェクトに登録されているリンカー コマンド ファイルの拡張子を大文字に変更します。(.cmd→.CMD)
47 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
2)
リンカー コマンド ファイルをコピーし、ファイル名に「test_」接頭語を追加して貼り付けます。「test_」接頭語のリンカー コマンド ファイルをテス
ト用のリンカー コマンド ファイルとします。
48 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
3)
テスト用のリンカー コマンド ファイルを右クリックし、[Exclude File(s) from Build]メニューを選択します。
49 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
4)
テスト用のリンカー コマンド ファイルをエディタで開き、使用していないメモリ領域のメモリサイズを拡張します。
※変更例:F28335.cmd ファイルを変更する場合
変更前
変更後
ZONE7A
: origin = 0x0200000, length = 0x00FC00
ZONE7A
: origin = 0x0200000, length = 0x00FC00
FLASHH
: origin = 0x300000, length = 0x008000
FLASHH
: origin = 0x210000, length = 0x0E8000
FLASHG
: origin = 0x308000, length = 0x008000
FLASHG
: origin = 0x308000, length = 0x008000
RAML7
: origin = 0x00F000, length = 0x001000
RAML7
: origin = 0x00F000, length = 0x001000
ZONE7B
: origin = 0x20FC00, length = 0x000400
RAML8
: origin = 0x010000, length = 0x010000
ZONE7B
: origin = 0x20FC00, length = 0x000400
50 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
5)
単体テスト実行時にメモリサイズが大きくなるセクションを、手順 4)で拡張したメモリ領域に再配置します。
※変更例:F28335.cmd ファイルを変更する場合
変更前
変更後
.cinit
: > FLASHA
PAGE = 0
.cinit
: > FLASHH
PAGE = 0
.pinit
: > FLASHA,
PAGE = 0
.pinit
: > FLASHH,
PAGE = 0
.text
: > FLASHA
PAGE = 0
.text
: > FLASHH
PAGE = 0
.stack
: > RAMM1
PAGE = 1
.stack
: > RAMM1
PAGE = 1
.ebss
: > RAML4
PAGE = 1
.ebss
: > RAML8
PAGE = 1
.esysmem
: > RAMM1
PAGE = 1
. sysmem
: > RAML8
.esysmem
: > RAMM1
PAGE = 1
PAGE = 1
.econst
: > FLASHA
PAGE = 0
.econst
: > FLASHH
PAGE = 0
.switch
: > FLASHA
PAGE = 0
.switch
: > FLASHH
PAGE = 0
51 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
6)
プロジェクトを右クリックし、[Properties]メニューを選択します。
52 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
7)
CCS の通常のビルドオプションで、ヒープサイズを指定していない場合、[Parasoft]>[C++test]>[ビルド設定]を選択している状態で、[オプション]>[リン
カーオプション]テキストボックスに「-heap」オプションを追記します。(図中では、ヒープサイズ 0x4000 を指定)
53 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
8)
[オプション]>[リンカーオプション]テキストボックスに、テスト用のリンカー コマンド ファイルをフルパスで追記します。
[Apply]ボタン選択後、[OK]ボタンを選択します。
54 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
6. 単 体 テ ス ト 実 行 確 認
「nullPointerDerefBenchmark.c」ソースファイルに実装されている「noFalseViolation1」関数に対し、下記のテストを行い、動作を確認します。
※事前条件
引数:1
グローバル変数 i:10
※期待値
戻り値:1
55 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
1)
パースペクティブを[C++test]に変更します。
2)
「nullPointerDerefBenchmark.c」ソースファイルを選択している状態で、
の右側にある▼ボタンを選択後、[テストの実行]>[ユーザー定義]>[ 01_テストスイー
ト作成(テストケース無し)]を選択します。
56 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
プロジェクトに「tests」ディレクトリが追加され、その最下層にテストスイートが生成されます。
57 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
3)
4)
[テストケースエクスプローラー]ビューを表示します。
テストスイート(
アイコン)を右クリックし、[新規追加]>[ウィザードを使用したテストケース...]を選択します。
58 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
5)
[関数]メニューに、テスト対象の「noFalseViolation1」を選択後、[Next]ボタンを選択します。
59 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
6)
下記の図に従って、事前条件/期待値を設定後、[Finish]ボタンを選択します。
60 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
7)
[テストケースエクスプローラー]ビュー上のテストケース( アイコン)を選択している状態で、
の右側にある▼ボタンを選択後、[テストの実行]>[ユーザー
定義]>[03_単体テストの実行]を選択します。
61 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
8)
テスト対象のソースファイルとテストケースをビルドし、テスト用の実行モジュールを生成後、ターゲット
コンフィギュレーション ファイル(.ccxml)で指定したシミュレータ
ー上でモジュールを実行し、テスト結果を取得します。
緑の進捗バーが右側に到達したら、テスト完了です。
62 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
9)
テスト結果値と期待値がことなった場合、[品質タスク]ビューで結果を確認する事ができます。
63 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
10) ソースファイルをエディタで表示すると、テスト実行箇所を緑でハイライト、テスト未実行箇所を赤でハイライトする形式で、ソースコードのカバレッジを確認することができ
ます。
64 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
11) [カバレッジ]ビューで、ソースファイル、関数ごとのカバレッジをパーセンテージで表示されます。
65 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved
Code Composer Studio 向け
C++test 単体テスト環境構築手順書
12) [スタブ]ビューで、手順 7)のテスト用の実行モジュール生成の際に使用されたシンボルの一覧を確認することができます。
[ユーザー定義]>[02_Stubs 情報収集]テストコンフィギュレーションを実行した場合、単体テスト実行せずにシンボルの情報を収集することが可能です。
以上
66 / 66
Copyright © 2011 Techmatrix Corporation. All rights reserved