Попытка подделать `abort` с помощью CMocka и`gcc -Wl,wrap...`

Я строю юнит-тесты с CMocka. Моя функция char some_func(some_enum e) карты действительные значения e к char, Оно использует assert Проверять e действителен, который по определению вызывает abort если не.

Дразнящий abort оказывается сложным. Следуя этому примеру и создавая функцию...

static volatile abort_calls = 0;

void 
__wrap_abort(void)
{
    fprintf(stderr, "Call to __wrap_abort()\n");
    abort_calls++;
}

static void
test_some_func(void **state)
{
    some_func( (some_enum)99);
    assert_int_equal(1, abort_calls);
}

.. что при компиляции с -Wl,--wrap=abort не жалуется Однако при выполнении он не вызывает __wrap_abort,

Что я пытаюсь сделать возможным?

0 ответов

Другие вопросы по тегам