Improve tests for linked_list_t.replace()

This commit is contained in:
Tobias Brunner 2013-03-27 13:27:19 +01:00
parent cca70ed331
commit afb6d9c301
1 changed files with 18 additions and 2 deletions

View File

@ -219,7 +219,7 @@ END_TEST
START_TEST(test_replace) START_TEST(test_replace)
{ {
enumerator_t *enumerator; enumerator_t *enumerator;
intptr_t x; intptr_t x, y;
int round; int round;
round = 1; round = 1;
@ -227,7 +227,8 @@ START_TEST(test_replace)
while (enumerator->enumerate(enumerator, &x)) while (enumerator->enumerate(enumerator, &x))
{ {
ck_assert_int_eq(round, x); ck_assert_int_eq(round, x);
list->replace(list, enumerator, (void*)(uintptr_t)(6 - round)); y = (intptr_t)list->replace(list, enumerator, (void*)(intptr_t)(6 - round));
ck_assert_int_eq(round, y);
round++; round++;
} }
list->reset_enumerator(list, enumerator); list->reset_enumerator(list, enumerator);
@ -241,6 +242,20 @@ START_TEST(test_replace)
} }
END_TEST END_TEST
START_TEST(test_replace_first)
{
enumerator_t *enumerator;
intptr_t x;
enumerator = list->create_enumerator(list);
x = (intptr_t)list->replace(list, enumerator, (void*)6);
ck_assert_int_eq(x, 0);
ck_assert(enumerator->enumerate(enumerator, &x));
ck_assert_int_eq(x, 1);
enumerator->destroy(enumerator);
}
END_TEST
START_TEST(test_remove_at) START_TEST(test_remove_at)
{ {
enumerator_t *enumerator; enumerator_t *enumerator;
@ -350,6 +365,7 @@ Suite *linked_list_enumerator_suite_create()
tc = tcase_create("modify"); tc = tcase_create("modify");
tcase_add_checked_fixture(tc, setup_list, teardown_list); tcase_add_checked_fixture(tc, setup_list, teardown_list);
tcase_add_test(tc, test_replace); tcase_add_test(tc, test_replace);
tcase_add_test(tc, test_replace_first);
tcase_add_test(tc, test_remove_at); tcase_add_test(tc, test_remove_at);
tcase_add_test(tc, test_remove_at_ends); tcase_add_test(tc, test_remove_at_ends);
suite_add_tcase(s, tc); suite_add_tcase(s, tc);