Я пытаюсь написать контрольный пример в c, используя библиотеку cmocka. Мой тестовый случай тестирует функцию, которая затем внутренне вызывает функцию из сторонней библиотеки (не может изменить библиотеку). Эта функция возвращает значение NULL, когда приложение не и я хочу смоделировать возвращаемое значение для этой функции библиотеки третьей стороны. Как я могу добиться этого?
Я пытался использовать функцию will_return в cmocka для получения желаемого возвращаемого значения, но она не работает
void third_party_func()
{
return mock();
}
void my_func_to_be_tested()
{
int ret;
ret = third_party_func();
return ret;
}
void test_do_mytest(void ** state)
{
(void) state;
int ret;
will_return(third_party_func,1);
ret = my_func_to_be_tested();
assert_int_equal(1,ret);
}
const struct CMUnitTest tests[] = {
cmocka_unit_test(test_do_mytest),
};
int main(void)
{
return cmocka_run_group_tests(tests, NULL, NULL);
}
Я получаю ошибку компиляции при множественном определении third_party_func (). Как обработать такой случай?
Я хочу получить желаемое значение в качестве возвращаемого значения для моей функции стороннего производителя.