aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2013-03-27 13:27:19 +0100
committerTobias Brunner <tobias@strongswan.org>2013-06-11 11:03:11 +0200
commitafb6d9c3015feeb6814d534e45fbc0b5afa879bf (patch)
tree95f8b6d69c70ae0e5f1751f65b6ecf67f839694d
parentcca70ed331bb0cdb6be0d9c63f6a4238fa35639f (diff)
downloadstrongswan-afb6d9c3015feeb6814d534e45fbc0b5afa879bf.tar.bz2
strongswan-afb6d9c3015feeb6814d534e45fbc0b5afa879bf.tar.xz
Improve tests for linked_list_t.replace()
-rw-r--r--src/libstrongswan/tests/test_linked_list_enumerator.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/libstrongswan/tests/test_linked_list_enumerator.c b/src/libstrongswan/tests/test_linked_list_enumerator.c
index 1342aec8a..d44f7ab9f 100644
--- a/src/libstrongswan/tests/test_linked_list_enumerator.c
+++ b/src/libstrongswan/tests/test_linked_list_enumerator.c
@@ -219,7 +219,7 @@ END_TEST
START_TEST(test_replace)
{
enumerator_t *enumerator;
- intptr_t x;
+ intptr_t x, y;
int round;
round = 1;
@@ -227,7 +227,8 @@ START_TEST(test_replace)
while (enumerator->enumerate(enumerator, &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++;
}
list->reset_enumerator(list, enumerator);
@@ -241,6 +242,20 @@ START_TEST(test_replace)
}
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)
{
enumerator_t *enumerator;
@@ -350,6 +365,7 @@ Suite *linked_list_enumerator_suite_create()
tc = tcase_create("modify");
tcase_add_checked_fixture(tc, setup_list, teardown_list);
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_ends);
suite_add_tcase(s, tc);