remove test code duplication for cxListAdd

Sun, 06 Mar 2022 13:57:36 +0100

author
Mike Becker <universe@uap-core.de>
date
Sun, 06 Mar 2022 13:57:36 +0100
changeset 507
2e8878770de0
parent 506
18782bbe3607
child 508
8aea65ae1eaf

remove test code duplication for cxListAdd

test/test_list.c file | annotate | diff | comparison | revisions
     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) {

mercurial