よくある質問(FAQ)

ダミー関数からstatic関数を呼び出してテストを行うには、どのようにすれば良いですか?

テストCSVについて

質問

ダミー関数を用いたテストを行っています。しかし、テスト対象の関数がstatic関数である場合、別ファイルにあるダミー関数からテスト対象のstatic関数を呼び出すことができません。どのようにすればテスト可能でしょうか?

回答

static宣言された関数は、ダミー関数から直接呼び出すことはできませんので、この場合は関数ポインタを使用して、検証対象となる static 関数を間接的に呼び出してテストを行います。

(テスト対象関数の例)

static int test_func(int a)
{
  if (a < 0) {
    return -1;
  }
  
  return a;
}


(ダミー関数の例)

int (*DBG_test_func)(int);
int dbg_in, dbg_out;
void dummy_for_test_func(void)
{
  dbg_out = (*DBG_test_func)(dbg_in);
}

CSV には、関数ポインタ変数(DBG_test_func)をInput変数へ登録してください。この関数ポインタ変数のデータとして検証対象関数を設定すれば、static 関数をダミー関数から呼び出すことができます。