1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cmocka.h>
void sets_errno(void);
void test_singe_run_sets_errno(void **state);
void test_multiple_runs_sets_errno(void **state);
void sets_errno(void)
{
mock_errno();
}
void test_singe_run_sets_errno(void **state)
{
(void) state; /* unused */
will_set_errno(sets_errno, -12);
sets_errno();
assert_int_equal(errno, -12);
}
void test_multiple_runs_sets_errno(void **state)
{
(void) state; /* unused */
size_t count = 3;
will_set_errno_count(sets_errno, -12, count);
for (size_t i = 0; i < count; i++) {
errno = 0;
sets_errno();
assert_int_equal(errno, -12);
}
}
int main(void)
{
const struct CMUnitTest tests[] = {
cmocka_unit_test(test_singe_run_sets_errno),
cmocka_unit_test(test_multiple_runs_sets_errno),
};
return cmocka_run_group_tests(tests, NULL, NULL);
}
|