ホーム > ユーザーサポート > FAQ カバレッジマスターwinAMS

FAQ / カバレッジマスターwinAMS

テストデータ設定に関する問題

514_01 : 関数ポインタを含む関数を単体テストする場合、どのようにして関数のアドレスを指定すればよいですか?

【質問】
関数ポインタを含む関数の場合、処理関数のアドレスをテストケースとして入力したいのですが、関数のアドレスはリンク時に変わってしまう可能性があります。この場合、どのようにして関数のアドレスを指定すればよいですか?

/* テスト対象関数 */
int exec_func(int (*func)(void))
  int eRet = -1;
  if ( NULL != func )
  {
    eRet = (func)();
  }
  return eRet;
}

/* 関数ポインタで呼び出される関数 */
int subfunc(void)
{
  return 1;
}

【回答】
この関数の場合、CSV雛形作成画面にて入力変数(INPUT)に引数func(ポインタ)を「アドレス設定」のオプションを使っ追加します。テストデータには、関数subfuncのアドレスを直値で指定する方法の他に、呼び出される関数のシンボル名「subfunc」を記述することも可能です。

 

関連サポート情報検索

【サポート情報サイト内Google検索】

検索キーワード: 関数ポインタ | アドレス設定

他のキーワード検索


参考情報・リンク