よくある質問(FAQ)

スタティック関数がカバレッジマスターの関数リストに表示されません。

テスト対象について

質問

CasePlayer2で詳細解析が完了したファイル内にstatic関数がある場合、CSV雛形作成の設定画面で、staticがついていないグローバル関数は問題なく見つかりますが、static関数が見つかりません。どのようにしたら、テスト対象関数にできるでしょうか?

回答

以下の2つの場合があります。

(1)
スタティック関数の表示形式は、[ソースファイル名]/[関数名]となります。(例:main.c/func1)
「モジュールテスト用CSV雛形作成」画面の「関数参照」ボタンで表示される関数選択画面にて、この形式で表示されていることをご確認ください。

(2)
コンパイラの最適化によって、テスト対象とする関数がインライン展開されることがあります。インライン化された関数は関数オブジェクトとならないため、関数名リストに表示されず、カバレッジマスターのテスト対象に指定することができません。回避方法としては、コンパイラの設定でインライン展開を無効化し、通常の関数としてオブジェクトが生成されるように再コンパイルを行う必要があります。

■明示的にインライン指定をしていなくてもコンパイラの最適化によって、インライン展開される一例

static int test(int input)
{
return ( 0x00FFU & (input >> 0x08U));
}