2022/8/15
製品
カテゴリー
タグ
11604 Views
[Ethernet接続]カバレッジ専用ドライバ
Contents
課題
カバレッジ測定をするために、テストポイントを複数個所に自動挿入したが、オーバーヘッドの影響でターゲットが動作しなかった。テストポイントの挿入箇所を調整して、カバレッジ計測をしている。
解決方法
テストポイント通過で出力されるトレース情報をbit単位で管理し、データを圧縮します。ターゲットが保持したテストポイント通過情報を通常のDumpデータ形式で出力します。レポート収集停止後、取得したDumpレポートのデータ部分を連続したデータとして認識し、変換をしてレポートデータを生成します。
効果
一度通過したテストポイントのデータは出力しないため、出力にかかるオーバーヘッドを減らせます。また、ログを保存するPC側のハードディスクの容量も減らせます。大規模な環境でのカバレッジ計測において、ログデータの容量を抑えた運用ができます。
制限事項
-
DTヘッダを生成するC/C++で使用できます。
-
ロジックデータの取得はできません。
-
カバレッジを目的としたドライバのため、パフォーマンス測定や実行経路の確認などにはご使用できません。
-
C1カバレッジはC1カバレッジ(クイック)の場合は算出可能です。
- C1カバレッジ(クイック)は環境設定の「ソースコードの分岐解析及びルート推定をしない」にチェックをつけて解析します。
- C1カバレッジ(クイック)の算出方法はDT+Traceアプリのヘルプをご参照ください。
プロジェクト新規作成、プロジェクト設定
プロジェクト新規作成、またはプロジェクト設定で[カバレッジ専用ドライバを利用する]を"True"に変更します。カバレッジ専用ドライバは、ターゲットにメモリバッファを確保するため、利用する前にバッファサイズを決定する必要があります。DTヘッダ更新時にDTTestPointCoutDefine.hヘッダを生成します。ヘッダの作成場所は、「カバレッジ専用ドライバを利用する」がTureのときのみ表示される、「テストポイント数定義ヘッダの保存フォルダ」欄で指定します。保存場所のデフォルトは、プロジェクトファイルと同じフォルダになります。保存フォルダはカスタマイズしたドライバと同じ場所を指定してください。
プロジェクト新規作成
プロジェクト設定
テストポイント再定義
テストポイントの自動挿入など、ヘッダ構成に影響がある項目が変更される場合にテストポイントの再定義が行われます。
テストポイントの再定義の際に以下のメッセージが表示された場合は、以下のFAQをご参照ください。
テストポイントの再定義が終わったら以下のように変わり、_TP_BusOutが_TP_BusOutBufに変更となり、引数が1つになります。
ドライバのカスタマイズ
サンプルドライバのダウンロード
対応OS | 接続方式 | 言語 | イベントID出力方式 | ダウンロード |
---|---|---|---|---|
Windows | Ethernet | C/C++ | ダウンロード | |
Linux | Ethernet | C/C++ | ダウンロード |
サンプルドライバのカスタマイズ
dt_ether_cov.cを環境に合わせてカスタイマイズします。Ethernetのカバレッジ専用ドライバではTCPでログ取得を行います。
include文の変更
使用する定義を下記のように変更します。
#include "DTTestPointCountDefine.h"
再定義後、生成されるDTTestPointCountDefine.hの場所に合わせて指定してください。
_TP_BusEthernetInit関数の変更
"_TP_BusEthernetInit"関数内で、接続するPCのIPアドレスとポート番号を設定します。
ipaddr.sin_family = AF_INET;
ipaddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); /* IPアドレスを設定 */
ipaddr.sin_port = htons(5000); /* ポート番号を設定 */
_TP_SaveCoverageData関数の実装
溜まったテストポイントの通過情報を出力する関数として_TP_SaveCoverageData関数を実装し、その関数を呼び出す必要があります。
サンプルドライバ内にはご用意していますので、実行させるターゲットプログラムの任意の場所で_TP_SaveCoverageData関数をコールするようにターゲットのソースコードに追加します。
例として、ターゲット機器の操作ボタンを押した時などの外部トリガーを発生させやすい箇所や、定周期で実行される関数に実装します。
※登録しているソースファイルに実装した場合は、再度DTプロジェクトを開き直して再定義を行ってください。
DT+TraceのEthernet接続設定
DT+Traceアプリケーション上部メニューの[テスト実行]→[Ethernet接続設定…]をクリックし、以下の画面が表示されますので、必要な項目を設定します。
レポートデータの取得と解析
ビルドを行いターゲットを動作させます。DT+Traceでデータ取得を行い、_TP_SaveCoverageData関数が呼び出されたらレポート上にDumpデータが取得されます。
データ取得を停止すると取得したDumpレポートを変換し、テストレポートが表示されます。表示されるデータは、ソースコード上にあるテストポイントの上から順番で、通過したテストポイントだけとなります。実行された順序でテストレポートに表示されませんので、ご注意ください。
通過した情報からC0カバレッジを算出するため、DT+Traceアプリケーションの[レポート解析]→[レポートデータの解析]を行い、カバレッジレポートを表示させます。