unit-tests: Pass linked_list->invoke* varargs as uintptr_t
authorMartin Willi <martin@revosec.ch>
Thu, 17 Oct 2013 15:05:38 +0000 (17:05 +0200)
committerMartin Willi <martin@revosec.ch>
Wed, 6 Nov 2013 09:31:00 +0000 (10:31 +0100)
Passing integers of unspecified length may result in passing an integer shorter
than uintptr_t. When reading them back, we might get more data than passed,
resulting in a failure.

src/libstrongswan/tests/suites/test_linked_list.c

index 9e85c58..c0c997e 100644 (file)
@@ -246,10 +246,10 @@ struct invoke_t {
 
 static void invoke(intptr_t item, void *a, void *b, void *c, void *d, int *sum)
 {
-       ck_assert(a == (void*)1);
-       ck_assert(b == (void*)2);
-       ck_assert(c == (void*)3);
-       ck_assert(d == (void*)4);
+       ck_assert_int_eq((uintptr_t)a, 1);
+       ck_assert_int_eq((uintptr_t)b, 2);
+       ck_assert_int_eq((uintptr_t)c, 3);
+       ck_assert_int_eq((uintptr_t)d, 4);
        *sum += item;
 }
 
@@ -267,7 +267,9 @@ START_TEST(test_invoke_function)
        list->insert_last(list, (void*)3);
        list->insert_last(list, (void*)4);
        list->insert_last(list, (void*)5);
-       list->invoke_function(list, (linked_list_invoke_t)invoke, 1, 2, 3, 4, &sum);
+       list->invoke_function(list, (linked_list_invoke_t)invoke,
+                                                 (uintptr_t)1, (uintptr_t)2,
+                                                 (uintptr_t)3, (uintptr_t)4, &sum);
        ck_assert_int_eq(sum, 15);
 }
 END_TEST
@@ -287,7 +289,9 @@ START_TEST(test_invoke_offset)
        {
                list->insert_last(list, &items[i]);
        }
-       list->invoke_offset(list, offsetof(invoke_t, invoke), 1, 2, 3, 4, &sum);
+       list->invoke_offset(list, offsetof(invoke_t, invoke),
+                                               (uintptr_t)1, (uintptr_t)2,
+                                               (uintptr_t)3, (uintptr_t)4, &sum);
        ck_assert_int_eq(sum, 15);
 }
 END_TEST