test/list_tests.c

Thu, 19 Dec 2019 19:58:41 +0100

author
Mike Becker <universe@uap-core.de>
date
Thu, 19 Dec 2019 19:58:41 +0100
changeset 374
be77fb2da242
parent 371
365b24f20f98
child 471
e9ef2637e101
permissions
-rw-r--r--

adds set operations for UcxMap

9
013c5c4b7e44 Added dlist tests
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 /*
103
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
3 *
259
2f5dea574a75 modules documentation
Mike Becker <universe@uap-core.de>
parents: 251
diff changeset
4 * Copyright 2017 Mike Becker, Olaf Wintermann All rights reserved.
103
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
5 *
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
6 * Redistribution and use in source and binary forms, with or without
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
7 * modification, are permitted provided that the following conditions are met:
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
8 *
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
10 * notice, this list of conditions and the following disclaimer.
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
11 *
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
14 * documentation and/or other materials provided with the distribution.
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
15 *
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
08018864fb91 added license and copyright notice to all files
Mike Becker <universe@uap-core.de>
parents: 94
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
9
013c5c4b7e44 Added dlist tests
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 */
013c5c4b7e44 Added dlist tests
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
29 #include "list_tests.h"
251
fae240d633fc changes source directory structure in preperation for autotools rollout
Mike Becker <universe@uap-core.de>
parents: 250
diff changeset
30 #include <ucx/utils.h>
9
013c5c4b7e44 Added dlist tests
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
31
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
32 UCX_TEST(test_ucx_list_append) {
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
33 UcxList *list, *first;
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
34 list = first = ucx_list_append(NULL, (void*)"Hello");
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
35 UCX_TEST_BEGIN
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
36
69
fb59270b1de3 made the code work with VC++ compiler (use make CONF=windows)
Mike Becker <universe@uap-core.de>
parents: 40
diff changeset
37 UCX_TEST_ASSERT(strncmp((const char*)list->data, "Hello", 5) == 0,
fb59270b1de3 made the code work with VC++ compiler (use make CONF=windows)
Mike Becker <universe@uap-core.de>
parents: 40
diff changeset
38 "failed");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
39
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
40 list = ucx_list_append(list, (void*)" World!");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
41
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
42 UCX_TEST_ASSERT(list == first, "does not return first element");
69
fb59270b1de3 made the code work with VC++ compiler (use make CONF=windows)
Mike Becker <universe@uap-core.de>
parents: 40
diff changeset
43 UCX_TEST_ASSERT(strncmp((const char*)list->next->data, " World!", 7) == 0,
fb59270b1de3 made the code work with VC++ compiler (use make CONF=windows)
Mike Becker <universe@uap-core.de>
parents: 40
diff changeset
44 "failed");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
45 UCX_TEST_ASSERT(list->next->prev == list, "failed");
40
583718dd4cf3 added semicolons to assert makros
Mike Becker <universe@uap-core.de>
parents: 36
diff changeset
46 UCX_TEST_ASSERT(list->next->next == NULL, "failed");
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
47 UCX_TEST_END
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
48
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
49 ucx_list_free(list);
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
50 }
9
013c5c4b7e44 Added dlist tests
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
51
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
52 UCX_TEST(test_ucx_list_prepend) {
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
53 UcxList *list, *last;
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
54 list = last = ucx_list_prepend(NULL, (void*)" World!");
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
55 UCX_TEST_BEGIN
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
56
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
57 list = ucx_list_prepend(list, (void*)"Hello");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
58
69
fb59270b1de3 made the code work with VC++ compiler (use make CONF=windows)
Mike Becker <universe@uap-core.de>
parents: 40
diff changeset
59 UCX_TEST_ASSERT(strncmp((const char*)list->data, "Hello", 5) == 0,
fb59270b1de3 made the code work with VC++ compiler (use make CONF=windows)
Mike Becker <universe@uap-core.de>
parents: 40
diff changeset
60 "failed");
fb59270b1de3 made the code work with VC++ compiler (use make CONF=windows)
Mike Becker <universe@uap-core.de>
parents: 40
diff changeset
61 UCX_TEST_ASSERT(strncmp((const char*)list->next->data, " World!", 7) == 0,
fb59270b1de3 made the code work with VC++ compiler (use make CONF=windows)
Mike Becker <universe@uap-core.de>
parents: 40
diff changeset
62 "failed");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
63 UCX_TEST_ASSERT(list == last->prev, "does not return first element");
40
583718dd4cf3 added semicolons to assert makros
Mike Becker <universe@uap-core.de>
parents: 36
diff changeset
64 UCX_TEST_ASSERT(list->next->next == NULL, "failed");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
65 UCX_TEST_ASSERT(list->prev == NULL, "failed");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
66
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
67 UCX_TEST_END
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
68 ucx_list_free(list);
24
e04822101291 changed make clean + added dlist_clone with copy test + added va_end statements to string.c
Mike Becker <universe@uap-core.de>
parents: 22
diff changeset
69 }
e04822101291 changed make clean + added dlist_clone with copy test + added va_end statements to string.c
Mike Becker <universe@uap-core.de>
parents: 22
diff changeset
70
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
71 UCX_TEST(test_ucx_list_equals) {
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
72 const char *hello = "Hello";
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
73 const char *world = " World!";
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
74 UcxList *list = ucx_list_append(NULL, (void*)hello);
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
75 list = ucx_list_append(list, (void*)world);
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
76 UcxList *list2 = ucx_list_prepend(NULL, (void*)world);
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
77 list2 = ucx_list_prepend(list2, (void*)hello);
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
78 UcxList *list3 = ucx_list_prepend(NULL, (void*)" Welt!");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
79 list3 = ucx_list_prepend(list3, (void*)"Hallo");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
80 UcxList *list4 = ucx_list_prepend(NULL, (void*)" World!");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
81 list4 = ucx_list_prepend(list4, (void*)"Hello");
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
82 UCX_TEST_BEGIN
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
83
308
d6f580621512 renames ucx_strcmp() to ucx_cmp_str()
Mike Becker <universe@uap-core.de>
parents: 259
diff changeset
84 UCX_TEST_ASSERT(ucx_list_equals(list, list4, ucx_cmp_str, NULL), "failed");
d6f580621512 renames ucx_strcmp() to ucx_cmp_str()
Mike Becker <universe@uap-core.de>
parents: 259
diff changeset
85 UCX_TEST_ASSERT(!ucx_list_equals(list, list3, ucx_cmp_str, NULL), "failed");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
86 UCX_TEST_ASSERT(ucx_list_equals(list, list2, NULL, NULL), "failed");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
87
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
88 UCX_TEST_END
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
89 ucx_list_free(list4);
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
90 ucx_list_free(list3);
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
91 ucx_list_free(list2);
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
92 ucx_list_free(list);
18
69636f81db31 added clone and equals to lists
Mike Becker <universe@uap-core.de>
parents: 11
diff changeset
93 }
69636f81db31 added clone and equals to lists
Mike Becker <universe@uap-core.de>
parents: 11
diff changeset
94
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
95 UCX_TEST(test_ucx_list_concat) {
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
96 UcxList *list = ucx_list_append(NULL, (void*)"Hello");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
97 list = ucx_list_append(list, (void*)" my ");
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
98 UcxList *list2 = ucx_list_prepend(NULL, (void*)" World!");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
99 list2 = ucx_list_prepend(list2, (void*)" sweet ");
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
100 UCX_TEST_BEGIN
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
101
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
102 list = ucx_list_concat(list, list2);
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
103 list = ucx_list_concat(list, NULL);
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
104 list = ucx_list_concat(NULL, list);
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
105
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
106 UCX_TEST_ASSERT(!strncmp((const char*)list->data, "Hello", 5),
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
107 "failed");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
108 UCX_TEST_ASSERT(!strncmp((const char*)list->next->data, " my ", 4),
69
fb59270b1de3 made the code work with VC++ compiler (use make CONF=windows)
Mike Becker <universe@uap-core.de>
parents: 40
diff changeset
109 "failed");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
110 UCX_TEST_ASSERT(!strncmp((const char*)list->next->next->data, " sweet ", 7),
69
fb59270b1de3 made the code work with VC++ compiler (use make CONF=windows)
Mike Becker <universe@uap-core.de>
parents: 40
diff changeset
111 "failed");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
112 UCX_TEST_ASSERT(!strncmp((const char*)ucx_list_last(list)->data,
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
113 " World!", 7), "failed");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
114
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
115 UCX_TEST_ASSERT(list->prev == NULL, "failed");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
116
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
117 UCX_TEST_END
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
118 // don't free list2, as it is freed by freeing list;
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
119 ucx_list_free(list);
24
e04822101291 changed make clean + added dlist_clone with copy test + added va_end statements to string.c
Mike Becker <universe@uap-core.de>
parents: 22
diff changeset
120 }
e04822101291 changed make clean + added dlist_clone with copy test + added va_end statements to string.c
Mike Becker <universe@uap-core.de>
parents: 22
diff changeset
121
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
122 UCX_TEST(test_ucx_list_size) {
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
123 UcxList *list = ucx_list_append(NULL, (void*)"This ");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
124 list = ucx_list_append(list, (void*)"list ");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
125 list = ucx_list_append(list, (void*)"has ");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
126 list = ucx_list_append(list, (void*)"size ");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
127 list = ucx_list_append(list, (void*)"5!");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
128
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
129 UCX_TEST_BEGIN
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
130
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
131 UCX_TEST_ASSERT(ucx_list_size(list) == 5, "failed");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
132 list = ucx_list_remove(list, ucx_list_get(list, 2));
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
133 UCX_TEST_ASSERT(ucx_list_size(list) == 4, "failed after removal");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
134
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
135 UCX_TEST_END
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
136 ucx_list_free(list);
9
013c5c4b7e44 Added dlist tests
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
137 }
013c5c4b7e44 Added dlist tests
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
138
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
139 UCX_TEST(test_ucx_list_first) {
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
140 UcxList *list = ucx_list_append(NULL, (void*)"Find ");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
141 list = ucx_list_append(list, (void*)"the ");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
142 list = ucx_list_append(list, (void*)"first!");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
143
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
144 UCX_TEST_BEGIN
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
145
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
146 const char* first = (const char*) (ucx_list_first(list)->data);
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
147
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
148 UCX_TEST_ASSERT(strncmp(first, "Find ", 5) == 0, "failed");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
149 UCX_TEST_ASSERT(ucx_list_first(list->next->next) == list, "failed");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
150 UCX_TEST_ASSERT(!ucx_list_first(NULL),
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
151 "does not return NULL on an empty list");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
152
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
153 UCX_TEST_END
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
154 ucx_list_free(list);
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
155 }
9
013c5c4b7e44 Added dlist tests
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
156
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
157 UCX_TEST(test_ucx_list_last) {
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
158 UcxList *list = ucx_list_append(NULL, (void*)"Find ");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
159 list = ucx_list_append(list, (void*)"the ");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
160 list = ucx_list_append(list, (void*)"last!");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
161
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
162 UCX_TEST_BEGIN
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
163
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
164 const char* last = (const char*) (ucx_list_last(list->next->next)->data);
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
165
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
166 UCX_TEST_ASSERT(strncmp(last, "last!", 5) == 0, "failed");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
167 UCX_TEST_ASSERT(ucx_list_last(list) == list->next->next, "failed");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
168 UCX_TEST_ASSERT(!ucx_list_last(NULL),
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
169 "does not return NULL on an empty list");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
170
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
171 UCX_TEST_END
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
172 ucx_list_free(list);
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
173 }
24
e04822101291 changed make clean + added dlist_clone with copy test + added va_end statements to string.c
Mike Becker <universe@uap-core.de>
parents: 22
diff changeset
174
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
175 UCX_TEST(test_ucx_list_get) {
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
176 UcxList *list = ucx_list_append(NULL, (void*)"Find ");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
177 list = ucx_list_append(list, (void*)"the ");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
178 list = ucx_list_append(list, (void*)"mid!");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
179
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
180 UCX_TEST_BEGIN
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
181
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
182 const char* first = (const char*) (ucx_list_get(list, 0)->data);
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
183 const char* mid = (const char*) (ucx_list_get(list, 1)->data);
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
184 const char* last = (const char*) (ucx_list_get(list, 2)->data);
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
185
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
186 UCX_TEST_ASSERT(strncmp(first, "Find ", 5) == 0, "failed");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
187 UCX_TEST_ASSERT(strncmp(mid, "the ", 4) == 0, "failed");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
188 UCX_TEST_ASSERT(strncmp(last, "mid!", 4) == 0, "failed");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
189 UCX_TEST_ASSERT(!ucx_list_get(list, -1), "out of bounds (neg)");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
190 UCX_TEST_ASSERT(!ucx_list_get(list, 3), "out of bounds");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
191 UCX_TEST_ASSERT(!ucx_list_get(NULL, 0), "empty list");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
192
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
193 UCX_TEST_END
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
194 ucx_list_free(list);
9
013c5c4b7e44 Added dlist tests
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
195 }
11
4f6082f99bd7 Added list tests
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 9
diff changeset
196
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
197 UCX_TEST(test_ucx_list_indexof) {
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
198 UcxList *list = ucx_list_append(NULL, (void*)"Find ");
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
199 list = ucx_list_append(list, (void*)"the ");
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
200 list = ucx_list_append(list, (void*)"mid!");
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
201
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
202 UCX_TEST_BEGIN
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
203
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
204 UCX_TEST_ASSERT(ucx_list_indexof(list, list) == 0, "failed");
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
205 UCX_TEST_ASSERT(ucx_list_indexof(list, list->next) == 1, "failed");
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
206 UCX_TEST_ASSERT(ucx_list_indexof(list, ucx_list_get(list, 2)) == 2,
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
207 "failed");
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
208
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
209 UcxList *otherlist = ucx_list_append(NULL, (void*) "the ");
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
210 UCX_TEST_ASSERT(ucx_list_indexof(list, otherlist) == -1, "failed");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
211 UCX_TEST_ASSERT(ucx_list_indexof(NULL, otherlist) == -1, "empty list");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
212
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
213 ucx_list_free(otherlist);
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
214
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
215 UCX_TEST_END
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
216 ucx_list_free(list);
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
217 }
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
218
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
219 UCX_TEST(test_ucx_list_find) {
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
220 const char* teststr = "string!";
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
221 UcxList *l = ucx_list_append(NULL, (void*)"find ");
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
222 l = ucx_list_append(l, (void*)"some ");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
223 l = ucx_list_append(l, (void*)teststr);
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
224
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
225 UCX_TEST_BEGIN
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
226
308
d6f580621512 renames ucx_strcmp() to ucx_cmp_str()
Mike Becker <universe@uap-core.de>
parents: 259
diff changeset
227 UCX_TEST_ASSERT(ucx_list_find(l,(void*)"some ",ucx_cmp_str,NULL) == 1,
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
228 "doesn't find string");
308
d6f580621512 renames ucx_strcmp() to ucx_cmp_str()
Mike Becker <universe@uap-core.de>
parents: 259
diff changeset
229 UCX_TEST_ASSERT(ucx_list_find(l,(void*)"a",ucx_cmp_str,NULL) == -1,
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
230 "finds non-existing string");
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
231
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
232 UCX_TEST_ASSERT(ucx_list_find(l,(void*)teststr,NULL,NULL) == 2,
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
233 "doesn't find integer without cmp_func");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
234
308
d6f580621512 renames ucx_strcmp() to ucx_cmp_str()
Mike Becker <universe@uap-core.de>
parents: 259
diff changeset
235 UCX_TEST_ASSERT(ucx_list_find(NULL, (void*)"some ",ucx_cmp_str,NULL) == -1,
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
236 "empty list");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
237
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
238 UCX_TEST_END
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
239 ucx_list_free(l);
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
240 }
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
241
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
242 UCX_TEST(test_ucx_list_contains) {
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
243 UcxList *l = ucx_list_append(NULL, (void*)"Contains ");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
244 l = ucx_list_append(l, (void*)"a ");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
245 l = ucx_list_append(l, (void*)"string!");
90
ef3163857e88 added tests for ucx_(d)list_contains
Mike Becker <universe@uap-core.de>
parents: 89
diff changeset
246
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
247 UCX_TEST_BEGIN
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
248
308
d6f580621512 renames ucx_strcmp() to ucx_cmp_str()
Mike Becker <universe@uap-core.de>
parents: 259
diff changeset
249 UCX_TEST_ASSERT(ucx_list_contains(l,(void*)"a ",ucx_cmp_str,NULL),
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
250 "false negative");
308
d6f580621512 renames ucx_strcmp() to ucx_cmp_str()
Mike Becker <universe@uap-core.de>
parents: 259
diff changeset
251 UCX_TEST_ASSERT(!ucx_list_contains(l,(void*)"a",ucx_cmp_str,NULL),
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
252 "false positive");
90
ef3163857e88 added tests for ucx_(d)list_contains
Mike Becker <universe@uap-core.de>
parents: 89
diff changeset
253
ef3163857e88 added tests for ucx_(d)list_contains
Mike Becker <universe@uap-core.de>
parents: 89
diff changeset
254 UCX_TEST_END
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
255 ucx_list_free(l);
90
ef3163857e88 added tests for ucx_(d)list_contains
Mike Becker <universe@uap-core.de>
parents: 89
diff changeset
256 }
ef3163857e88 added tests for ucx_(d)list_contains
Mike Becker <universe@uap-core.de>
parents: 89
diff changeset
257
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
258 UCX_TEST(test_ucx_list_remove) {
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
259 UcxList *list = ucx_list_append(NULL, (void*)"Hello");
162
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
260 list = ucx_list_append(list, (void*)"fucking");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
261 list = ucx_list_append(list, (void*)"World!");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
262
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
263 UcxList *list2 = ucx_list_append(NULL, (void*)"A");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
264 list2 = ucx_list_append(list2, (void*)"B");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
265 list2 = ucx_list_append(list2, (void*)"C");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
266 list2 = ucx_list_append(list2, (void*)"D");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
267 list2 = ucx_list_append(list2, (void*)"E");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
268 list2 = ucx_list_append(list2, (void*)"F");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
269 list2 = ucx_list_append(list2, (void*)"G");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
270
123
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
271 UCX_TEST_BEGIN
7fb0f74517c5 changed signature of sstrncat + some documentation for UcxList + new features for UcxList
Mike Becker <universe@uap-core.de>
parents: 122
diff changeset
272
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
273 list = ucx_list_remove(list, ucx_list_get(list, 1));
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
274
69
fb59270b1de3 made the code work with VC++ compiler (use make CONF=windows)
Mike Becker <universe@uap-core.de>
parents: 40
diff changeset
275 UCX_TEST_ASSERT(strncmp((const char*)list->data, "Hello", 5) == 0,
fb59270b1de3 made the code work with VC++ compiler (use make CONF=windows)
Mike Becker <universe@uap-core.de>
parents: 40
diff changeset
276 "failed");
162
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
277 UCX_TEST_ASSERT(strncmp((const char*)list->next->data, "World!", 7) == 0,
69
fb59270b1de3 made the code work with VC++ compiler (use make CONF=windows)
Mike Becker <universe@uap-core.de>
parents: 40
diff changeset
278 "failed");
40
583718dd4cf3 added semicolons to assert makros
Mike Becker <universe@uap-core.de>
parents: 36
diff changeset
279 UCX_TEST_ASSERT(list->next->next == NULL, "failed");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
280
162
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
281 // remove first element: B, C, D, E, F, G
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
282 list2 = ucx_list_remove(list2, list2);
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
283
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
284 UCX_TEST_ASSERT(ucx_list_size(list2) == 6, "list2 has wrong size");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
285 UCX_TEST_ASSERT(strncmp((const char*)list2->data, "B", 1) == 0,
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
286 "wrong first element");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
287 UCX_TEST_ASSERT(strncmp((const char*)ucx_list_get(list2, 5)->data, "G", 1)
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
288 == 0, "wrong last element");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
289
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
290 // remove second element: B, D, E, F, G
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
291 list2 = ucx_list_remove(list2, list2->next);
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
292
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
293 UCX_TEST_ASSERT(ucx_list_size(list2) == 5, "list2 has wrong size");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
294 UCX_TEST_ASSERT(strncmp((const char*)list2->next->data, "D", 1) == 0,
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
295 "wrong second element");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
296
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
297 UcxList *last = ucx_list_get(list2, 4);
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
298 list2 = ucx_list_remove(list2, last->prev);
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
299
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
300 UCX_TEST_ASSERT(ucx_list_size(list2) == 4, "list2 has wrong size");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
301 UCX_TEST_ASSERT(strncmp((const char*)last->prev->data, "E", 1) == 0,
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
302 "wrong element");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
303
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
304 // remove last element: B, D, E, F
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
305 list2 = ucx_list_remove(list2, last);
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
306 UCX_TEST_ASSERT(ucx_list_size(list2) == 3, "list2 has wrong size");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
307 UCX_TEST_ASSERT(strncmp((const char*)ucx_list_get(list2, 2)->data, "E", 1)
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
308 == 0, "wrong last element");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
309
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
310 UCX_TEST_ASSERT(strncmp((const char*)list2->data, "B", 1) == 0,
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
311 "wrong element");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
312
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
313 list2 = ucx_list_remove(list2, list2);
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
314 UCX_TEST_ASSERT(ucx_list_size(list2) == 2, "list2 has wrong size");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
315 list2 = ucx_list_remove(list2, list2);
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
316 UCX_TEST_ASSERT(ucx_list_size(list2) == 1, "list2 has wrong size");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
317 list2 = ucx_list_remove(list2, list2);
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
318 UCX_TEST_ASSERT(list2 == NULL, "list2 is not null");
52dfe5f4ecd7 added more tests for ucx_list_remove
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 134
diff changeset
319
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
320 UCX_TEST_END
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
321 ucx_list_free(list);
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
322 }
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
323
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
324 UCX_TEST(test_ucx_list_clone) {
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
325
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
326 char *hello = (char*)malloc(6);
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
327 char *world = (char*)malloc(8);
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
328
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
329 memcpy(hello, "Hello", 6);
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
330 memcpy(world, " World!", 8);
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
331
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
332 UcxList *list = ucx_list_append(NULL, hello);
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
333 list = ucx_list_append(list, world);
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
334
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
335 UcxList *copy = ucx_list_clone(list, ucx_strcpy, NULL);
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
336 UCX_TEST_BEGIN
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
337
308
d6f580621512 renames ucx_strcmp() to ucx_cmp_str()
Mike Becker <universe@uap-core.de>
parents: 259
diff changeset
338 UCX_TEST_ASSERT(ucx_list_equals(list, copy, ucx_cmp_str, NULL), "failed");
40
583718dd4cf3 added semicolons to assert makros
Mike Becker <universe@uap-core.de>
parents: 36
diff changeset
339 UCX_TEST_ASSERT(hello != copy->data, "first element is no copy");
583718dd4cf3 added semicolons to assert makros
Mike Becker <universe@uap-core.de>
parents: 36
diff changeset
340 UCX_TEST_ASSERT(world != copy->next->data, "second element is no copy");
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
341
33
9c219a62070d major refactoring of test framework
Mike Becker <universe@uap-core.de>
parents: 30
diff changeset
342 UCX_TEST_END
211
07a284486fa1 added ucx_list_free_contents()
Mike Becker <universe@uap-core.de>
parents: 192
diff changeset
343
212
c766c423dee6 fixed name of ucx_list_free_content()
Mike Becker <universe@uap-core.de>
parents: 211
diff changeset
344 ucx_list_free_content(copy, free);
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
345
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
346 free(world);
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
347 free(hello);
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
348 ucx_list_free(list);
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
349 ucx_list_free(copy);
27
22644e2572bc removed old foreach + refactored list tests
Mike Becker <universe@uap-core.de>
parents: 24
diff changeset
350 }
35
fdabd1240b69 added mkdir for build directory to makefile + added qsort for list and dlist
Mike Becker <universe@uap-core.de>
parents: 33
diff changeset
351
134
4d320dc3a7af documented test.h and removed duplicated implement/declare macros for UCX_TEST
Mike Becker <universe@uap-core.de>
parents: 123
diff changeset
352 UCX_TEST(test_ucx_list_sort) {
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
353 UcxList *list = ucx_list_append(NULL, (void*)"this");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
354 list = ucx_list_append(list, (void*)"is");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
355 list = ucx_list_append(list, (void*)"a");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
356 list = ucx_list_append(list, (void*)"test");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
357 list = ucx_list_append(list, (void*)"for");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
358 list = ucx_list_append(list, (void*)"partial");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
359 list = ucx_list_append(list, (void*)"correctness");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
360 list = ucx_list_append(list, (void*)"of");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
361 list = ucx_list_append(list, (void*)"the");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
362 list = ucx_list_append(list, (void*)"sort");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
363 list = ucx_list_append(list, (void*)"function");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
364 list = ucx_list_append(list, (void*)"that");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
365 list = ucx_list_append(list, (void*)"shall");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
366 list = ucx_list_append(list, (void*)"pass");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
367 list = ucx_list_append(list, (void*)"this");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
368 list = ucx_list_append(list, (void*)"test");
35
fdabd1240b69 added mkdir for build directory to makefile + added qsort for list and dlist
Mike Becker <universe@uap-core.de>
parents: 33
diff changeset
369
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
370 UcxList *expected = ucx_list_append(NULL, (void*)"a");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
371 expected = ucx_list_append(expected, (void*)"correctness");
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
372 expected = ucx_list_append(expected, (void*)"for");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
373 expected = ucx_list_append(expected, (void*)"function");
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
374 expected = ucx_list_append(expected, (void*)"is");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
375 expected = ucx_list_append(expected, (void*)"of");
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
376 expected = ucx_list_append(expected, (void*)"partial");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
377 expected = ucx_list_append(expected, (void*)"pass");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
378 expected = ucx_list_append(expected, (void*)"shall");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
379 expected = ucx_list_append(expected, (void*)"sort");
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
380 expected = ucx_list_append(expected, (void*)"test");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
381 expected = ucx_list_append(expected, (void*)"test");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
382 expected = ucx_list_append(expected, (void*)"that");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
383 expected = ucx_list_append(expected, (void*)"the");
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
384 expected = ucx_list_append(expected, (void*)"this");
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
385 expected = ucx_list_append(expected, (void*)"this");
35
fdabd1240b69 added mkdir for build directory to makefile + added qsort for list and dlist
Mike Becker <universe@uap-core.de>
parents: 33
diff changeset
386
308
d6f580621512 renames ucx_strcmp() to ucx_cmp_str()
Mike Becker <universe@uap-core.de>
parents: 259
diff changeset
387 list = ucx_list_sort(list, ucx_cmp_str, NULL);
35
fdabd1240b69 added mkdir for build directory to makefile + added qsort for list and dlist
Mike Becker <universe@uap-core.de>
parents: 33
diff changeset
388
fdabd1240b69 added mkdir for build directory to makefile + added qsort for list and dlist
Mike Becker <universe@uap-core.de>
parents: 33
diff changeset
389 UCX_TEST_BEGIN
fdabd1240b69 added mkdir for build directory to makefile + added qsort for list and dlist
Mike Becker <universe@uap-core.de>
parents: 33
diff changeset
390 UCX_TEST_ASSERT(
308
d6f580621512 renames ucx_strcmp() to ucx_cmp_str()
Mike Becker <universe@uap-core.de>
parents: 259
diff changeset
391 ucx_list_equals(list, expected, ucx_cmp_str, NULL), "failed");
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
392 UCX_TEST_ASSERT(ucx_list_size(list) == 16, "list has now a wrong size");
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
393 UcxList *l = list;
35
fdabd1240b69 added mkdir for build directory to makefile + added qsort for list and dlist
Mike Becker <universe@uap-core.de>
parents: 33
diff changeset
394 UCX_TEST_ASSERT(l->prev == NULL, "prev field of first entry is not null");
fdabd1240b69 added mkdir for build directory to makefile + added qsort for list and dlist
Mike Becker <universe@uap-core.de>
parents: 33
diff changeset
395 while (l->next != NULL) {
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
396 UCX_TEST_ASSERT(l->next->prev == l, "next or prev pointer corrupted");
35
fdabd1240b69 added mkdir for build directory to makefile + added qsort for list and dlist
Mike Becker <universe@uap-core.de>
parents: 33
diff changeset
397 l = l->next;
fdabd1240b69 added mkdir for build directory to makefile + added qsort for list and dlist
Mike Becker <universe@uap-core.de>
parents: 33
diff changeset
398 }
308
d6f580621512 renames ucx_strcmp() to ucx_cmp_str()
Mike Becker <universe@uap-core.de>
parents: 259
diff changeset
399 UCX_TEST_ASSERT(!ucx_list_sort(NULL, ucx_cmp_str, NULL),
172
7084e8e8433c refactoring of list tests + some bug fixes
Mike Becker <universe@uap-core.de>
parents: 162
diff changeset
400 "failed to sort empty list");
35
fdabd1240b69 added mkdir for build directory to makefile + added qsort for list and dlist
Mike Becker <universe@uap-core.de>
parents: 33
diff changeset
401 UCX_TEST_END
fdabd1240b69 added mkdir for build directory to makefile + added qsort for list and dlist
Mike Becker <universe@uap-core.de>
parents: 33
diff changeset
402
122
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
403 ucx_list_free(expected);
540d99722f1f removal of single linked list implemenation - step 2: renamed UcxDlist to UcxList (new single implementation)
Mike Becker <universe@uap-core.de>
parents: 103
diff changeset
404 ucx_list_free(list);
35
fdabd1240b69 added mkdir for build directory to makefile + added qsort for list and dlist
Mike Becker <universe@uap-core.de>
parents: 33
diff changeset
405 }
371
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
406
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
407 UCX_TEST(test_ucx_list_union) {
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
408 UcxList *left = ucx_list_append(NULL, (void*)"this");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
409 left = ucx_list_append(left, (void*)"is");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
410 left = ucx_list_append(left, (void*)"a");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
411 left = ucx_list_append(left, (void*)"test");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
412
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
413 UcxList *right = ucx_list_append(NULL, (void*)"to");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
414 right = ucx_list_append(right, (void*)"test");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
415 right = ucx_list_append(right, (void*)"set");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
416 right = ucx_list_append(right, (void*)"operations");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
417
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
418 UcxList *expected = ucx_list_append(NULL, (void*)"this");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
419 expected = ucx_list_append(expected, (void*)"is");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
420 expected = ucx_list_append(expected, (void*)"a");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
421 expected = ucx_list_append(expected, (void*)"test");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
422 expected = ucx_list_append(expected, (void*)"to");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
423 expected = ucx_list_append(expected, (void*)"set");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
424 expected = ucx_list_append(expected, (void*)"operations");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
425
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
426 UcxList* result = ucx_list_union(left, right, ucx_cmp_str,
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
427 NULL, NULL, NULL);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
428
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
429 UCX_TEST_BEGIN
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
430 UCX_TEST_ASSERT(ucx_list_equals(result, expected,
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
431 ucx_cmp_str, NULL), "failed");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
432 UCX_TEST_END
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
433
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
434 ucx_list_free(result);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
435 ucx_list_free(expected);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
436 ucx_list_free(right);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
437 ucx_list_free(left);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
438 }
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
439
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
440 UCX_TEST(test_ucx_list_intersection) {
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
441 UcxList *left = ucx_list_append(NULL, (void*)"this");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
442 left = ucx_list_append(left, (void*)"is");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
443 left = ucx_list_append(left, (void*)"a");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
444 left = ucx_list_append(left, (void*)"test");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
445
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
446 UcxList *right = ucx_list_append(NULL, (void*)"to");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
447 right = ucx_list_append(right, (void*)"test");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
448 right = ucx_list_append(right, (void*)"a");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
449 right = ucx_list_append(right, (void*)"set");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
450 right = ucx_list_append(right, (void*)"operation");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
451
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
452 UcxList *expected = ucx_list_append(NULL, (void*)"a");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
453 expected = ucx_list_append(expected, (void*)"test");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
454
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
455 UcxList* result = ucx_list_intersection(left, right, ucx_cmp_str,
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
456 NULL, NULL, NULL);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
457
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
458 UCX_TEST_BEGIN
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
459 UCX_TEST_ASSERT(ucx_list_equals(result, expected,
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
460 ucx_cmp_str, NULL), "failed");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
461 UCX_TEST_END
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
462
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
463 ucx_list_free(result);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
464 ucx_list_free(expected);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
465 ucx_list_free(right);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
466 ucx_list_free(left);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
467 }
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
468
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
469 UCX_TEST(test_ucx_list_difference) {
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
470 UcxList *left = ucx_list_append(NULL, (void*)"this");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
471 left = ucx_list_append(left, (void*)"is");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
472 left = ucx_list_append(left, (void*)"a");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
473 left = ucx_list_append(left, (void*)"test");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
474
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
475 UcxList *right = ucx_list_append(NULL, (void*)"to");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
476 right = ucx_list_append(right, (void*)"test");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
477 right = ucx_list_append(right, (void*)"this");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
478 right = ucx_list_append(right, (void*)"set");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
479 right = ucx_list_append(right, (void*)"operations");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
480
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
481 UcxList *expected = ucx_list_append(NULL, (void*)"is");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
482 expected = ucx_list_append(expected, (void*)"a");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
483
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
484 UcxList* result = ucx_list_difference(left, right, ucx_cmp_str,
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
485 NULL, NULL, NULL);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
486
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
487 UCX_TEST_BEGIN
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
488 UCX_TEST_ASSERT(ucx_list_equals(result, expected,
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
489 ucx_cmp_str, NULL), "failed");
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
490 UCX_TEST_END
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
491
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
492 ucx_list_free(result);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
493 ucx_list_free(expected);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
494 ucx_list_free(right);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
495 ucx_list_free(left);
365b24f20f98 adds set operations to UcxList
Mike Becker <universe@uap-core.de>
parents: 323
diff changeset
496 }

mercurial