よくある質問(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ファイルの「Input変数」の欄には、関数ポインタ変数(DBG_test_func)を登録してください。この関数ポインタ変数の入力データに、テスト対象のstatic 関数を指定することで、ダミー関数を経由して static 関数を呼び出すことができるようになります。