test/dlist_tests.c

Thu, 31 May 2012 12:51:22 +0200

author
Mike Becker <universe@uap-core.de>
date
Thu, 31 May 2012 12:51:22 +0200
changeset 33
9c219a62070d
parent 30
23bb65cbf7a4
child 35
fdabd1240b69
permissions
-rw-r--r--

major refactoring of test framework

olaf@9 1 /*
universe@27 2 * tests of dlist implementation
olaf@9 3 */
olaf@9 4
universe@27 5 #include "dlist_tests.h"
olaf@9 6
universe@33 7 UCX_TEST_IMPLEMENT(test_ucx_dlist_append) {
universe@27 8 UcxDlist *list = ucx_dlist_append(NULL, "Hello");
universe@33 9 UCX_TEST_BEGIN
universe@27 10
universe@27 11 UCX_TEST_ASSERT(strncmp(list->data, "Hello", 5) == 0, "failed")
universe@27 12
universe@27 13 list = ucx_dlist_append(list, " World!");
universe@27 14
universe@27 15 UCX_TEST_ASSERT(strncmp(list->next->data, " World!", 7) == 0, "failed")
universe@27 16 UCX_TEST_ASSERT(list->next->next == NULL, "failed")
universe@33 17 UCX_TEST_END
universe@27 18
universe@27 19 ucx_dlist_free(list);
universe@24 20 }
universe@24 21
universe@33 22 UCX_TEST_IMPLEMENT(test_ucx_dlist_prepend) {
universe@27 23 UcxDlist *list = ucx_dlist_prepend(NULL, " World!");
universe@33 24 UCX_TEST_BEGIN
universe@33 25
universe@27 26 list = ucx_dlist_prepend(list, "Hello");
universe@27 27
universe@27 28 UCX_TEST_ASSERT(strncmp(list->data, "Hello", 5) == 0, "failed")
universe@27 29 UCX_TEST_ASSERT(strncmp(list->next->data, " World!", 7) == 0, "failed")
universe@27 30 UCX_TEST_ASSERT(list->next->next == NULL, "failed")
universe@27 31
universe@33 32 UCX_TEST_END
universe@27 33 ucx_dlist_free(list);
universe@18 34 }
universe@18 35
universe@33 36 UCX_TEST_IMPLEMENT(test_ucx_dlist_equals) {
universe@27 37 UcxDlist *list = ucx_dlist_append(NULL, "Hello");
universe@27 38 list = ucx_dlist_append(list, " World!");
universe@27 39 UcxDlist *list2 = ucx_dlist_prepend(NULL, " World!");
universe@27 40 list2 = ucx_dlist_prepend(list2, "Hello");
universe@27 41 UcxDlist *list3 = ucx_dlist_prepend(NULL, " Welt!");
universe@27 42 list3 = ucx_dlist_prepend(list3, "Hallo");
universe@33 43 UCX_TEST_BEGIN
universe@27 44
universe@27 45 UCX_TEST_ASSERT(ucx_dlist_equals(list, list2, cmp_string, NULL), "failed")
universe@27 46 UCX_TEST_ASSERT(!ucx_dlist_equals(list, list3, cmp_string, NULL), "failed")
universe@27 47
universe@33 48 UCX_TEST_END
universe@27 49 ucx_dlist_free(list3);
universe@27 50 ucx_dlist_free(list2);
universe@27 51 ucx_dlist_free(list);
universe@24 52 }
universe@24 53
universe@33 54 UCX_TEST_IMPLEMENT(test_ucx_dlist_concat) {
universe@27 55 UcxDlist *list = ucx_dlist_append(NULL, "Hello");
universe@27 56 UcxDlist *list2 = ucx_dlist_prepend(NULL, " World!");
universe@33 57 UCX_TEST_BEGIN
universe@27 58
universe@27 59 list = ucx_dlist_concat(list, list2);
universe@27 60
universe@27 61 UCX_TEST_ASSERT(strncmp(list->data, "Hello", 5) == 0, "failed")
universe@27 62 UCX_TEST_ASSERT(strncmp(list->next->data, " World!", 7) == 0, "failed")
universe@27 63 UCX_TEST_ASSERT(list->next->next == NULL, "failed")
universe@27 64
universe@33 65 UCX_TEST_END
universe@27 66 ucx_dlist_free(list);
olaf@9 67 }
olaf@9 68
universe@33 69 UCX_TEST_IMPLEMENT(test_ucx_dlist_size) {
universe@27 70 UcxDlist *list = ucx_dlist_append(NULL, "This ");
universe@33 71 UCX_TEST_BEGIN
universe@27 72 list = ucx_dlist_append(list, "list ");
universe@27 73 list = ucx_dlist_append(list, "has ");
universe@27 74 list = ucx_dlist_append(list, "size ");
universe@27 75 list = ucx_dlist_append(list, "5!");
universe@27 76
universe@27 77 UCX_TEST_ASSERT(ucx_dlist_size(list) == 5, "failed");
universe@27 78
universe@33 79 UCX_TEST_END
universe@27 80 ucx_dlist_free(list);
olaf@9 81 }
olaf@11 82
universe@33 83 UCX_TEST_IMPLEMENT(test_ucx_dlist_first) {
universe@27 84 UcxDlist *list = ucx_dlist_append(NULL, "Find ");
universe@33 85 UCX_TEST_BEGIN
universe@27 86 list = ucx_dlist_append(list, "the ");
universe@27 87 list = ucx_dlist_append(list, "first!");
universe@27 88
universe@27 89 char* first = (char*) (ucx_dlist_first(list)->data);
universe@27 90
universe@27 91 UCX_TEST_ASSERT(strncmp(first, "Find ", 5) == 0, "failed");
universe@27 92
universe@33 93 UCX_TEST_END
universe@27 94 ucx_dlist_free(list);
universe@27 95 }
universe@27 96
universe@33 97 UCX_TEST_IMPLEMENT(test_ucx_dlist_last) {
universe@27 98 UcxDlist *list = ucx_dlist_append(NULL, "Find ");
universe@33 99 UCX_TEST_BEGIN
universe@27 100 list = ucx_dlist_append(list, "the ");
universe@27 101 list = ucx_dlist_append(list, "last!");
universe@27 102
universe@27 103 char* last = (char*) (ucx_dlist_last(list)->data);
universe@27 104
universe@27 105 UCX_TEST_ASSERT(strncmp(last, "last!", 5) == 0, "failed");
universe@27 106
universe@33 107 UCX_TEST_END
universe@27 108 ucx_dlist_free(list);
universe@27 109 }
universe@27 110
universe@33 111 UCX_TEST_IMPLEMENT(test_ucx_dlist_get) {
universe@27 112 UcxDlist *list = ucx_dlist_append(NULL, "Find ");
universe@33 113 UCX_TEST_BEGIN
universe@27 114 list = ucx_dlist_append(list, "the ");
universe@27 115 list = ucx_dlist_append(list, "mid!");
universe@27 116
universe@27 117 char* mid = (char*) (ucx_dlist_get(list, 1)->data);
universe@27 118
universe@27 119 UCX_TEST_ASSERT(strncmp(mid, "the ", 4) == 0, "failed");
universe@27 120
universe@33 121 UCX_TEST_END
universe@27 122 ucx_dlist_free(list);
universe@27 123 }
universe@27 124
universe@33 125 UCX_TEST_IMPLEMENT(test_ucx_dlist_remove) {
universe@27 126 UcxDlist *list = ucx_dlist_append(NULL, "Hello");
universe@33 127 UCX_TEST_BEGIN
universe@27 128 list = ucx_dlist_append(list, " fucking");
universe@27 129 list = ucx_dlist_append(list, " World!");
universe@27 130
universe@27 131 list = ucx_dlist_remove(list, ucx_dlist_get(list, 1));
universe@27 132
universe@27 133 UCX_TEST_ASSERT(strncmp(list->data, "Hello", 5) == 0, "failed")
universe@27 134 UCX_TEST_ASSERT(strncmp(list->next->data, " World!", 7) == 0, "failed")
universe@27 135 UCX_TEST_ASSERT(list->next->next == NULL, "failed")
universe@27 136
universe@33 137 UCX_TEST_END
universe@27 138 ucx_dlist_free(list);
universe@27 139 }
universe@27 140
universe@33 141 UCX_TEST_IMPLEMENT(test_ucx_dlist_clone) {
universe@27 142
universe@27 143 char *hello = (char*)malloc(6);
universe@27 144 char *world = (char*)malloc(8);
universe@27 145
universe@27 146 memcpy(hello, "Hello", 6);
universe@27 147 memcpy(world, " World!", 8);
universe@27 148
universe@27 149 UcxDlist *list = ucx_dlist_append(NULL, hello);
universe@27 150 list = ucx_dlist_append(list, world);
universe@27 151
universe@27 152 UcxDlist *copy = ucx_dlist_clone(list, copy_string, NULL);
universe@33 153 UCX_TEST_BEGIN
universe@27 154
universe@27 155 UCX_TEST_ASSERT(ucx_dlist_equals(list, copy, cmp_string, NULL), "failed")
universe@27 156 UCX_TEST_ASSERT(hello != copy->data, "first element is no copy")
universe@27 157 UCX_TEST_ASSERT(world != copy->next->data, "second element is no copy")
universe@27 158
universe@33 159 UCX_TEST_END
universe@27 160 free(copy->next->data);
universe@27 161 free(copy->data);
universe@27 162
universe@27 163 free(world);
universe@27 164 free(hello);
olaf@30 165 ucx_dlist_free(list);
olaf@30 166 ucx_dlist_free(copy);
universe@27 167 }

mercurial