test/test_list.c

Fri, 15 Apr 2022 21:28:51 +0200

author
Mike Becker <universe@uap-core.de>
date
Fri, 15 Apr 2022 21:28:51 +0200
changeset 510
133ac0f8f3fc
parent 509
0d3c6075f82c
permissions
-rw-r--r--

add googletest framework

390
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 /*
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
3 *
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
4 * Copyright 2021 Mike Becker, Olaf Wintermann All rights reserved.
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
5 *
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 *
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
11 *
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
15 *
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
27 */
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
28
398
8d506ed6c1c0 adds first draft for linked list implementation
Mike Becker <universe@uap-core.de>
parents: 390
diff changeset
29 #include "cx/linked_list.h"
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
30 #include "cx/utils.h"
411
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
31 #include "test_config.h"
422
afd87df80b13 add utility to verify allocations
Mike Becker <universe@uap-core.de>
parents: 413
diff changeset
32 #include "util_allocator.h"
398
8d506ed6c1c0 adds first draft for linked list implementation
Mike Becker <universe@uap-core.de>
parents: 390
diff changeset
33
507
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
34 static int cmp_int_impl(
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
35 int const *l,
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
36 int const *r
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
37 ) {
412
af766caea48d removes stupid high level wrapper for linked lists + adds test for cxLinkedListCreate
Mike Becker <universe@uap-core.de>
parents: 411
diff changeset
38 int left = *l, right = *r;
af766caea48d removes stupid high level wrapper for linked lists + adds test for cxLinkedListCreate
Mike Becker <universe@uap-core.de>
parents: 411
diff changeset
39 return left == right ? 0 : (left < right ? -1 : 1);
af766caea48d removes stupid high level wrapper for linked lists + adds test for cxLinkedListCreate
Mike Becker <universe@uap-core.de>
parents: 411
diff changeset
40 }
af766caea48d removes stupid high level wrapper for linked lists + adds test for cxLinkedListCreate
Mike Becker <universe@uap-core.de>
parents: 411
diff changeset
41
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
42 #define cmp_int ((CxListComparator) cmp_int_impl)
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
43
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
44 struct node {
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
45 struct node *next;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
46 struct node *prev;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
47 int data;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
48 };
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
49
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
50 #define nd(name) name = {0}
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
51
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
52 const ptrdiff_t loc_prev = offsetof(struct node, prev);
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
53 const ptrdiff_t loc_next = offsetof(struct node, next);
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
54 const ptrdiff_t loc_data = offsetof(struct node, data);
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
55
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
56 static struct node *create_nodes_test_data(
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
57 size_t n,
489
af6be1e123aa add some const qualifiers
Mike Becker <universe@uap-core.de>
parents: 488
diff changeset
58 int const data[]
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
59 ) {
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
60 CU_ASSERT_NOT_EQUAL_FATAL(n, 0)
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
61 struct node *begin = calloc(1, sizeof(struct node));
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
62 struct node *prev = begin;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
63 if (data) begin->data = data[0];
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
64 for (size_t i = 1; i < n; i++) {
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
65 struct node *node = calloc(1, sizeof(struct node));
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
66 if (data) node->data = data[i];
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
67 cx_linked_list_link(prev, node, loc_prev, loc_next);
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
68 prev = node;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
69 }
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
70 return begin;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
71 }
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
72
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
73 static void destroy_nodes_test_data(struct node *begin) {
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
74 struct node *node = begin;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
75 while (node) {
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
76 struct node *next = node->next;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
77 free(node);
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
78 node = next;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
79 }
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
80 }
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
81
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
82 static int *create_ints_test_data(size_t len) {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
83 int *data = malloc(sizeof(int) * len);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
84 cx_for_n (i, len) data[i] = rand(); // NOLINT(cert-msc50-cpp)
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
85 return data;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
86 }
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
87
482
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
88 void test_linked_list_link_unlink(void) {
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
89
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
90 struct node nd(a), nd(b), nd(c);
482
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
91
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
92 cx_linked_list_link(&a, &b, loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
93 CU_ASSERT_PTR_NULL(a.prev)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
94 CU_ASSERT_PTR_EQUAL(a.next, &b)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
95 CU_ASSERT_PTR_EQUAL(b.prev, &a)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
96 CU_ASSERT_PTR_NULL(b.next)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
97
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
98 cx_linked_list_unlink(&a, &b, loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
99 CU_ASSERT_PTR_NULL(a.prev)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
100 CU_ASSERT_PTR_NULL(a.next)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
101 CU_ASSERT_PTR_NULL(b.prev)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
102 CU_ASSERT_PTR_NULL(b.next)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
103
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
104 cx_linked_list_link(&b, &c, loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
105 cx_linked_list_link(&a, &b, loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
106 cx_linked_list_unlink(&b, &c, loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
107 CU_ASSERT_PTR_NULL(a.prev)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
108 CU_ASSERT_PTR_EQUAL(a.next, &b)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
109 CU_ASSERT_PTR_EQUAL(b.prev, &a)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
110 CU_ASSERT_PTR_NULL(b.next)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
111 CU_ASSERT_PTR_NULL(c.prev)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
112 CU_ASSERT_PTR_NULL(c.next)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
113 }
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
114
438
cd3069757010 add function cx_linked_list_at()
Mike Becker <universe@uap-core.de>
parents: 435
diff changeset
115 void test_linked_list_at(void) {
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
116 struct node nd(a), nd(b), nd(c), nd(d);
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
117 cx_linked_list_link(&a, &b, loc_prev, loc_next);
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
118 cx_linked_list_link(&b, &c, loc_prev, loc_next);
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
119 cx_linked_list_link(&c, &d, loc_prev, loc_next);
438
cd3069757010 add function cx_linked_list_at()
Mike Becker <universe@uap-core.de>
parents: 435
diff changeset
120
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
121 CU_ASSERT_PTR_EQUAL(cx_linked_list_at(&a, 0, loc_next, 0), &a)
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
122 CU_ASSERT_PTR_EQUAL(cx_linked_list_at(&a, 0, loc_next, 1), &b)
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
123 CU_ASSERT_PTR_EQUAL(cx_linked_list_at(&a, 0, loc_next, 2), &c)
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
124 CU_ASSERT_PTR_EQUAL(cx_linked_list_at(&a, 0, loc_next, 3), &d)
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
125 CU_ASSERT_PTR_NULL(cx_linked_list_at(&a, 0, loc_next, 4))
438
cd3069757010 add function cx_linked_list_at()
Mike Becker <universe@uap-core.de>
parents: 435
diff changeset
126
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
127 CU_ASSERT_PTR_EQUAL(cx_linked_list_at(&b, 1, loc_prev, 0), &a)
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
128 CU_ASSERT_PTR_EQUAL(cx_linked_list_at(&b, 1, loc_next, 1), &b)
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
129 CU_ASSERT_PTR_EQUAL(cx_linked_list_at(&b, 1, loc_next, 2), &c)
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
130 CU_ASSERT_PTR_EQUAL(cx_linked_list_at(&b, 1, loc_next, 3), &d)
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
131 CU_ASSERT_PTR_NULL(cx_linked_list_at(&b, 1, loc_next, 4))
438
cd3069757010 add function cx_linked_list_at()
Mike Becker <universe@uap-core.de>
parents: 435
diff changeset
132
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
133 CU_ASSERT_PTR_EQUAL(cx_linked_list_at(&d, 3, loc_prev, 0), &a)
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
134 CU_ASSERT_PTR_EQUAL(cx_linked_list_at(&d, 3, loc_prev, 1), &b)
438
cd3069757010 add function cx_linked_list_at()
Mike Becker <universe@uap-core.de>
parents: 435
diff changeset
135 }
cd3069757010 add function cx_linked_list_at()
Mike Becker <universe@uap-core.de>
parents: 435
diff changeset
136
487
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
137 void test_linked_list_find(void) {
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
138 int data[] = {2, 4, 6, 8};
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
139 void *list = create_nodes_test_data(4, data);
487
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
140 int s;
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
141
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
142 s = 2;
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
143 CU_ASSERT_EQUAL(cx_linked_list_find(list, loc_next, loc_data,
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
144 false, cmp_int, &s), 0)
487
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
145 s = 4;
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
146 CU_ASSERT_EQUAL(cx_linked_list_find(list, loc_next, loc_data,
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
147 false, cmp_int, &s), 1)
487
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
148 s = 6;
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
149 CU_ASSERT_EQUAL(cx_linked_list_find(list, loc_next, loc_data,
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
150 false, cmp_int, &s), 2)
487
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
151 s = 8;
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
152 CU_ASSERT_EQUAL(cx_linked_list_find(list, loc_next, loc_data,
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
153 false, cmp_int, &s), 3)
487
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
154 s = 10;
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
155 CU_ASSERT_EQUAL(cx_linked_list_find(list, loc_next, loc_data,
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
156 false, cmp_int, &s), 4)
487
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
157 s = -2;
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
158 CU_ASSERT_EQUAL(cx_linked_list_find(list, loc_next, loc_data,
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
159 false, cmp_int, &s), 4)
487
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
160 }
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
161
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
162 void test_linked_list_compare(void) {
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
163 int a[] = {2, 4, 6, 8};
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
164 int b[] = {2, 4, 6};
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
165 int c[] = {2, 4, 6, 9};
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
166
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
167 void *la = create_nodes_test_data(4, a);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
168 void *lb = create_nodes_test_data(3, b);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
169 void *lc = create_nodes_test_data(4, c);
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
170
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
171 CU_ASSERT_TRUE(0 < cx_linked_list_compare(la, lb, loc_next, loc_data,
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
172 false, cmp_int)
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
173 )
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
174 CU_ASSERT_TRUE(0 > cx_linked_list_compare(lb, la, loc_next, loc_data,
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
175 false, cmp_int)
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
176 )
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
177 CU_ASSERT_TRUE(0 < cx_linked_list_compare(lc, la, loc_next, loc_data,
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
178 false, cmp_int)
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
179 )
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
180 CU_ASSERT_TRUE(0 > cx_linked_list_compare(la, lc, loc_next, loc_data,
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
181 false, cmp_int)
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
182 )
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
183 CU_ASSERT_TRUE(0 == cx_linked_list_compare(la, la, loc_next, loc_data,
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
184 false, cmp_int)
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
185 )
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
186
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
187 destroy_nodes_test_data(la);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
188 destroy_nodes_test_data(lb);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
189 destroy_nodes_test_data(lc);
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
190 }
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
191
444
cb944fa1852a rename test_cx_linked_list_add
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 443
diff changeset
192 void test_linked_list_add(void) {
442
310019ddfe4e add test for cx_linked_list_add
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 438
diff changeset
193 struct node nodes[4];
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
194 void *begin, *end;
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
195
442
310019ddfe4e add test for cx_linked_list_add
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 438
diff changeset
196 // test with begin, end / prev, next
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
197 memset(nodes, 0, 4 * sizeof(struct node));
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
198 begin = end = NULL;
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
199
453
bb144d08cd44 add some documentation and changes some signatures
Mike Becker <universe@uap-core.de>
parents: 449
diff changeset
200 cx_linked_list_add(&begin, &end, loc_prev, loc_next, &nodes[0]);
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
201 CU_ASSERT_PTR_EQUAL(begin, &nodes[0])
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
202 CU_ASSERT_PTR_EQUAL(end, &nodes[0])
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
203 CU_ASSERT_PTR_NULL(nodes[0].prev)
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
204 CU_ASSERT_PTR_NULL(nodes[0].next)
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
205
453
bb144d08cd44 add some documentation and changes some signatures
Mike Becker <universe@uap-core.de>
parents: 449
diff changeset
206 cx_linked_list_add(&begin, &end, loc_prev, loc_next, &nodes[1]);
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
207 CU_ASSERT_PTR_EQUAL(begin, &nodes[0])
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
208 CU_ASSERT_PTR_EQUAL(end, &nodes[1])
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
209 CU_ASSERT_PTR_EQUAL(nodes[0].next, &nodes[1])
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
210 CU_ASSERT_PTR_EQUAL(nodes[1].prev, &nodes[0])
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
211
442
310019ddfe4e add test for cx_linked_list_add
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 438
diff changeset
212 // test with begin only / prev, next
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
213 memset(nodes, 0, 4 * sizeof(struct node));
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
214 begin = end = NULL;
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
215
453
bb144d08cd44 add some documentation and changes some signatures
Mike Becker <universe@uap-core.de>
parents: 449
diff changeset
216 cx_linked_list_add(&begin, NULL, loc_prev, loc_next, &nodes[0]);
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
217 CU_ASSERT_PTR_EQUAL(begin, &nodes[0])
453
bb144d08cd44 add some documentation and changes some signatures
Mike Becker <universe@uap-core.de>
parents: 449
diff changeset
218 cx_linked_list_add(&begin, NULL, loc_prev, loc_next, &nodes[1]);
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
219 CU_ASSERT_PTR_EQUAL(begin, &nodes[0])
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
220 CU_ASSERT_PTR_EQUAL(nodes[0].next, &nodes[1])
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
221 CU_ASSERT_PTR_EQUAL(nodes[1].prev, &nodes[0])
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
222
453
bb144d08cd44 add some documentation and changes some signatures
Mike Becker <universe@uap-core.de>
parents: 449
diff changeset
223 cx_linked_list_add(&begin, NULL, loc_prev, loc_next, &nodes[2]);
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
224 CU_ASSERT_PTR_EQUAL(nodes[1].next, &nodes[2])
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
225 CU_ASSERT_PTR_EQUAL(nodes[2].prev, &nodes[1])
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
226
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
227 // test with end only / prev, next
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
228 memset(nodes, 0, 4 * sizeof(struct node));
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
229 begin = end = NULL;
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
230
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
231 cx_linked_list_add(NULL, &end, loc_prev, loc_next, &nodes[0]);
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
232 CU_ASSERT_PTR_EQUAL(end, &nodes[0])
494
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
233 cx_linked_list_add(NULL, &end, loc_prev, loc_next, &nodes[1]);
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
234 CU_ASSERT_PTR_EQUAL(end, &nodes[1])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
235 CU_ASSERT_PTR_EQUAL(nodes[0].next, &nodes[1])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
236 CU_ASSERT_PTR_EQUAL(nodes[1].prev, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
237
494
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
238 cx_linked_list_add(NULL, &end, loc_prev, loc_next, &nodes[2]);
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
239 CU_ASSERT_PTR_EQUAL(end, &nodes[2])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
240 CU_ASSERT_PTR_EQUAL(nodes[1].next, &nodes[2])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
241 CU_ASSERT_PTR_EQUAL(nodes[2].prev, &nodes[1])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
242
442
310019ddfe4e add test for cx_linked_list_add
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 438
diff changeset
243 // test with begin, end / next
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
244 memset(nodes, 0, 4 * sizeof(struct node));
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
245 begin = end = NULL;
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
246
453
bb144d08cd44 add some documentation and changes some signatures
Mike Becker <universe@uap-core.de>
parents: 449
diff changeset
247 cx_linked_list_add(&begin, &end, -1, loc_next, &nodes[0]);
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
248 CU_ASSERT_PTR_EQUAL(begin, &nodes[0])
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
249 CU_ASSERT_PTR_EQUAL(end, &nodes[0])
453
bb144d08cd44 add some documentation and changes some signatures
Mike Becker <universe@uap-core.de>
parents: 449
diff changeset
250 cx_linked_list_add(&begin, &end, -1, loc_next, &nodes[1]);
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
251 CU_ASSERT_PTR_EQUAL(end, &nodes[1])
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
252 CU_ASSERT_PTR_EQUAL(nodes[0].next, &nodes[1])
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
253 CU_ASSERT_PTR_NULL(nodes[1].prev)
442
310019ddfe4e add test for cx_linked_list_add
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 438
diff changeset
254 }
310019ddfe4e add test for cx_linked_list_add
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 438
diff changeset
255
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
256 void test_linked_list_prepend(void) {
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
257 struct node nodes[4];
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
258 void *begin, *end;
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
259
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
260 // test with begin, end / prev, next
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
261 memset(nodes, 0, 4 * sizeof(struct node));
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
262 begin = end = NULL;
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
263
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
264 cx_linked_list_prepend(&begin, &end, loc_prev, loc_next, &nodes[0]);
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
265 CU_ASSERT_PTR_EQUAL(begin, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
266 CU_ASSERT_PTR_EQUAL(end, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
267 CU_ASSERT_PTR_NULL(nodes[0].prev)
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
268 CU_ASSERT_PTR_NULL(nodes[0].next)
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
269
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
270 cx_linked_list_prepend(&begin, &end, loc_prev, loc_next, &nodes[1]);
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
271 CU_ASSERT_PTR_EQUAL(begin, &nodes[1])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
272 CU_ASSERT_PTR_EQUAL(end, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
273 CU_ASSERT_PTR_EQUAL(nodes[1].next, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
274 CU_ASSERT_PTR_EQUAL(nodes[0].prev, &nodes[1])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
275
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
276 // test with begin only / prev, next
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
277 memset(nodes, 0, 4 * sizeof(struct node));
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
278 begin = end = NULL;
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
279
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
280 cx_linked_list_prepend(&begin, NULL, loc_prev, loc_next, &nodes[0]);
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
281 CU_ASSERT_PTR_EQUAL(begin, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
282 cx_linked_list_prepend(&begin, NULL, loc_prev, loc_next, &nodes[1]);
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
283 CU_ASSERT_PTR_EQUAL(begin, &nodes[1])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
284 CU_ASSERT_PTR_EQUAL(nodes[1].next, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
285 CU_ASSERT_PTR_EQUAL(nodes[0].prev, &nodes[1])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
286
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
287 cx_linked_list_prepend(&begin, NULL, loc_prev, loc_next, &nodes[2]);
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
288 CU_ASSERT_PTR_EQUAL(begin, &nodes[2])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
289 CU_ASSERT_PTR_EQUAL(nodes[2].next, &nodes[1])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
290 CU_ASSERT_PTR_EQUAL(nodes[1].prev, &nodes[2])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
291
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
292 // test with end only / prev, next
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
293 memset(nodes, 0, 4 * sizeof(struct node));
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
294 begin = end = NULL;
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
295
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
296 cx_linked_list_prepend(NULL, &end, loc_prev, loc_next, &nodes[0]);
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
297 CU_ASSERT_PTR_EQUAL(end, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
298 cx_linked_list_prepend(NULL, &end, loc_prev, loc_next, &nodes[1]);
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
299 CU_ASSERT_PTR_EQUAL(end, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
300 CU_ASSERT_PTR_EQUAL(nodes[1].next, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
301 CU_ASSERT_PTR_EQUAL(nodes[0].prev, &nodes[1])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
302
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
303 cx_linked_list_prepend(NULL, &end, loc_prev, loc_next, &nodes[2]);
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
304 CU_ASSERT_PTR_EQUAL(end, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
305 CU_ASSERT_PTR_EQUAL(nodes[2].next, &nodes[1])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
306 CU_ASSERT_PTR_EQUAL(nodes[1].prev, &nodes[2])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
307
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
308 // test with begin, end / next
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
309 memset(nodes, 0, 4 * sizeof(struct node));
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
310 begin = end = NULL;
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
311
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
312 cx_linked_list_prepend(&begin, &end, -1, loc_next, &nodes[0]);
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
313 CU_ASSERT_PTR_EQUAL(begin, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
314 CU_ASSERT_PTR_EQUAL(end, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
315 cx_linked_list_prepend(&begin, &end, -1, loc_next, &nodes[1]);
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
316 cx_linked_list_prepend(&begin, &end, -1, loc_next, &nodes[2]);
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
317 CU_ASSERT_PTR_EQUAL(begin, &nodes[2])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
318 CU_ASSERT_PTR_EQUAL(end, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
319 CU_ASSERT_PTR_EQUAL(nodes[1].next, &nodes[0])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
320 CU_ASSERT_PTR_EQUAL(nodes[2].next, &nodes[1])
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
321 CU_ASSERT_PTR_NULL(nodes[1].prev)
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
322 CU_ASSERT_PTR_NULL(nodes[0].prev)
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
323 }
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
324
482
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
325 void test_linked_list_insert(void) {
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
326 struct node nodes[4];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
327 void *begin, *end;
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
328
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
329 // insert mid list
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
330 memset(nodes, 0, 4 * sizeof(struct node));
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
331 begin = &nodes[0];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
332 end = &nodes[2];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
333
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
334 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
335 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
336
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
337 cx_linked_list_insert(&begin, &end, loc_prev, loc_next, &nodes[1], &nodes[3]);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
338 CU_ASSERT_PTR_EQUAL(begin, &nodes[0])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
339 CU_ASSERT_PTR_EQUAL(end, &nodes[2])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
340 CU_ASSERT_PTR_EQUAL(nodes[1].next, &nodes[3])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
341 CU_ASSERT_PTR_EQUAL(nodes[2].prev, &nodes[3])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
342 CU_ASSERT_PTR_EQUAL(nodes[3].prev, &nodes[1])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
343 CU_ASSERT_PTR_EQUAL(nodes[3].next, &nodes[2])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
344
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
345 // insert end
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
346 memset(nodes, 0, 4 * sizeof(struct node));
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
347 begin = &nodes[0];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
348 end = &nodes[2];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
349
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
350 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
351 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
352
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
353 cx_linked_list_insert(&begin, &end, loc_prev, loc_next, &nodes[2], &nodes[3]);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
354 CU_ASSERT_PTR_EQUAL(begin, &nodes[0])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
355 CU_ASSERT_PTR_EQUAL(end, &nodes[3])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
356 CU_ASSERT_PTR_EQUAL(nodes[2].next, &nodes[3])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
357 CU_ASSERT_PTR_EQUAL(nodes[3].prev, &nodes[2])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
358 CU_ASSERT_PTR_NULL(nodes[3].next)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
359
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
360 // insert begin
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
361 memset(nodes, 0, 4 * sizeof(struct node));
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
362 begin = &nodes[0];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
363 end = &nodes[2];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
364
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
365 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
366 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
367
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
368 cx_linked_list_insert(&begin, &end, loc_prev, loc_next, NULL, &nodes[3]);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
369 CU_ASSERT_PTR_EQUAL(begin, &nodes[3])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
370 CU_ASSERT_PTR_EQUAL(end, &nodes[2])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
371 CU_ASSERT_PTR_EQUAL(nodes[0].prev, &nodes[3])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
372 CU_ASSERT_PTR_NULL(nodes[3].prev)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
373 CU_ASSERT_PTR_EQUAL(nodes[3].next, &nodes[0])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
374 }
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
375
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
376 void test_linked_list_insert_chain(void) {
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
377 struct node nodes[5];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
378 void *begin, *end;
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
379
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
380 // insert mid list
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
381 memset(nodes, 0, 5 * sizeof(struct node));
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
382 begin = &nodes[0];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
383 end = &nodes[2];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
384
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
385 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
386 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
387 cx_linked_list_link(&nodes[3], &nodes[4], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
388
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
389 cx_linked_list_insert_chain(&begin, &end, loc_prev, loc_next, &nodes[1], &nodes[3], NULL);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
390 CU_ASSERT_PTR_EQUAL(begin, &nodes[0])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
391 CU_ASSERT_PTR_EQUAL(end, &nodes[2])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
392 CU_ASSERT_PTR_EQUAL(nodes[1].next, &nodes[3])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
393 CU_ASSERT_PTR_EQUAL(nodes[2].prev, &nodes[4])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
394 CU_ASSERT_PTR_EQUAL(nodes[3].prev, &nodes[1])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
395 CU_ASSERT_PTR_EQUAL(nodes[4].next, &nodes[2])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
396
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
397 // insert end
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
398 memset(nodes, 0, 5 * sizeof(struct node));
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
399 begin = &nodes[0];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
400 end = &nodes[2];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
401
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
402 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
403 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
404 cx_linked_list_link(&nodes[3], &nodes[4], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
405
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
406 cx_linked_list_insert_chain(&begin, &end, loc_prev, loc_next, &nodes[2], &nodes[3], NULL);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
407 CU_ASSERT_PTR_EQUAL(begin, &nodes[0])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
408 CU_ASSERT_PTR_EQUAL(end, &nodes[4])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
409 CU_ASSERT_PTR_EQUAL(nodes[2].next, &nodes[3])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
410 CU_ASSERT_PTR_EQUAL(nodes[3].prev, &nodes[2])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
411 CU_ASSERT_PTR_NULL(nodes[4].next)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
412
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
413 // insert begin
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
414 memset(nodes, 0, 5 * sizeof(struct node));
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
415 begin = &nodes[0];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
416 end = &nodes[2];
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
417
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
418 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
419 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
420 cx_linked_list_link(&nodes[3], &nodes[4], loc_prev, loc_next);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
421
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
422 cx_linked_list_insert_chain(&begin, &end, loc_prev, loc_next, NULL, &nodes[3], NULL);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
423 CU_ASSERT_PTR_EQUAL(begin, &nodes[3])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
424 CU_ASSERT_PTR_EQUAL(end, &nodes[2])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
425 CU_ASSERT_PTR_EQUAL(nodes[0].prev, &nodes[4])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
426 CU_ASSERT_PTR_NULL(nodes[3].prev)
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
427 CU_ASSERT_PTR_EQUAL(nodes[4].next, &nodes[0])
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
428 }
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
429
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
430 void test_linked_list_first(void) {
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
431 struct node *begin = create_nodes_test_data(3, NULL);
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
432 CU_ASSERT_PTR_EQUAL(cx_linked_list_first(begin, loc_prev), begin)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
433 CU_ASSERT_PTR_EQUAL(cx_linked_list_first(begin->next, loc_prev), begin)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
434 CU_ASSERT_PTR_EQUAL(cx_linked_list_first(begin->next->next, loc_prev), begin)
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
435 destroy_nodes_test_data(begin);
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
436 }
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
437
456
227c2eabbef8 change cx_linked_list_last() and add a test for it
Mike Becker <universe@uap-core.de>
parents: 455
diff changeset
438 void test_linked_list_last(void) {
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
439 struct node *begin = create_nodes_test_data(3, NULL);
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
440 struct node *end = begin->next->next;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
441 CU_ASSERT_PTR_EQUAL(cx_linked_list_last(begin, loc_next), end)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
442 CU_ASSERT_PTR_EQUAL(cx_linked_list_last(begin->next, loc_next), end)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
443 CU_ASSERT_PTR_EQUAL(cx_linked_list_last(begin->next->next, loc_next), end)
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
444 destroy_nodes_test_data(begin);
456
227c2eabbef8 change cx_linked_list_last() and add a test for it
Mike Becker <universe@uap-core.de>
parents: 455
diff changeset
445 }
227c2eabbef8 change cx_linked_list_last() and add a test for it
Mike Becker <universe@uap-core.de>
parents: 455
diff changeset
446
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
447 void test_linked_list_prev(void) {
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
448 struct node *begin = create_nodes_test_data(3, NULL);
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
449 CU_ASSERT_PTR_NULL(cx_linked_list_prev(begin, loc_next, begin))
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
450 CU_ASSERT_PTR_EQUAL(cx_linked_list_prev(begin, loc_next, begin->next), begin)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
451 CU_ASSERT_PTR_EQUAL(cx_linked_list_prev(begin, loc_next, begin->next->next), begin->next)
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
452 destroy_nodes_test_data(begin);
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
453 }
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
454
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
455 void test_linked_list_remove(void) {
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
456 void *begin, *end;
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
457
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
458 int data[] = {2, 4, 6};
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
459 begin = create_nodes_test_data(3, data);
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
460 struct node *first = begin;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
461 struct node *second = first->next;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
462 struct node *third = second->next;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
463 end = third;
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
464
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
465 cx_linked_list_remove(&begin, &end, loc_prev, loc_next, second);
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
466 CU_ASSERT_PTR_EQUAL(begin, first)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
467 CU_ASSERT_PTR_EQUAL(end, third)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
468 CU_ASSERT_PTR_NULL(first->prev)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
469 CU_ASSERT_PTR_EQUAL(first->next, third)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
470 CU_ASSERT_PTR_EQUAL(third->prev, first)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
471 CU_ASSERT_PTR_NULL(third->next)
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
472
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
473 cx_linked_list_remove(&begin, &end, loc_prev, loc_next, third);
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
474 CU_ASSERT_PTR_EQUAL(begin, first)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
475 CU_ASSERT_PTR_EQUAL(end, first)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
476 CU_ASSERT_PTR_NULL(first->prev)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
477 CU_ASSERT_PTR_NULL(first->next)
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
478
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
479 cx_linked_list_remove(&begin, &end, loc_prev, loc_next, first);
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
480 CU_ASSERT_PTR_NULL(begin)
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
481 CU_ASSERT_PTR_NULL(end)
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
482
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
483 free(first);
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
484 free(second);
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
485 free(third);
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
486 }
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
487
468
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
488 void test_linked_list_size(void) {
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
489 struct node *list;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
490
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
491 CU_ASSERT_PTR_EQUAL(cx_linked_list_size(NULL, loc_next), 0)
468
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
492
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
493 list = create_nodes_test_data(5, NULL);
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
494 CU_ASSERT_EQUAL(cx_linked_list_size(list, loc_next), 5)
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
495 destroy_nodes_test_data(list);
468
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
496
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
497 list = create_nodes_test_data(13, NULL);
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
498 CU_ASSERT_EQUAL(cx_linked_list_size(list, loc_next), 13)
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
499 destroy_nodes_test_data(list);
468
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
500 }
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
501
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
502 void test_linked_list_sort(void) {
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
503 int expected[] = {
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
504 14, 30, 151, 163, 227, 300, 315, 317, 363, 398, 417, 424, 438, 446, 508, 555, 605, 713, 716, 759, 761, 880,
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
505 894, 1034, 1077, 1191, 1231, 1264, 1297, 1409, 1423, 1511, 1544, 1659, 1686, 1707, 1734, 1771, 1874, 1894,
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
506 1976, 2079, 2124, 2130, 2135, 2266, 2338, 2358, 2430, 2500, 2540, 2542, 2546, 2711, 2733, 2754, 2764, 2797,
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
507 2888, 2900, 3020, 3053, 3109, 3244, 3275, 3302, 3362, 3363, 3364, 3441, 3515, 3539, 3579, 3655, 3675, 3677,
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
508 3718, 3724, 3757, 3866, 3896, 3906, 3941, 3984, 3994, 4016, 4085, 4121, 4254, 4319, 4366, 4459, 4514, 4681,
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
509 4785, 4791, 4801, 4859, 4903, 4973
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
510 };
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
511 int scrambled[] = {
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
512 759, 716, 880, 761, 2358, 2542, 2500, 2540, 2546, 2711, 2430, 1707, 1874, 1771, 1894, 1734, 1976, 2079,
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
513 2124, 2130, 2135, 2266, 2338, 2733, 2754, 2764, 2797, 3362, 3363, 3364, 3441, 3515, 3539, 3579, 3655, 2888,
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
514 2900, 3020, 3053, 3109, 3244, 3275, 3302, 438, 446, 508, 555, 605, 713, 14, 30, 151, 163, 227, 300,
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
515 894, 1034, 1077, 1191, 1231, 1264, 1297, 1409, 1423, 1511, 1544, 1659, 1686, 315, 317, 363, 398, 417, 424,
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
516 3675, 3677, 3718, 3724, 3757, 3866, 3896, 3906, 3941, 3984, 3994, 4785, 4791, 4801, 4859, 4903, 4973,
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
517 4016, 4085, 4121, 4254, 4319, 4366, 4459, 4514, 4681
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
518 };
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
519
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
520 void *begin = create_nodes_test_data(100, scrambled);
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
521 void *end = cx_linked_list_last(begin, loc_next);
468
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
522
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
523 cx_linked_list_sort(&begin, &end, loc_prev, loc_next, loc_data,
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
524 false, cmp_int);
468
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
525
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
526 struct node *check = begin;
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
527 struct node *check_last = NULL;
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
528 CU_ASSERT_PTR_NULL(check->prev)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
529 CU_ASSERT_EQUAL(check->data, expected[0])
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
530 cx_for_n (i, 100) {
468
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
531 CU_ASSERT_EQUAL(check->data, expected[i])
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
532 CU_ASSERT_PTR_EQUAL(check->prev, check_last)
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
533 if (i < 99) {
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
534 CU_ASSERT_PTR_NOT_NULL(check->next)
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
535 }
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
536 check_last = check;
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
537 check = check->next;
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
538 }
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
539 CU_ASSERT_PTR_NULL(check)
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
540 CU_ASSERT_PTR_EQUAL(end, check_last)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
541
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
542 destroy_nodes_test_data(begin);
468
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
543 }
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
544
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
545 void test_linked_list_reverse(void) {
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
546 void *begin, *end;
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
547
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
548 int data[] = {2, 4, 6, 8};
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
549 int reversed[] = {8, 6, 4, 2};
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
550
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
551 void *list = create_nodes_test_data(4, data);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
552 void *expected = create_nodes_test_data(4, reversed);
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
553
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
554 begin = list;
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
555 end = cx_linked_list_last(list, loc_next);
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
556
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
557 cx_linked_list_reverse(&begin, &end, loc_prev, loc_next);
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
558 CU_ASSERT_PTR_EQUAL(end, list)
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
559 CU_ASSERT_PTR_EQUAL(begin, cx_linked_list_first(end, loc_prev))
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
560 CU_ASSERT_TRUE(0 == cx_linked_list_compare(begin, expected, loc_next, loc_data,
492
188942a7308b simplifies some linked list tests
Mike Becker <universe@uap-core.de>
parents: 491
diff changeset
561 0, cmp_int))
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
562
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
563 destroy_nodes_test_data(begin);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
564 destroy_nodes_test_data(expected);
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
565 }
456
227c2eabbef8 change cx_linked_list_last() and add a test for it
Mike Becker <universe@uap-core.de>
parents: 455
diff changeset
566
507
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
567 static void verify_linked_list_create(CxList *list) {
455
8168e16cd1e9 change test names
Mike Becker <universe@uap-core.de>
parents: 453
diff changeset
568 CU_ASSERT_EQUAL(list->size, 0)
8168e16cd1e9 change test names
Mike Becker <universe@uap-core.de>
parents: 453
diff changeset
569 CU_ASSERT_EQUAL(list->capacity, (size_t) -1)
8168e16cd1e9 change test names
Mike Becker <universe@uap-core.de>
parents: 453
diff changeset
570 CU_ASSERT_PTR_EQUAL(list->allocator, cxTestingAllocator)
8168e16cd1e9 change test names
Mike Becker <universe@uap-core.de>
parents: 453
diff changeset
571 CU_ASSERT_PTR_EQUAL(list->cmpfunc, cmp_int)
8168e16cd1e9 change test names
Mike Becker <universe@uap-core.de>
parents: 453
diff changeset
572
503
a89857072ace add new destructor API and apply it to CxList
Mike Becker <universe@uap-core.de>
parents: 500
diff changeset
573 cxListDestroy(list);
506
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
574 }
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
575
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
576 void test_hl_linked_list_create(void) {
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
577 CxList *list = cxLinkedListCreate(cxTestingAllocator, cmp_int, sizeof(int));
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
578 CU_ASSERT_EQUAL(list->itemsize, sizeof(int))
507
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
579 verify_linked_list_create(list);
455
8168e16cd1e9 change test names
Mike Becker <universe@uap-core.de>
parents: 453
diff changeset
580 }
8168e16cd1e9 change test names
Mike Becker <universe@uap-core.de>
parents: 453
diff changeset
581
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
582 void test_hl_ptr_linked_list_create(void) {
500
eb9e7bd40a8e do not hide pointers behind typedefs
Mike Becker <universe@uap-core.de>
parents: 499
diff changeset
583 CxList *list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int);
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
584 CU_ASSERT_EQUAL(list->itemsize, sizeof(void *))
507
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
585 verify_linked_list_create(list);
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
586 }
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
587
488
9138acaa494b add cxLinkedListFromArray() and cxListCompare()
Mike Becker <universe@uap-core.de>
parents: 487
diff changeset
588 void test_hl_linked_list_from_array(void) {
9138acaa494b add cxLinkedListFromArray() and cxListCompare()
Mike Becker <universe@uap-core.de>
parents: 487
diff changeset
589 int data[] = {2, 4, 5, 7, 10, 15};
9138acaa494b add cxLinkedListFromArray() and cxListCompare()
Mike Becker <universe@uap-core.de>
parents: 487
diff changeset
590
500
eb9e7bd40a8e do not hide pointers behind typedefs
Mike Becker <universe@uap-core.de>
parents: 499
diff changeset
591 CxList *expected = cxLinkedListCreate(cxTestingAllocator, cmp_int, sizeof(int));
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
592 cx_for_n (i, 5) cxListAdd(expected, &data[i]);
488
9138acaa494b add cxLinkedListFromArray() and cxListCompare()
Mike Becker <universe@uap-core.de>
parents: 487
diff changeset
593
500
eb9e7bd40a8e do not hide pointers behind typedefs
Mike Becker <universe@uap-core.de>
parents: 499
diff changeset
594 CxList *list = cxLinkedListFromArray(cxTestingAllocator, cmp_int, sizeof(int), 5, data);
488
9138acaa494b add cxLinkedListFromArray() and cxListCompare()
Mike Becker <universe@uap-core.de>
parents: 487
diff changeset
595
9138acaa494b add cxLinkedListFromArray() and cxListCompare()
Mike Becker <universe@uap-core.de>
parents: 487
diff changeset
596 CU_ASSERT_TRUE(0 == cxListCompare(list, expected))
491
6d538177f746 fix missing cleanup in test_hl_linked_list_from_array
Mike Becker <universe@uap-core.de>
parents: 489
diff changeset
597
503
a89857072ace add new destructor API and apply it to CxList
Mike Becker <universe@uap-core.de>
parents: 500
diff changeset
598 cxListDestroy(list);
a89857072ace add new destructor API and apply it to CxList
Mike Becker <universe@uap-core.de>
parents: 500
diff changeset
599 cxListDestroy(expected);
488
9138acaa494b add cxLinkedListFromArray() and cxListCompare()
Mike Becker <universe@uap-core.de>
parents: 487
diff changeset
600 }
9138acaa494b add cxLinkedListFromArray() and cxListCompare()
Mike Becker <universe@uap-core.de>
parents: 487
diff changeset
601
507
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
602 static void verify_hl_linked_list_add(
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
603 CxList *list,
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
604 int data[],
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
605 size_t len,
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
606 bool write_through
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
607 ) {
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
608 cx_for_n (i, len) CU_ASSERT_EQUAL(cxListAdd(list, &data[i]), 0)
507
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
609 CU_ASSERT_EQUAL(list->size, len)
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
610 CU_ASSERT_TRUE(list->capacity >= list->size)
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
611 cx_for_n (i, len) CU_ASSERT_EQUAL(*(int *) cxListAt(list, i), data[i])
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
612 cx_for_n (i, len) ++data[i];
507
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
613 if (write_through) {
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
614 cx_for_n (i, len) CU_ASSERT_EQUAL(*(int *) cxListAt(list, i), data[i])
507
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
615 } else {
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
616 cx_for_n (i, len) CU_ASSERT_EQUAL(*(int *) cxListAt(list, i), data[i] - 1)
507
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
617 }
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
618 cxListDestroy(list);
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
619 }
459
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
620
507
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
621 void test_hl_linked_list_add(void) {
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
622 CxList *list = cxLinkedListCreate(cxTestingAllocator, cmp_int, sizeof(int));
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
623 int data[] = {5, 47, 13, 9, 18, 1, 42};
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
624 verify_hl_linked_list_add(list, data, sizeof(data) / sizeof(int), false);
459
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
625 }
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
626
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
627 void test_hl_ptr_linked_list_add(void) {
500
eb9e7bd40a8e do not hide pointers behind typedefs
Mike Becker <universe@uap-core.de>
parents: 499
diff changeset
628 CxList *list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int);
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
629 int data[] = {5, 47, 84, 13, 9, 18, 90, 1, 42};
507
2e8878770de0 remove test code duplication for cxListAdd
Mike Becker <universe@uap-core.de>
parents: 506
diff changeset
630 verify_hl_linked_list_add(list, data, sizeof(data) / sizeof(int), true);
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
631 }
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
632
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
633 static void verify_hl_linked_list_insert(CxList *list) {
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
634 int a = 5, b = 47, c = 13, d = 42;
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
635
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
636 CU_ASSERT_NOT_EQUAL(cxListInsert(list, 1, &a), 0)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
637 CU_ASSERT_EQUAL(list->size, 0)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
638 CU_ASSERT_EQUAL(cxListInsert(list, 0, &a), 0)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
639 CU_ASSERT_EQUAL(list->size, 1)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
640 CU_ASSERT_EQUAL(cxListInsert(list, 0, &b), 0)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
641 CU_ASSERT_EQUAL(list->size, 2)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
642 CU_ASSERT_EQUAL(cxListInsert(list, 1, &c), 0)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
643 CU_ASSERT_EQUAL(list->size, 3)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
644 CU_ASSERT_EQUAL(cxListInsert(list, 3, &d), 0)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
645
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
646 CU_ASSERT_EQUAL(list->size, 4)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
647 CU_ASSERT_TRUE(list->capacity >= list->size)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
648
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
649 CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 47)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
650 CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 13)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
651 CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 5)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
652 CU_ASSERT_EQUAL(*(int *) cxListAt(list, 3), 42)
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
653
503
a89857072ace add new destructor API and apply it to CxList
Mike Becker <universe@uap-core.de>
parents: 500
diff changeset
654 cxListDestroy(list);
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
655 }
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
656
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
657 void test_hl_linked_list_insert(void) {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
658 verify_hl_linked_list_insert(cxLinkedListCreate(cxTestingAllocator, cmp_int, sizeof(int)));
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
659 }
459
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
660
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
661 void test_hl_ptr_linked_list_insert(void) {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
662 verify_hl_linked_list_insert(cxPointerLinkedListCreate(cxTestingAllocator, cmp_int));
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
663 }
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
664
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
665 static void verify_hl_linked_list_remove(CxList *list) {
459
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
666 CU_ASSERT_EQUAL(list->size, 4)
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
667 CU_ASSERT_TRUE(list->capacity >= list->size)
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
668
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
669 CU_ASSERT_NOT_EQUAL(cxListRemove(list, 4), 0)
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
670
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
671 CU_ASSERT_EQUAL(cxListRemove(list, 2), 0)
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
672 CU_ASSERT_EQUAL(list->size, 3)
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
673 CU_ASSERT_TRUE(list->capacity >= list->size)
466
28bc3e10ac28 add special linked list implementation for storing pointers
Mike Becker <universe@uap-core.de>
parents: 460
diff changeset
674 CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 5)
28bc3e10ac28 add special linked list implementation for storing pointers
Mike Becker <universe@uap-core.de>
parents: 460
diff changeset
675 CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 47)
28bc3e10ac28 add special linked list implementation for storing pointers
Mike Becker <universe@uap-core.de>
parents: 460
diff changeset
676 CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 13)
459
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
677
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
678 CU_ASSERT_EQUAL(cxListRemove(list, 0), 0)
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
679 CU_ASSERT_EQUAL(list->size, 2)
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
680 CU_ASSERT_TRUE(list->capacity >= list->size)
466
28bc3e10ac28 add special linked list implementation for storing pointers
Mike Becker <universe@uap-core.de>
parents: 460
diff changeset
681 CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 47)
28bc3e10ac28 add special linked list implementation for storing pointers
Mike Becker <universe@uap-core.de>
parents: 460
diff changeset
682 CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 13)
459
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
683
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
684 CU_ASSERT_EQUAL(cxListRemove(list, 1), 0)
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
685 CU_ASSERT_EQUAL(list->size, 1)
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
686 CU_ASSERT_TRUE(list->capacity >= list->size)
466
28bc3e10ac28 add special linked list implementation for storing pointers
Mike Becker <universe@uap-core.de>
parents: 460
diff changeset
687 CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 47)
459
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
688
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
689 CU_ASSERT_EQUAL(cxListRemove(list, 0), 0)
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
690 CU_ASSERT_EQUAL(list->size, 0)
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
691 CU_ASSERT_TRUE(list->capacity >= list->size)
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
692
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
693 CU_ASSERT_NOT_EQUAL(cxListRemove(list, 0), 0)
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
694
503
a89857072ace add new destructor API and apply it to CxList
Mike Becker <universe@uap-core.de>
parents: 500
diff changeset
695 cxListDestroy(list);
459
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
696 }
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
697
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
698 void test_hl_linked_list_remove(void) {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
699 int data[] = {5, 47, 42, 13};
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
700 CxList *list = cxLinkedListFromArray(cxTestingAllocator, cmp_int,
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
701 sizeof(int), 4, data);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
702 verify_hl_linked_list_remove(list);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
703 }
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
704
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
705 void test_hl_ptr_linked_list_remove(void) {
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
706 int a = 5, b = 47, c = 42, d = 13;
500
eb9e7bd40a8e do not hide pointers behind typedefs
Mike Becker <universe@uap-core.de>
parents: 499
diff changeset
707 CxList *list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int);
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
708 cxListAdd(list, &a);
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
709 cxListAdd(list, &b);
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
710 cxListAdd(list, &c);
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
711 cxListAdd(list, &d);
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
712 verify_hl_linked_list_remove(list);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
713 }
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
714
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
715 static void verify_hl_linked_list_at(
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
716 CxList *list,
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
717 size_t len,
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
718 int *data
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
719 ) {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
720 CU_ASSERT_EQUAL(list->size, len)
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
721 cx_for_n (i, len) CU_ASSERT_EQUAL(*(int *) cxListAt(list, i), data[i])
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
722 CU_ASSERT_PTR_NULL(cxListAt(list, len))
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
723 free(data);
503
a89857072ace add new destructor API and apply it to CxList
Mike Becker <universe@uap-core.de>
parents: 500
diff changeset
724 cxListDestroy(list);
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
725 }
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
726
479
a29bdd703e02 add linked list tests for cxListAt()
Mike Becker <universe@uap-core.de>
parents: 478
diff changeset
727 void test_hl_linked_list_at(void) {
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
728 size_t len = 100;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
729 int *data = create_ints_test_data(len);
500
eb9e7bd40a8e do not hide pointers behind typedefs
Mike Becker <universe@uap-core.de>
parents: 499
diff changeset
730 CxList *list = cxLinkedListFromArray(cxTestingAllocator, cmp_int,
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
731 sizeof(int), len, data);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
732 verify_hl_linked_list_at(list, len, data);
479
a29bdd703e02 add linked list tests for cxListAt()
Mike Becker <universe@uap-core.de>
parents: 478
diff changeset
733 }
a29bdd703e02 add linked list tests for cxListAt()
Mike Becker <universe@uap-core.de>
parents: 478
diff changeset
734
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
735 void test_hl_ptr_linked_list_at(void) {
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
736 size_t len = 250;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
737 int *data = create_ints_test_data(len);
500
eb9e7bd40a8e do not hide pointers behind typedefs
Mike Becker <universe@uap-core.de>
parents: 499
diff changeset
738 CxList *list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int);
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
739 cx_for_n (i, len) cxListAdd(list, &data[i]);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
740 verify_hl_linked_list_at(list, len, data);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
741 }
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
742
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
743 static void verify_hl_linked_list_find(
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
744 CxList *list,
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
745 size_t len,
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
746 int *data
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
747 ) {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
748 cx_for_n (attempt, 100) {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
749 size_t exp = rand() % len; // NOLINT(cert-msc50-cpp)
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
750 int val = data[exp];
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
751 cx_for_n (i, exp) {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
752 if (data[i] == val) {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
753 exp = i;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
754 break;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
755 }
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
756 }
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
757 CU_ASSERT_EQUAL(cxListFind(list, &val), exp)
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
758 }
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
759 free(data);
503
a89857072ace add new destructor API and apply it to CxList
Mike Becker <universe@uap-core.de>
parents: 500
diff changeset
760 cxListDestroy(list);
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
761 }
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
762
459
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
763 void test_hl_linked_list_find(void) {
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
764 size_t len = 100;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
765 int *data = create_ints_test_data(len);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
766 CxList *list = cxLinkedListFromArray(cxTestingAllocator, cmp_int, sizeof(int), len, data);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
767 verify_hl_linked_list_find(list, len, data);
459
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
768 }
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
769
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
770 void test_hl_ptr_linked_list_find(void) {
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
771 size_t len = 250;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
772 int *data = create_ints_test_data(len);
500
eb9e7bd40a8e do not hide pointers behind typedefs
Mike Becker <universe@uap-core.de>
parents: 499
diff changeset
773 CxList *list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int);
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
774 cx_for_n (i, len) cxListAdd(list, &data[i]);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
775 verify_hl_linked_list_find(list, len, data);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
776 }
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
777
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
778 struct sort_test_data {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
779 size_t len;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
780 int *data;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
781 int *sorted;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
782 };
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
783
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
784 static struct sort_test_data create_sort_test_data(void) {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
785 size_t len = 1000;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
786 int *data = create_ints_test_data(len);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
787 int *sorted = malloc(sizeof(int) * len);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
788 memcpy(sorted, data, sizeof(int) * len);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
789 qsort(sorted, len, sizeof(int), cmp_int);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
790 struct sort_test_data s = {len, data, sorted};
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
791 return s;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
792 }
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
793
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
794 static void free_sort_test_data(struct sort_test_data s) {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
795 free(s.data);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
796 free(s.sorted);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
797 }
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
798
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
799 static void verify_hl_linked_list_sort(
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
800 CxList *list,
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
801 struct sort_test_data td
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
802 ) {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
803 cxListSort(list);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
804 cx_for_n (i, td.len) CU_ASSERT_EQUAL_FATAL(*(int *) cxListAt(list, i), td.sorted[i])
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
805 free_sort_test_data(td);
503
a89857072ace add new destructor API and apply it to CxList
Mike Becker <universe@uap-core.de>
parents: 500
diff changeset
806 cxListDestroy(list);
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
807 }
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
808
469
0458bff0b1cd add high level list sort and inlines method invocation functions
Mike Becker <universe@uap-core.de>
parents: 468
diff changeset
809 void test_hl_linked_list_sort(void) {
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
810 struct sort_test_data td = create_sort_test_data();
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
811 CxList *list = cxLinkedListFromArray(cxTestingAllocator, cmp_int, sizeof(int), td.len, td.data);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
812 verify_hl_linked_list_sort(list, td);
469
0458bff0b1cd add high level list sort and inlines method invocation functions
Mike Becker <universe@uap-core.de>
parents: 468
diff changeset
813 }
0458bff0b1cd add high level list sort and inlines method invocation functions
Mike Becker <universe@uap-core.de>
parents: 468
diff changeset
814
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
815 void test_hl_ptr_linked_list_sort(void) {
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
816 struct sort_test_data td = create_sort_test_data();
500
eb9e7bd40a8e do not hide pointers behind typedefs
Mike Becker <universe@uap-core.de>
parents: 499
diff changeset
817 CxList *list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int);
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
818 cx_for_n (i, td.len) cxListAdd(list, &td.data[i]);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
819 verify_hl_linked_list_sort(list, td);
498
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
820 }
435c9965b2dd reorder the list test functions
Mike Becker <universe@uap-core.de>
parents: 497
diff changeset
821
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
822 void verify_hl_linked_list_iterator(CxList *list) {
494
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
823 int i = 0;
496
1a07e24801a9 add cx_foreach macro
Mike Becker <universe@uap-core.de>
parents: 495
diff changeset
824 CxIterator iter = cxListBegin(list);
497
b182a8b8a1af pointer type must be explicit in cx_foreach macro
Mike Becker <universe@uap-core.de>
parents: 496
diff changeset
825 cx_foreach(int*, x, iter) {
495
2856c74e18ba add the feature to remove items during iteration
Mike Becker <universe@uap-core.de>
parents: 494
diff changeset
826 CU_ASSERT_EQUAL(iter.index, (size_t) (i + 1) / 2)
494
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
827 CU_ASSERT_EQUAL(*x, i)
497
b182a8b8a1af pointer type must be explicit in cx_foreach macro
Mike Becker <universe@uap-core.de>
parents: 496
diff changeset
828 if (*x % 2 == 1) iter.remove = true;
494
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
829 i++;
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
830 }
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
831 CU_ASSERT_EQUAL(i, 10)
495
2856c74e18ba add the feature to remove items during iteration
Mike Becker <universe@uap-core.de>
parents: 494
diff changeset
832 CU_ASSERT_EQUAL_FATAL(list->size, 5)
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
833 cx_for_n(j, 5) CU_ASSERT_EQUAL(*(int *) cxListAt(list, j), (int) j * 2)
503
a89857072ace add new destructor API and apply it to CxList
Mike Becker <universe@uap-core.de>
parents: 500
diff changeset
834 cxListDestroy(list);
494
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
835 }
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
836
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
837 void test_hl_linked_list_iterator(void) {
500
eb9e7bd40a8e do not hide pointers behind typedefs
Mike Becker <universe@uap-core.de>
parents: 499
diff changeset
838 CxList *list = cxLinkedListCreate(cxTestingAllocator, cmp_int, sizeof(int));
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
839 cx_for_n (i, 10) cxListAdd(list, &i);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
840 verify_hl_linked_list_iterator(list);
494
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
841 }
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
842
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
843 void test_hl_ptr_linked_list_iterator(void) {
500
eb9e7bd40a8e do not hide pointers behind typedefs
Mike Becker <universe@uap-core.de>
parents: 499
diff changeset
844 CxList *list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int);
494
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
845 int data[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
846 cx_for_n (i, 10) cxListAdd(list, &data[i]);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
847 verify_hl_linked_list_iterator(list);
494
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
848 }
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
849
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
850 static void verify_hl_linked_list_insert_via_iterator(
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
851 CxList *list,
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
852 int *testdata
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
853 ) {
499
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
854 CxIterator iter = cxListIterator(list, 2);
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
855 CU_ASSERT_EQUAL(iter.index, 2)
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
856 CU_ASSERT_EQUAL(*(int *) cxIteratorCurrent(&iter), 2)
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
857 size_t i = 4;
499
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
858
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
859 ++i;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
860 cxListInsertAfter(&iter, &testdata[i]);
499
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
861 CU_ASSERT_EQUAL(iter.index, 2)
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
862 CU_ASSERT_EQUAL(*(int *) cxIteratorCurrent(&iter), 2)
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
863 ++i;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
864 cxListInsertBefore(&iter, &testdata[i]);
499
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
865 CU_ASSERT_EQUAL(iter.index, 3)
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
866 CU_ASSERT_EQUAL(*(int *) cxIteratorCurrent(&iter), 2)
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
867
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
868 iter = cxListBegin(list);
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
869 ++i;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
870 cxListInsertBefore(&iter, &testdata[i]);
499
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
871 CU_ASSERT_EQUAL(iter.index, 1)
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
872 CU_ASSERT_EQUAL(*(int *) cxIteratorCurrent(&iter), 0)
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
873 iter = cxListIterator(list, list->size);
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
874 ++i;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
875 cxListInsertBefore(&iter, &testdata[i]);
499
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
876 CU_ASSERT_EQUAL(iter.index, 9)
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
877 CU_ASSERT_FALSE(cxIteratorValid(&iter))
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
878 iter = cxListIterator(list, list->size);
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
879 ++i;
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
880 cxListInsertAfter(&iter, &testdata[i]);
499
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
881 CU_ASSERT_EQUAL(iter.index, 10)
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
882 CU_ASSERT_FALSE(cxIteratorValid(&iter))
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
883
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
884 int expdata[] = {30, 0, 1, 20, 2, 10, 3, 4, 40, 50};
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
885 cx_for_n (j, 10) CU_ASSERT_EQUAL(*(int *) cxListAt(list, j), expdata[j])
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
886 cxListDestroy(list);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
887 }
499
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
888
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
889 void test_hl_linked_list_insert_via_iterator(void) {
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
890 int testdata[] = {0, 1, 2, 3, 4, 10, 20, 30, 40, 50};
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
891 // only add the first five elements, the remaining five will be inserted
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
892 CxList *list = cxLinkedListFromArray(cxTestingAllocator, cmp_int, sizeof(int), 5, testdata);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
893 verify_hl_linked_list_insert_via_iterator(list, testdata);
499
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
894 }
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
895
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
896 void test_hl_ptr_linked_list_insert_via_iterator(void) {
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
897 int testdata[] = {0, 1, 2, 3, 4, 10, 20, 30, 40, 50};
500
eb9e7bd40a8e do not hide pointers behind typedefs
Mike Becker <universe@uap-core.de>
parents: 499
diff changeset
898 CxList *list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int);
509
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
899 // only add the first five elements, the remaining five will be inserted
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
900 cx_for_n (i, 5) cxListAdd(list, &testdata[i]);
0d3c6075f82c #129 - remove test code duplication
Mike Becker <universe@uap-core.de>
parents: 507
diff changeset
901 verify_hl_linked_list_insert_via_iterator(list, testdata);
506
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
902 }
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
903
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
904 static void test_setup_allocator(void) {
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
905 cxTestingAllocatorReset();
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
906 }
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
907
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
908 static void test_verify_allocator(void) {
499
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
909 CU_ASSERT_TRUE(cxTestingAllocatorVerify())
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
910 }
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
911
390
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
912 int main() {
411
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
913 CU_pSuite suite = NULL;
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
914
411
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
915 if (CUE_SUCCESS != CU_initialize_registry()) {
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
916 return CU_get_error();
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
917 }
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
918
459
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
919 suite = CU_add_suite("low level linked list", NULL, NULL);
449
68ad5750ba6b minor code changes
Mike Becker <universe@uap-core.de>
parents: 446
diff changeset
920
482
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
921 cu_add_test(suite, test_linked_list_link_unlink);
455
8168e16cd1e9 change test names
Mike Becker <universe@uap-core.de>
parents: 453
diff changeset
922 cu_add_test(suite, test_linked_list_at);
487
4bd19279778c use c99 bool + add test for low level find
Mike Becker <universe@uap-core.de>
parents: 486
diff changeset
923 cu_add_test(suite, test_linked_list_find);
486
d7ca126eab7f add cx_linked_list_compare() and simplifies some tests
Mike Becker <universe@uap-core.de>
parents: 482
diff changeset
924 cu_add_test(suite, test_linked_list_compare);
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
925 cu_add_test(suite, test_linked_list_prepend);
455
8168e16cd1e9 change test names
Mike Becker <universe@uap-core.de>
parents: 453
diff changeset
926 cu_add_test(suite, test_linked_list_add);
482
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
927 cu_add_test(suite, test_linked_list_insert);
0d998f19d130 add tests for the new low level functions
Mike Becker <universe@uap-core.de>
parents: 479
diff changeset
928 cu_add_test(suite, test_linked_list_insert_chain);
475
31bf97fdbf71 add cx_linked_list_first() + cx_linked_list_prepend()
Mike Becker <universe@uap-core.de>
parents: 474
diff changeset
929 cu_add_test(suite, test_linked_list_first);
456
227c2eabbef8 change cx_linked_list_last() and add a test for it
Mike Becker <universe@uap-core.de>
parents: 455
diff changeset
930 cu_add_test(suite, test_linked_list_last);
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
931 cu_add_test(suite, test_linked_list_prev);
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
932 cu_add_test(suite, test_linked_list_remove);
468
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
933 cu_add_test(suite, test_linked_list_size);
75ae1dccd101 add cx_linked_list_sort()
Mike Becker <universe@uap-core.de>
parents: 466
diff changeset
934 cu_add_test(suite, test_linked_list_sort);
473
1bd4b8c28722 add cx_linked_list_{prev, remove, reverse}
Mike Becker <universe@uap-core.de>
parents: 469
diff changeset
935 cu_add_test(suite, test_linked_list_reverse);
455
8168e16cd1e9 change test names
Mike Becker <universe@uap-core.de>
parents: 453
diff changeset
936
506
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
937 suite = CU_add_suite_with_setup_and_teardown(
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
938 "high level linked list", NULL, NULL,
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
939 test_setup_allocator, test_verify_allocator);
455
8168e16cd1e9 change test names
Mike Becker <universe@uap-core.de>
parents: 453
diff changeset
940
456
227c2eabbef8 change cx_linked_list_last() and add a test for it
Mike Becker <universe@uap-core.de>
parents: 455
diff changeset
941 cu_add_test(suite, test_hl_linked_list_create);
488
9138acaa494b add cxLinkedListFromArray() and cxListCompare()
Mike Becker <universe@uap-core.de>
parents: 487
diff changeset
942 cu_add_test(suite, test_hl_linked_list_from_array);
456
227c2eabbef8 change cx_linked_list_last() and add a test for it
Mike Becker <universe@uap-core.de>
parents: 455
diff changeset
943 cu_add_test(suite, test_hl_linked_list_add);
227c2eabbef8 change cx_linked_list_last() and add a test for it
Mike Becker <universe@uap-core.de>
parents: 455
diff changeset
944 cu_add_test(suite, test_hl_linked_list_insert);
227c2eabbef8 change cx_linked_list_last() and add a test for it
Mike Becker <universe@uap-core.de>
parents: 455
diff changeset
945 cu_add_test(suite, test_hl_linked_list_remove);
479
a29bdd703e02 add linked list tests for cxListAt()
Mike Becker <universe@uap-core.de>
parents: 478
diff changeset
946 cu_add_test(suite, test_hl_linked_list_at);
459
c0e2e9f83399 add tests for high level functions
Mike Becker <universe@uap-core.de>
parents: 456
diff changeset
947 cu_add_test(suite, test_hl_linked_list_find);
469
0458bff0b1cd add high level list sort and inlines method invocation functions
Mike Becker <universe@uap-core.de>
parents: 468
diff changeset
948 cu_add_test(suite, test_hl_linked_list_sort);
494
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
949 cu_add_test(suite, test_hl_linked_list_iterator);
499
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
950 cu_add_test(suite, test_hl_linked_list_insert_via_iterator);
413
0f4aa9fc75d9 perform array and list tests in the same test binary (use the same assertions, later)
Mike Becker <universe@uap-core.de>
parents: 412
diff changeset
951
506
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
952 suite = CU_add_suite_with_setup_and_teardown(
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
953 "high level pointer linked list", NULL, NULL,
18782bbe3607 add setup and teardown functions to test_list.c
Mike Becker <universe@uap-core.de>
parents: 503
diff changeset
954 test_setup_allocator, test_verify_allocator);
466
28bc3e10ac28 add special linked list implementation for storing pointers
Mike Becker <universe@uap-core.de>
parents: 460
diff changeset
955
28bc3e10ac28 add special linked list implementation for storing pointers
Mike Becker <universe@uap-core.de>
parents: 460
diff changeset
956 cu_add_test(suite, test_hl_ptr_linked_list_create);
28bc3e10ac28 add special linked list implementation for storing pointers
Mike Becker <universe@uap-core.de>
parents: 460
diff changeset
957 cu_add_test(suite, test_hl_ptr_linked_list_add);
28bc3e10ac28 add special linked list implementation for storing pointers
Mike Becker <universe@uap-core.de>
parents: 460
diff changeset
958 cu_add_test(suite, test_hl_ptr_linked_list_insert);
28bc3e10ac28 add special linked list implementation for storing pointers
Mike Becker <universe@uap-core.de>
parents: 460
diff changeset
959 cu_add_test(suite, test_hl_ptr_linked_list_remove);
479
a29bdd703e02 add linked list tests for cxListAt()
Mike Becker <universe@uap-core.de>
parents: 478
diff changeset
960 cu_add_test(suite, test_hl_ptr_linked_list_at);
466
28bc3e10ac28 add special linked list implementation for storing pointers
Mike Becker <universe@uap-core.de>
parents: 460
diff changeset
961 cu_add_test(suite, test_hl_ptr_linked_list_find);
469
0458bff0b1cd add high level list sort and inlines method invocation functions
Mike Becker <universe@uap-core.de>
parents: 468
diff changeset
962 cu_add_test(suite, test_hl_ptr_linked_list_sort);
494
6ce8cfa10a96 add iterator interface + linked list iterator
Mike Becker <universe@uap-core.de>
parents: 492
diff changeset
963 cu_add_test(suite, test_hl_ptr_linked_list_iterator);
499
3dc9075df822 add cxListInsertAfter() and cxListInsertBefore()
Mike Becker <universe@uap-core.de>
parents: 498
diff changeset
964 cu_add_test(suite, test_hl_ptr_linked_list_insert_via_iterator);
466
28bc3e10ac28 add special linked list implementation for storing pointers
Mike Becker <universe@uap-core.de>
parents: 460
diff changeset
965
411
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
966 CU_basic_set_mode(UCX_CU_BRM);
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
967
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
968 int exitcode;
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
969 if (CU_basic_run_tests()) {
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
970 exitcode = CU_get_error();
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
971 } else {
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
972 exitcode = CU_get_number_of_failures() == 0 ? 0 : 1;
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
973 }
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
974 CU_cleanup_registry();
2842f729caab add first test suite to test_linked_list.c
Mike Becker <universe@uap-core.de>
parents: 398
diff changeset
975 return exitcode;
390
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents:
diff changeset
976 }

mercurial