1.1 --- a/test/test_list.c Fri Feb 25 14:35:18 2022 +0100 1.2 +++ b/test/test_list.c Sun Mar 06 13:57:36 2022 +0100 1.3 @@ -30,7 +30,7 @@ 1.4 #include "test_config.h" 1.5 #include "util_allocator.h" 1.6 1.7 -int cmp_int_impl( 1.8 +static int cmp_int_impl( 1.9 int const *l, 1.10 int const *r 1.11 ) { 1.12 @@ -557,7 +557,7 @@ 1.13 destroy_test_data(expected); 1.14 } 1.15 1.16 -static void test_linked_list_create(CxList *list) { 1.17 +static void verify_linked_list_create(CxList *list) { 1.18 CU_ASSERT_EQUAL(list->size, 0) 1.19 CU_ASSERT_EQUAL(list->capacity, (size_t) -1) 1.20 CU_ASSERT_PTR_EQUAL(list->allocator, cxTestingAllocator) 1.21 @@ -569,13 +569,13 @@ 1.22 void test_hl_linked_list_create(void) { 1.23 CxList *list = cxLinkedListCreate(cxTestingAllocator, cmp_int, sizeof(int)); 1.24 CU_ASSERT_EQUAL(list->itemsize, sizeof(int)) 1.25 - test_linked_list_create(list); 1.26 + verify_linked_list_create(list); 1.27 } 1.28 1.29 void test_hl_ptr_linked_list_create(void) { 1.30 CxList *list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.31 CU_ASSERT_EQUAL(list->itemsize, sizeof(void *)) 1.32 - test_linked_list_create(list); 1.33 + verify_linked_list_create(list); 1.34 } 1.35 1.36 void test_hl_linked_list_from_array(void) { 1.37 @@ -592,53 +592,45 @@ 1.38 cxListDestroy(expected); 1.39 } 1.40 1.41 +static void verify_hl_linked_list_add( 1.42 + CxList *list, 1.43 + int data[], 1.44 + size_t len, 1.45 + bool write_through 1.46 +) { 1.47 + for (size_t i = 0; i < len; i++) { 1.48 + CU_ASSERT_EQUAL(cxListAdd(list, &data[i]), 0) 1.49 + } 1.50 + CU_ASSERT_EQUAL(list->size, len) 1.51 + CU_ASSERT_TRUE(list->capacity >= list->size) 1.52 + for (size_t i = 0; i < len; i++) { 1.53 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, i), data[i]) 1.54 + } 1.55 + for (size_t i = 0; i < len; i++) { 1.56 + ++data[i]; 1.57 + } 1.58 + if (write_through) { 1.59 + for (size_t i = 0; i < len; i++) { 1.60 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, i), data[i]) 1.61 + } 1.62 + } else { 1.63 + for (size_t i = 0; i < len; i++) { 1.64 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, i), data[i] - 1) 1.65 + } 1.66 + } 1.67 + cxListDestroy(list); 1.68 +} 1.69 + 1.70 void test_hl_linked_list_add(void) { 1.71 - int data; 1.72 CxList *list = cxLinkedListCreate(cxTestingAllocator, cmp_int, sizeof(int)); 1.73 - 1.74 - data = 5; 1.75 - CU_ASSERT_EQUAL(cxListAdd(list, &data), 0) 1.76 - data = 47; 1.77 - CU_ASSERT_EQUAL(cxListAdd(list, &data), 0) 1.78 - data = 13; 1.79 - CU_ASSERT_EQUAL(cxListAdd(list, &data), 0) 1.80 - 1.81 - CU_ASSERT_EQUAL(list->size, 3) 1.82 - CU_ASSERT_TRUE(list->capacity >= list->size) 1.83 - 1.84 - int exp[] = {5, 47, 13}; 1.85 - CxList *expected = cxLinkedListFromArray(cxTestingAllocator, cmp_int, sizeof(int), 3, exp); 1.86 - CU_ASSERT_TRUE(0 == cxListCompare(list, expected)) 1.87 - 1.88 - cxListDestroy(list); 1.89 - cxListDestroy(expected); 1.90 + int data[] = {5, 47, 13, 9, 18, 1, 42}; 1.91 + verify_hl_linked_list_add(list, data, sizeof(data) / sizeof(int), false); 1.92 } 1.93 1.94 void test_hl_ptr_linked_list_add(void) { 1.95 CxList *list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.96 - 1.97 - int a = 5, b = 47, c = 13; 1.98 - 1.99 - CU_ASSERT_EQUAL(cxListAdd(list, &a), 0) 1.100 - CU_ASSERT_EQUAL(cxListAdd(list, &b), 0) 1.101 - CU_ASSERT_EQUAL(cxListAdd(list, &c), 0) 1.102 - 1.103 - CU_ASSERT_EQUAL(list->size, 3) 1.104 - CU_ASSERT_TRUE(list->capacity >= list->size) 1.105 - 1.106 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 5) 1.107 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 47) 1.108 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 13) 1.109 - 1.110 - a = 9; 1.111 - b = 10; 1.112 - c = 11; 1.113 - 1.114 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 9) 1.115 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 10) 1.116 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 11) 1.117 - 1.118 - cxListDestroy(list); 1.119 + int data[] = {5, 47, 13, 9, 18, 1, 42}; 1.120 + verify_hl_linked_list_add(list, data, sizeof(data) / sizeof(int), true); 1.121 } 1.122 1.123 void test_hl_linked_list_insert(void) {