1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/test/dlist_tests.c Sat Feb 18 18:36:30 2012 +0100 1.3 @@ -0,0 +1,167 @@ 1.4 +/* 1.5 + * tests of dlist implementation 1.6 + */ 1.7 + 1.8 +#include "dlist_tests.h" 1.9 + 1.10 +UCX_TEST_BEGIN(test_ucx_dlist_append) { 1.11 + UcxDlist *list = ucx_dlist_append(NULL, "Hello"); 1.12 + 1.13 + UCX_TEST_ASSERT(strncmp(list->data, "Hello", 5) == 0, "failed") 1.14 + 1.15 + list = ucx_dlist_append(list, " World!"); 1.16 + 1.17 + UCX_TEST_ASSERT(strncmp(list->next->data, " World!", 7) == 0, "failed") 1.18 + UCX_TEST_ASSERT(list->next->next == NULL, "failed") 1.19 + 1.20 + ucx_dlist_free(list); 1.21 + 1.22 + UCX_TEST_END 1.23 +} 1.24 + 1.25 +UCX_TEST_BEGIN(test_ucx_dlist_prepend) { 1.26 + UcxDlist *list = ucx_dlist_prepend(NULL, " World!"); 1.27 + list = ucx_dlist_prepend(list, "Hello"); 1.28 + 1.29 + UCX_TEST_ASSERT(strncmp(list->data, "Hello", 5) == 0, "failed") 1.30 + UCX_TEST_ASSERT(strncmp(list->next->data, " World!", 7) == 0, "failed") 1.31 + UCX_TEST_ASSERT(list->next->next == NULL, "failed") 1.32 + 1.33 + ucx_dlist_free(list); 1.34 + 1.35 + UCX_TEST_END 1.36 +} 1.37 + 1.38 +UCX_TEST_BEGIN(test_ucx_dlist_equals) { 1.39 + UcxDlist *list = ucx_dlist_append(NULL, "Hello"); 1.40 + list = ucx_dlist_append(list, " World!"); 1.41 + UcxDlist *list2 = ucx_dlist_prepend(NULL, " World!"); 1.42 + list2 = ucx_dlist_prepend(list2, "Hello"); 1.43 + UcxDlist *list3 = ucx_dlist_prepend(NULL, " Welt!"); 1.44 + list3 = ucx_dlist_prepend(list3, "Hallo"); 1.45 + 1.46 + UCX_TEST_ASSERT(ucx_dlist_equals(list, list2, cmp_string, NULL), "failed") 1.47 + UCX_TEST_ASSERT(!ucx_dlist_equals(list, list3, cmp_string, NULL), "failed") 1.48 + 1.49 + ucx_dlist_free(list3); 1.50 + ucx_dlist_free(list2); 1.51 + ucx_dlist_free(list); 1.52 + 1.53 + UCX_TEST_END 1.54 +} 1.55 + 1.56 +UCX_TEST_BEGIN(test_ucx_dlist_concat) { 1.57 + UcxDlist *list = ucx_dlist_append(NULL, "Hello"); 1.58 + UcxDlist *list2 = ucx_dlist_prepend(NULL, " World!"); 1.59 + 1.60 + list = ucx_dlist_concat(list, list2); 1.61 + 1.62 + UCX_TEST_ASSERT(strncmp(list->data, "Hello", 5) == 0, "failed") 1.63 + UCX_TEST_ASSERT(strncmp(list->next->data, " World!", 7) == 0, "failed") 1.64 + UCX_TEST_ASSERT(list->next->next == NULL, "failed") 1.65 + 1.66 + ucx_dlist_free(list2); 1.67 + ucx_dlist_free(list); 1.68 + 1.69 + UCX_TEST_END 1.70 +} 1.71 + 1.72 +UCX_TEST_BEGIN(test_ucx_dlist_size) { 1.73 + UcxDlist *list = ucx_dlist_append(NULL, "This "); 1.74 + list = ucx_dlist_append(list, "list "); 1.75 + list = ucx_dlist_append(list, "has "); 1.76 + list = ucx_dlist_append(list, "size "); 1.77 + list = ucx_dlist_append(list, "5!"); 1.78 + 1.79 + UCX_TEST_ASSERT(ucx_dlist_size(list) == 5, "failed"); 1.80 + 1.81 + ucx_dlist_free(list); 1.82 + 1.83 + UCX_TEST_END 1.84 +} 1.85 + 1.86 +UCX_TEST_BEGIN(test_ucx_dlist_first) { 1.87 + UcxDlist *list = ucx_dlist_append(NULL, "Find "); 1.88 + list = ucx_dlist_append(list, "the "); 1.89 + list = ucx_dlist_append(list, "first!"); 1.90 + 1.91 + char* first = (char*) (ucx_dlist_first(list)->data); 1.92 + 1.93 + UCX_TEST_ASSERT(strncmp(first, "Find ", 5) == 0, "failed"); 1.94 + 1.95 + ucx_dlist_free(list); 1.96 + 1.97 + UCX_TEST_END 1.98 +} 1.99 + 1.100 +UCX_TEST_BEGIN(test_ucx_dlist_last) { 1.101 + UcxDlist *list = ucx_dlist_append(NULL, "Find "); 1.102 + list = ucx_dlist_append(list, "the "); 1.103 + list = ucx_dlist_append(list, "last!"); 1.104 + 1.105 + char* last = (char*) (ucx_dlist_last(list)->data); 1.106 + 1.107 + UCX_TEST_ASSERT(strncmp(last, "last!", 5) == 0, "failed"); 1.108 + 1.109 + ucx_dlist_free(list); 1.110 + 1.111 + UCX_TEST_END 1.112 +} 1.113 + 1.114 +UCX_TEST_BEGIN(test_ucx_dlist_get) { 1.115 + UcxDlist *list = ucx_dlist_append(NULL, "Find "); 1.116 + list = ucx_dlist_append(list, "the "); 1.117 + list = ucx_dlist_append(list, "mid!"); 1.118 + 1.119 + char* mid = (char*) (ucx_dlist_get(list, 1)->data); 1.120 + 1.121 + UCX_TEST_ASSERT(strncmp(mid, "the ", 4) == 0, "failed"); 1.122 + 1.123 + ucx_dlist_free(list); 1.124 + 1.125 + UCX_TEST_END 1.126 +} 1.127 + 1.128 +UCX_TEST_BEGIN(test_ucx_dlist_remove) { 1.129 + UcxDlist *list = ucx_dlist_append(NULL, "Hello"); 1.130 + list = ucx_dlist_append(list, " fucking"); 1.131 + list = ucx_dlist_append(list, " World!"); 1.132 + 1.133 + list = ucx_dlist_remove(list, ucx_dlist_get(list, 1)); 1.134 + 1.135 + UCX_TEST_ASSERT(strncmp(list->data, "Hello", 5) == 0, "failed") 1.136 + UCX_TEST_ASSERT(strncmp(list->next->data, " World!", 7) == 0, "failed") 1.137 + UCX_TEST_ASSERT(list->next->next == NULL, "failed") 1.138 + 1.139 + ucx_dlist_free(list); 1.140 + 1.141 + UCX_TEST_END 1.142 +} 1.143 + 1.144 +UCX_TEST_BEGIN(test_ucx_dlist_clone) { 1.145 + 1.146 + char *hello = (char*)malloc(6); 1.147 + char *world = (char*)malloc(8); 1.148 + 1.149 + memcpy(hello, "Hello", 6); 1.150 + memcpy(world, " World!", 8); 1.151 + 1.152 + UcxDlist *list = ucx_dlist_append(NULL, hello); 1.153 + list = ucx_dlist_append(list, world); 1.154 + 1.155 + UcxDlist *copy = ucx_dlist_clone(list, copy_string, NULL); 1.156 + 1.157 + UCX_TEST_ASSERT(ucx_dlist_equals(list, copy, cmp_string, NULL), "failed") 1.158 + UCX_TEST_ASSERT(hello != copy->data, "first element is no copy") 1.159 + UCX_TEST_ASSERT(world != copy->next->data, "second element is no copy") 1.160 + 1.161 + free(copy->next->data); 1.162 + free(copy->data); 1.163 + 1.164 + free(world); 1.165 + free(hello); 1.166 + free(list); 1.167 + free(copy); 1.168 + 1.169 + UCX_TEST_END 1.170 +}