tests/test_list.c

Tue, 23 Sep 2025 20:19:31 +0200

author
Mike Becker <universe@uap-core.de>
date
Tue, 23 Sep 2025 20:19:31 +0200
changeset 1388
edc34e904fe3
parent 1387
9bdd053820b7
permissions
-rw-r--r--

add tests for creating iterators with NULL lists or maps

798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 /*
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
3 *
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
4 * Copyright 2023 Mike Becker, Olaf Wintermann All rights reserved.
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
5 *
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 *
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
11 *
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
15 *
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
7644da6e2d35 migrate low level linked list tests - relates to #342
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
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
27 */
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
28
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
29 #include "cx/test.h"
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
30 #include "util_allocator.h"
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
31 #include "cx/compare.h"
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
32
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
33 #include "cx/array_list.h"
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
34 #include "cx/linked_list.h"
1350
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
35 #include "cx/kv_list.h"
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
36
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
37 #include <stdarg.h>
998
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
38 #include <errno.h>
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
39
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
40 CX_TEST(test_array_add) {
986
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
41 CX_ARRAY_DECLARE(int, arr);
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
42 arr = cxCallocDefault(5, sizeof(int));
986
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
43 arr[0] = 2;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
44 arr[1] = 3;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
45 arr[2] = 5;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
46 arr[3] = 7;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
47 arr[4] = 11;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
48 arr_size = 3;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
49 arr_capacity = 5;
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
50 int elem = 8, elem2 = 47;
986
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
51 int result;
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
52 CX_TEST_DO {
986
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
53 result = cx_array_simple_add(arr, elem);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
54 CX_TEST_ASSERT(result == 0);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
55 CX_TEST_ASSERT(arr[0] == 2);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
56 CX_TEST_ASSERT(arr[1] == 3);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
57 CX_TEST_ASSERT(arr[2] == 5);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
58 CX_TEST_ASSERT(arr[3] == 8);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
59 CX_TEST_ASSERT(arr[4] == 11);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
60 CX_TEST_ASSERT(arr_size == 4);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
61 CX_TEST_ASSERT(arr_capacity == 5);
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
62
986
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
63 arr_size = 5;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
64 result = cx_array_simple_add(arr, elem2);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
65 CX_TEST_ASSERT(result == 0);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
66 CX_TEST_ASSERT(arr[0] == 2);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
67 CX_TEST_ASSERT(arr[1] == 3);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
68 CX_TEST_ASSERT(arr[2] == 5);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
69 CX_TEST_ASSERT(arr[3] == 8);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
70 CX_TEST_ASSERT(arr[4] == 11);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
71 CX_TEST_ASSERT(arr[5] == 47);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
72 CX_TEST_ASSERT(arr_size == 6);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
73 CX_TEST_ASSERT(arr_capacity >= 6);
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
74 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
75 cxFreeDefault(arr);
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
76 }
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
77
998
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
78 CX_TEST(test_array_add8) {
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
79 CX_ARRAY_DECLARE_SIZED(int, arr, uint8_t);
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
80 arr = cxCallocDefault(5, sizeof(int));
998
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
81 arr[0] = 2;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
82 arr[1] = 3;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
83 arr[2] = 5;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
84 arr[3] = 7;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
85 arr[4] = 11;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
86 arr_size = 3;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
87 arr_capacity = 5;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
88 int elem = 8, elem2 = 47;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
89 int result;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
90 CX_TEST_DO {
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
91 result = cx_array_simple_add(arr, elem);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
92 CX_TEST_ASSERT(result == 0);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
93 CX_TEST_ASSERT(arr[0] == 2);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
94 CX_TEST_ASSERT(arr[1] == 3);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
95 CX_TEST_ASSERT(arr[2] == 5);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
96 CX_TEST_ASSERT(arr[3] == 8);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
97 CX_TEST_ASSERT(arr[4] == 11);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
98 CX_TEST_ASSERT(arr_size == 4);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
99 CX_TEST_ASSERT(arr_capacity == 5);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
100
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
101 arr_size = 5;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
102 result = cx_array_simple_add(arr, elem2);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
103 CX_TEST_ASSERT(result == 0);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
104 CX_TEST_ASSERT(arr[0] == 2);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
105 CX_TEST_ASSERT(arr[1] == 3);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
106 CX_TEST_ASSERT(arr[2] == 5);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
107 CX_TEST_ASSERT(arr[3] == 8);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
108 CX_TEST_ASSERT(arr[4] == 11);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
109 CX_TEST_ASSERT(arr[5] == 47);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
110 CX_TEST_ASSERT(arr_size == 6);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
111 CX_TEST_ASSERT(arr_capacity >= 6);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
112
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
113 result = cx_array_simple_copy(arr, 260, &elem, 1);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
114 CX_TEST_ASSERT(result != 0);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
115 CX_TEST_ASSERT(errno == EOVERFLOW);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
116 CX_TEST_ASSERT(arr_size == 6);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
117 CX_TEST_ASSERT(arr_capacity < 128);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
118 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
119 cxFreeDefault(arr);
998
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
120 }
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
121
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
122 CX_TEST(test_array_copy_unsupported_width) {
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
123 CX_ARRAY_DECLARE_SIZED(int, arr, uint16_t);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
124 cx_array_initialize(arr, 16);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
125 int result;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
126 CX_TEST_DO {
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
127 int elem = 5;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
128 result = cx_array_copy(
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
129 (void **) &(arr),
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
130 &(arr_size),
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
131 &(arr_capacity),
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
132 12, // unsupported width
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
133 5,
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
134 &elem, sizeof(int),
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
135 1,
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
136 cx_array_default_reallocator
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
137 );
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
138 CX_TEST_ASSERT(result != 0);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
139 CX_TEST_ASSERT(errno == EINVAL);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
140 CX_TEST_ASSERT(arr_size == 0);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
141 CX_TEST_ASSERT(arr_capacity == 16);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
142 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
143 cxFreeDefault(arr);
998
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
144 }
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
145
999
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
146 CX_TEST(test_array_reserve) {
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
147 CX_ARRAY_DECLARE_SIZED(int, arr, uint16_t);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
148 cx_array_initialize(arr, 16);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
149 arr_size = 5;
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
150 int result;
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
151 CX_TEST_DO {
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
152 result = cx_array_simple_reserve(arr, 3);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
153 CX_TEST_ASSERT(result == 0);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
154 CX_TEST_ASSERT(arr_size == 5);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
155 CX_TEST_ASSERT(arr_capacity == 16);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
156
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
157 result = cx_array_simple_reserve(arr, 20);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
158 CX_TEST_ASSERT(result == 0);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
159 CX_TEST_ASSERT(arr_size == 5);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
160 CX_TEST_ASSERT(arr_capacity >= 25);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
161 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
162 cxFreeDefault(arr);
999
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
163 }
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
164
883
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
165 CX_TEST(test_array_insert_sorted) {
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
166 int d1 = 50;
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
167 int d2 = 80;
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
168 int d3 = 60;
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
169 int d4 = 40;
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
170 int d5 = 70;
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
171 int d6a[6] = {52, 54, 56, 62, 64, 75};
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
172 int d7a[6] = {51, 57, 58, 65, 77, 78};
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
173 int d8 = 90;
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
174 int expected[18] = {
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
175 40, 50, 51, 52, 54, 56, 57, 58, 60,
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
176 62, 64, 65, 70, 75, 77, 78, 80, 90
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
177 };
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
178
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
179 CX_ARRAY_DECLARE(int, array);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
180 cx_array_initialize(array, 4);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
181
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
182 CX_TEST_DO {
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
183 CX_TEST_ASSERT(0 == cx_array_simple_add_sorted(array, d1, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
184 CX_TEST_ASSERT(array_size == 1);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
185 CX_TEST_ASSERT(array_capacity == 4);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
186 CX_TEST_ASSERT(0 == cx_array_simple_add_sorted(array, d2, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
187 CX_TEST_ASSERT(array_size == 2);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
188 CX_TEST_ASSERT(array_capacity == 4);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
189 CX_TEST_ASSERT(0 == cx_array_simple_add_sorted(array, d3, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
190 CX_TEST_ASSERT(array_size == 3);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
191 CX_TEST_ASSERT(array_capacity == 4);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
192 CX_TEST_ASSERT(0 == cx_array_simple_add_sorted(array, d4, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
193 CX_TEST_ASSERT(array_size == 4);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
194 CX_TEST_ASSERT(array_capacity == 4);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
195 CX_TEST_ASSERT(0 == cx_array_simple_add_sorted(array, d5, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
196 CX_TEST_ASSERT(array_size == 5);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
197 CX_TEST_ASSERT(array_capacity >= 5);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
198 CX_TEST_ASSERT(0 == cx_array_simple_insert_sorted(array, d6a, 6, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
199 CX_TEST_ASSERT(array_size == 11);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
200 CX_TEST_ASSERT(array_capacity >= 11);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
201 CX_TEST_ASSERT(0 == cx_array_simple_insert_sorted(array, d7a, 6, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
202 CX_TEST_ASSERT(array_size == 17);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
203 CX_TEST_ASSERT(array_capacity >= 17);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
204 CX_TEST_ASSERT(0 == cx_array_simple_add_sorted(array, d8, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
205 CX_TEST_ASSERT(array_size == 18);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
206 CX_TEST_ASSERT(array_capacity >= 18);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
207
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
208 CX_TEST_ASSERT(0 == memcmp(array, expected, 18 * sizeof(int)));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
209 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
210 cxFreeDefault(array);
883
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
211 }
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
212
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
213 CX_TEST(test_array_binary_search) {
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
214 int array[18] = {
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
215 40, 50, 51, 52, 54, 56, 57, 58, 60,
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
216 62, 64, 65, 70, 75, 77, 78, 80, 90
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
217 };
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
218
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
219 CX_TEST_DO {
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
220 for (size_t i = 0; i < 18; i++) {
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
221 CX_TEST_ASSERT(i == cx_array_binary_search(array, 18, sizeof(int), &array[i], cx_cmp_int));
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
222 }
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
223
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
224 int s = 58;
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
225 CX_TEST_ASSERT(7 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
226 CX_TEST_ASSERT(7 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
227 s = 60;
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
228 CX_TEST_ASSERT(8 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
229 CX_TEST_ASSERT(8 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
230 s = 59;
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
231 CX_TEST_ASSERT(7 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
232 CX_TEST_ASSERT(8 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
233 CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int));
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
234 s = 79;
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
235 CX_TEST_ASSERT(15 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
236 CX_TEST_ASSERT(16 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
237 CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int));
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
238 s = 66;
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
239 CX_TEST_ASSERT(11 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
240 CX_TEST_ASSERT(12 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
241 CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int));
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
242 s = 69;
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
243 CX_TEST_ASSERT(11 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
244 CX_TEST_ASSERT(12 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
245 CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int));
885
878a450e79bd fixes incorrect result from cx_array_binary_search() when searched element is smaller than the entire array
Mike Becker <universe@uap-core.de>
parents: 884
diff changeset
246 s = 95;
878a450e79bd fixes incorrect result from cx_array_binary_search() when searched element is smaller than the entire array
Mike Becker <universe@uap-core.de>
parents: 884
diff changeset
247 CX_TEST_ASSERT(17 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
248 CX_TEST_ASSERT(18 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
885
878a450e79bd fixes incorrect result from cx_array_binary_search() when searched element is smaller than the entire array
Mike Becker <universe@uap-core.de>
parents: 884
diff changeset
249 CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int));
878a450e79bd fixes incorrect result from cx_array_binary_search() when searched element is smaller than the entire array
Mike Becker <universe@uap-core.de>
parents: 884
diff changeset
250 s = 30;
878a450e79bd fixes incorrect result from cx_array_binary_search() when searched element is smaller than the entire array
Mike Becker <universe@uap-core.de>
parents: 884
diff changeset
251 CX_TEST_ASSERT(18 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
252 CX_TEST_ASSERT(0 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
885
878a450e79bd fixes incorrect result from cx_array_binary_search() when searched element is smaller than the entire array
Mike Becker <universe@uap-core.de>
parents: 884
diff changeset
253 CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int));
1022
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
254
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
255 // special case - size 0
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
256 s = 40;
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
257 CX_TEST_ASSERT(0 == cx_array_binary_search_inf(array, 0, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
258 CX_TEST_ASSERT(0 == cx_array_binary_search_sup(array, 0, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
259 CX_TEST_ASSERT(0 == cx_array_binary_search(array, 0, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
260
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
261 // special case - size 1, searched element is smaller
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
262 s = 30;
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
263 CX_TEST_ASSERT(1 == cx_array_binary_search_inf(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
264 CX_TEST_ASSERT(0 == cx_array_binary_search_sup(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
265 CX_TEST_ASSERT(1 == cx_array_binary_search(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
266
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
267 // special case - size 1, searched element is larger
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
268 s = 50;
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
269 CX_TEST_ASSERT(0 == cx_array_binary_search_inf(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
270 CX_TEST_ASSERT(1 == cx_array_binary_search_sup(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
271 CX_TEST_ASSERT(1 == cx_array_binary_search(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
272
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
273 // special case - size 1, element matches
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
274 s = 40;
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
275 CX_TEST_ASSERT(0 == cx_array_binary_search_inf(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
276 CX_TEST_ASSERT(0 == cx_array_binary_search_sup(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
277 CX_TEST_ASSERT(0 == cx_array_binary_search(array, 1, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
278 }
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
279 }
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
280
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
281 typedef struct node {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
282 struct node *next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
283 struct node *prev;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
284 int data;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
285 } node;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
286
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
287 static int test_cmp_node(const void *l, const void *r) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
288 const node *left = l;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
289 const node *right = r;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
290 return left->data - right->data;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
291 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
292
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
293 const ptrdiff_t loc_prev = offsetof(struct node, prev);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
294 const ptrdiff_t loc_next = offsetof(struct node, next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
295 const ptrdiff_t loc_data = offsetof(struct node, data);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
296
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
297 static node *create_nodes_test_data(size_t len) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
298 node *begin = calloc(1, sizeof(node));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
299 void *prev = begin;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
300 for (size_t i = 1; i < len; i++) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
301 node *n = calloc(1, sizeof(node));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
302 cx_linked_list_link(prev, n, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
303 prev = n;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
304 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
305 return begin;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
306 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
307
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
308 void assign_nodes_test_data(node *n, ...) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
309 va_list ap;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
310 va_start(ap, n);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
311 while (n != NULL) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
312 n->data = va_arg(ap, int);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
313 n = n->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
314 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
315 va_end(ap);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
316 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
317
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
318 static void destroy_nodes_test_data(node *n) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
319 while (n != NULL) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
320 void *next = n->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
321 free(n);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
322 n = next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
323 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
324 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
325
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
326 static int *int_test_data(size_t len) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
327 int *data = malloc(len*sizeof(int));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
328 for (size_t i = 0 ; i < len ; i++) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
329 data[i] = rand(); // NOLINT(*-msc50-cpp)
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
330 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
331 return data;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
332 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
333
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
334 CX_TEST(test_linked_list_link_unlink) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
335 node a = {0}, b = {0}, c = {0};
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
336
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
337 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
338 cx_linked_list_link(&a, &b, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
339 CX_TEST_ASSERT(a.prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
340 CX_TEST_ASSERT(a.next == &b);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
341 CX_TEST_ASSERT(b.prev == &a);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
342 CX_TEST_ASSERT(b.next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
343
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
344 cx_linked_list_unlink(&a, &b, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
345 CX_TEST_ASSERT(a.prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
346 CX_TEST_ASSERT(a.next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
347 CX_TEST_ASSERT(b.prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
348 CX_TEST_ASSERT(b.next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
349
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
350 cx_linked_list_link(&b, &c, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
351 cx_linked_list_link(&a, &b, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
352 cx_linked_list_unlink(&b, &c, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
353 CX_TEST_ASSERT(a.prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
354 CX_TEST_ASSERT(a.next == &b);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
355 CX_TEST_ASSERT(b.prev == &a);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
356 CX_TEST_ASSERT(b.next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
357 CX_TEST_ASSERT(c.prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
358 CX_TEST_ASSERT(c.next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
359 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
360 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
361
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
362 CX_TEST(test_linked_list_at) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
363 node a = {0}, b = {0}, c = {0}, d = {0};
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
364
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
365 cx_linked_list_link(&a, &b, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
366 cx_linked_list_link(&b, &c, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
367 cx_linked_list_link(&c, &d, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
368
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
369 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
370 CX_TEST_ASSERT(cx_linked_list_at(&a, 0, loc_next, 0) == &a);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
371 CX_TEST_ASSERT(cx_linked_list_at(&a, 0, loc_next, 1) == &b);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
372 CX_TEST_ASSERT(cx_linked_list_at(&a, 0, loc_next, 2) == &c);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
373 CX_TEST_ASSERT(cx_linked_list_at(&a, 0, loc_next, 3) == &d);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
374 CX_TEST_ASSERT(cx_linked_list_at(&a, 0, loc_next, 4) == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
375 CX_TEST_ASSERT(cx_linked_list_at(&b, 1, loc_prev, 0) == &a);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
376 CX_TEST_ASSERT(cx_linked_list_at(&b, 1, loc_next, 1) == &b);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
377 CX_TEST_ASSERT(cx_linked_list_at(&b, 1, loc_next, 2) == &c);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
378 CX_TEST_ASSERT(cx_linked_list_at(&b, 1, loc_next, 3) == &d);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
379 CX_TEST_ASSERT(cx_linked_list_at(&b, 1, loc_next, 4) == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
380 CX_TEST_ASSERT(cx_linked_list_at(&d, 3, loc_prev, 0) == &a);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
381 CX_TEST_ASSERT(cx_linked_list_at(&d, 3, loc_prev, 1) == &b);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
382 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
383 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
384
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
385 CX_TEST(test_linked_list_find) {
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
386 node *list = create_nodes_test_data(4);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
387 assign_nodes_test_data(list, 2, 4, 6, 8);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
388 CX_TEST_DO {
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
389 size_t i = 10;
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
390 int s;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
391 s = 2;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
392 node *n = list;
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
393 CX_TEST_ASSERT(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s, &i) == n);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
394 CX_TEST_ASSERT(i == 0);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
395 n = n->next;
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
396 s = 4;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
397 CX_TEST_ASSERT(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s, &i) == n);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
398 CX_TEST_ASSERT(i == 1);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
399 n = n->next;
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
400 s = 6;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
401 CX_TEST_ASSERT(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s, &i) == n);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
402 CX_TEST_ASSERT(i == 2);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
403 n = n->next;
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
404 s = 8;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
405 CX_TEST_ASSERT(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s, &i) == n);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
406 CX_TEST_ASSERT(i == 3);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
407 s = 10;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
408 CX_TEST_ASSERT(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s, &i) == NULL);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
409 s = -2;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
410 CX_TEST_ASSERT(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s, &i) == NULL);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
411 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
412 destroy_nodes_test_data(list);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
413 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
414
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
415 CX_TEST(test_linked_list_compare) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
416 void *la = create_nodes_test_data(4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
417 void *lb = create_nodes_test_data(3);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
418 void *lc = create_nodes_test_data(4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
419 assign_nodes_test_data(la, 2, 4, 6, 8);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
420 assign_nodes_test_data(lb, 2, 4, 6);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
421 assign_nodes_test_data(lc, 2, 4, 6, 9);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
422 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
423 CX_TEST_ASSERT(cx_linked_list_compare(la, lb, loc_next, loc_data, cx_cmp_int) > 0);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
424 CX_TEST_ASSERT(cx_linked_list_compare(lb, la, loc_next, loc_data, cx_cmp_int) < 0);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
425 CX_TEST_ASSERT(cx_linked_list_compare(lc, la, loc_next, loc_data, cx_cmp_int) > 0);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
426 CX_TEST_ASSERT(cx_linked_list_compare(la, lc, loc_next, loc_data, cx_cmp_int) < 0);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
427 CX_TEST_ASSERT(cx_linked_list_compare(la, la, loc_next, loc_data, cx_cmp_int) == 0);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
428 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
429 destroy_nodes_test_data(la);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
430 destroy_nodes_test_data(lb);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
431 destroy_nodes_test_data(lc);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
432 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
433
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
434 CX_TEST(test_linked_list_add) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
435 node nodes[4];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
436 void *begin, *end;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
437 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
438 // test with begin, end / prev, next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
439 memset(nodes, 0, sizeof(node)*4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
440 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
441
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
442 cx_linked_list_add(&begin, &end, loc_prev, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
443 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
444 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
445 CX_TEST_ASSERT(nodes[0].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
446 CX_TEST_ASSERT(nodes[0].next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
447
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
448 cx_linked_list_add(&begin, &end, loc_prev, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
449 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
450 CX_TEST_ASSERT(end == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
451 CX_TEST_ASSERT(nodes[0].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
452 CX_TEST_ASSERT(nodes[1].prev == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
453
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
454 // test with begin only / prev, next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
455 memset(nodes, 0, sizeof(node)*4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
456 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
457
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
458 cx_linked_list_add(&begin, NULL, loc_prev, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
459 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
460 cx_linked_list_add(&begin, NULL, loc_prev, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
461 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
462 CX_TEST_ASSERT(nodes[0].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
463 CX_TEST_ASSERT(nodes[1].prev == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
464
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
465 cx_linked_list_add(&begin, NULL, loc_prev, loc_next, &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
466 CX_TEST_ASSERT(nodes[1].next == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
467 CX_TEST_ASSERT(nodes[2].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
468
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
469 // test with end only / prev, next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
470 memset(nodes, 0, sizeof(node)*4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
471 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
472
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
473 cx_linked_list_add(NULL, &end, loc_prev, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
474 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
475 cx_linked_list_add(NULL, &end, loc_prev, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
476 CX_TEST_ASSERT(end == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
477 CX_TEST_ASSERT(nodes[0].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
478 CX_TEST_ASSERT(nodes[1].prev == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
479
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
480 cx_linked_list_add(NULL, &end, loc_prev, loc_next, &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
481 CX_TEST_ASSERT(end == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
482 CX_TEST_ASSERT(nodes[1].next == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
483 CX_TEST_ASSERT(nodes[2].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
484
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
485 // test with begin, end / next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
486 memset(nodes, 0, sizeof(node)*4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
487 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
488
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
489 cx_linked_list_add(&begin, &end, -1, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
490 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
491 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
492 cx_linked_list_add(&begin, &end, -1, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
493 CX_TEST_ASSERT(end == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
494 CX_TEST_ASSERT(nodes[0].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
495 CX_TEST_ASSERT(nodes[1].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
496 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
497 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
498
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
499 CX_TEST(test_linked_list_prepend) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
500 node nodes[4];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
501 void *begin, *end;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
502 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
503 // test with begin, end / prev, next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
504 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
505 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
506
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
507 cx_linked_list_prepend(&begin, &end, loc_prev, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
508 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
509 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
510 CX_TEST_ASSERT(nodes[0].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
511 CX_TEST_ASSERT(nodes[0].next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
512
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
513 cx_linked_list_prepend(&begin, &end, loc_prev, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
514 CX_TEST_ASSERT(begin == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
515 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
516 CX_TEST_ASSERT(nodes[1].next == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
517 CX_TEST_ASSERT(nodes[0].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
518
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
519 // test with begin only / prev, next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
520 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
521 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
522
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
523 cx_linked_list_prepend(&begin, NULL, loc_prev, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
524 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
525 cx_linked_list_prepend(&begin, NULL, loc_prev, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
526 CX_TEST_ASSERT(begin == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
527 CX_TEST_ASSERT(nodes[1].next == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
528 CX_TEST_ASSERT(nodes[0].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
529
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
530 cx_linked_list_prepend(&begin, NULL, loc_prev, loc_next, &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
531 CX_TEST_ASSERT(begin == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
532 CX_TEST_ASSERT(nodes[2].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
533 CX_TEST_ASSERT(nodes[1].prev == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
534
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
535 // test with end only / prev, next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
536 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
537 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
538
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
539 cx_linked_list_prepend(NULL, &end, loc_prev, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
540 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
541 cx_linked_list_prepend(NULL, &end, loc_prev, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
542 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
543 CX_TEST_ASSERT(nodes[1].next == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
544 CX_TEST_ASSERT(nodes[0].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
545
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
546 cx_linked_list_prepend(NULL, &end, loc_prev, loc_next, &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
547 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
548 CX_TEST_ASSERT(nodes[2].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
549 CX_TEST_ASSERT(nodes[1].prev == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
550
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
551 // test with begin, end / next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
552 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
553 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
554
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
555 cx_linked_list_prepend(&begin, &end, -1, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
556 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
557 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
558 cx_linked_list_prepend(&begin, &end, -1, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
559 cx_linked_list_prepend(&begin, &end, -1, loc_next, &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
560 CX_TEST_ASSERT(begin == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
561 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
562 CX_TEST_ASSERT(nodes[1].next == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
563 CX_TEST_ASSERT(nodes[2].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
564 CX_TEST_ASSERT(nodes[1].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
565 CX_TEST_ASSERT(nodes[0].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
566 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
567 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
568
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
569 CX_TEST(test_linked_list_insert) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
570 node nodes[4];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
571 void *begin, *end;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
572 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
573 // insert mid list
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
574 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
575 begin = &nodes[0];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
576 end = &nodes[2];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
577
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
578 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
579 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
580
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
581 cx_linked_list_insert(&begin, &end, loc_prev, loc_next, &nodes[1], &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
582 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
583 CX_TEST_ASSERT(end == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
584 CX_TEST_ASSERT(nodes[1].next == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
585 CX_TEST_ASSERT(nodes[2].prev == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
586 CX_TEST_ASSERT(nodes[3].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
587 CX_TEST_ASSERT(nodes[3].next == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
588
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
589 // insert end
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
590 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
591 begin = &nodes[0];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
592 end = &nodes[2];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
593
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
594 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
595 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
596
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
597 cx_linked_list_insert(&begin, &end, loc_prev, loc_next, &nodes[2], &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
598 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
599 CX_TEST_ASSERT(end == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
600 CX_TEST_ASSERT(nodes[2].next == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
601 CX_TEST_ASSERT(nodes[3].prev == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
602 CX_TEST_ASSERT(nodes[3].next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
603
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
604 // insert begin
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
605 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
606 begin = &nodes[0];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
607 end = &nodes[2];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
608
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
609 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
610 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
611
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
612 cx_linked_list_insert(&begin, &end, loc_prev, loc_next, NULL, &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
613 CX_TEST_ASSERT(begin == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
614 CX_TEST_ASSERT(end == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
615 CX_TEST_ASSERT(nodes[0].prev == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
616 CX_TEST_ASSERT(nodes[3].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
617 CX_TEST_ASSERT(nodes[3].next == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
618 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
619 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
620
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
621 CX_TEST(test_linked_list_insert_chain) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
622 node nodes[5];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
623 void *begin, *end;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
624 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
625 // insert mid list
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
626 memset(nodes, 0, sizeof(node) * 5);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
627 begin = &nodes[0]; end = &nodes[2];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
628
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
629 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
630 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
631 cx_linked_list_link(&nodes[3], &nodes[4], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
632
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
633 cx_linked_list_insert_chain(&begin, &end, loc_prev, loc_next, &nodes[1], &nodes[3], NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
634 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
635 CX_TEST_ASSERT(end == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
636 CX_TEST_ASSERT(nodes[1].next == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
637 CX_TEST_ASSERT(nodes[2].prev == &nodes[4]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
638 CX_TEST_ASSERT(nodes[3].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
639 CX_TEST_ASSERT(nodes[4].next == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
640
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
641 // insert end
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
642 memset(nodes, 0, sizeof(node) * 5);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
643 begin = &nodes[0]; end = &nodes[2];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
644
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
645 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
646 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
647 cx_linked_list_link(&nodes[3], &nodes[4], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
648
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
649 cx_linked_list_insert_chain(&begin, &end, loc_prev, loc_next, &nodes[2], &nodes[3], NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
650 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
651 CX_TEST_ASSERT(end == &nodes[4]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
652 CX_TEST_ASSERT(nodes[2].next == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
653 CX_TEST_ASSERT(nodes[3].prev == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
654 CX_TEST_ASSERT(nodes[4].next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
655
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
656 // insert begin
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
657 memset(nodes, 0, sizeof(node) * 5);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
658 begin = &nodes[0]; end = &nodes[2];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
659
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
660 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
661 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
662 cx_linked_list_link(&nodes[3], &nodes[4], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
663
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
664 cx_linked_list_insert_chain(&begin, &end, loc_prev, loc_next, NULL, &nodes[3], NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
665 CX_TEST_ASSERT(begin == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
666 CX_TEST_ASSERT(end == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
667 CX_TEST_ASSERT(nodes[0].prev == &nodes[4]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
668 CX_TEST_ASSERT(nodes[3].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
669 CX_TEST_ASSERT(nodes[4].next == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
670 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
671 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
672
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
673 CX_TEST(test_linked_list_insert_sorted) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
674 node nodes[5] = {0};
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
675 void *begin, *end;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
676 nodes[0].data = 3;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
677 nodes[1].data = 6;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
678 nodes[2].data = 10;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
679 nodes[3].data = 11;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
680 nodes[4].data = 15;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
681 for (unsigned i = 0 ; i < 4 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
682 cx_linked_list_link(&nodes[i], &nodes[i+1], loc_prev, loc_next);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
683 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
684 begin = &nodes[0];
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
685 end = &nodes[4];
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
686 CX_TEST_DO {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
687 // insert a single node
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
688 node new_node = {0};
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
689 new_node.data = 5;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
690 cx_linked_list_insert_sorted(
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
691 &begin, &end,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
692 loc_prev, loc_next,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
693 &new_node, test_cmp_node
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
694 );
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
695 CX_TEST_ASSERT(new_node.prev == &nodes[0]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
696 CX_TEST_ASSERT(new_node.next == &nodes[1]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
697 CX_TEST_ASSERT(nodes[0].next == &new_node);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
698 CX_TEST_ASSERT(nodes[1].prev == &new_node);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
699 CX_TEST_ASSERT(begin == &nodes[0]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
700 CX_TEST_ASSERT(end == &nodes[4]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
701
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
702 // insert a new beginning node
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
703 node new_begin = {0};
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
704 new_begin.data = 1;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
705 cx_linked_list_insert_sorted(
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
706 &begin, &end,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
707 loc_prev, loc_next,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
708 &new_begin, test_cmp_node
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
709 );
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
710 CX_TEST_ASSERT(new_begin.prev == NULL);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
711 CX_TEST_ASSERT(new_begin.next == &nodes[0]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
712 CX_TEST_ASSERT(nodes[0].prev == &new_begin);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
713 CX_TEST_ASSERT(begin == &new_begin);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
714 CX_TEST_ASSERT(end == &nodes[4]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
715
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
716 // now insert a chain
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
717 node chain_start = {NULL, NULL, 8};
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
718 node chain_mid = {NULL, NULL, 14};
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
719 node chain_end = {NULL, NULL, 17};
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
720 cx_linked_list_link(&chain_start, &chain_mid, loc_prev, loc_next);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
721 cx_linked_list_link(&chain_mid, &chain_end, loc_prev, loc_next);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
722
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
723 cx_linked_list_insert_sorted_chain(
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
724 &begin, &end,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
725 loc_prev, loc_next,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
726 &chain_start, test_cmp_node
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
727 );
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
728
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
729 CX_TEST_ASSERT(chain_start.prev == &nodes[1]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
730 CX_TEST_ASSERT(chain_start.next == &nodes[2]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
731 CX_TEST_ASSERT(chain_mid.prev == &nodes[3]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
732 CX_TEST_ASSERT(chain_mid.next == &nodes[4]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
733 CX_TEST_ASSERT(chain_end.prev == &nodes[4]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
734 CX_TEST_ASSERT(chain_end.next == NULL);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
735 CX_TEST_ASSERT(begin == &new_begin);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
736 CX_TEST_ASSERT(end == &chain_end);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
737 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
738 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
739
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
740 CX_TEST(test_linked_list_first) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
741 node *testdata = create_nodes_test_data(3);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
742 void *begin = testdata;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
743 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
744 CX_TEST_ASSERT(begin == cx_linked_list_first(testdata, loc_prev));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
745 CX_TEST_ASSERT(begin == cx_linked_list_first(testdata->next, loc_prev));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
746 CX_TEST_ASSERT(begin == cx_linked_list_first(testdata->next->next, loc_prev));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
747 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
748 destroy_nodes_test_data(testdata);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
749 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
750
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
751 CX_TEST(test_linked_list_last) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
752 node *testdata = create_nodes_test_data(3);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
753 void *end = testdata->next->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
754 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
755 CX_TEST_ASSERT(end == cx_linked_list_last(testdata, loc_next));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
756 CX_TEST_ASSERT(end == cx_linked_list_last(testdata->next, loc_next));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
757 CX_TEST_ASSERT(end == cx_linked_list_last(testdata->next->next, loc_next));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
758 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
759 destroy_nodes_test_data(testdata);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
760 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
761
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
762 CX_TEST(test_linked_list_prev) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
763 node *testdata = create_nodes_test_data(3);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
764 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
765 CX_TEST_ASSERT(cx_linked_list_prev(testdata, loc_next, testdata) == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
766 CX_TEST_ASSERT(cx_linked_list_prev(testdata, loc_next, testdata->next) == testdata);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
767 CX_TEST_ASSERT(cx_linked_list_prev(testdata, loc_next, testdata->next->next) == testdata->next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
768 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
769 destroy_nodes_test_data(testdata);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
770 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
771
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
772 CX_TEST(test_linked_list_remove) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
773 node *testdata = create_nodes_test_data(3);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
774 assign_nodes_test_data(testdata, 2, 4, 6);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
775 node *first = testdata;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
776 node *second = first->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
777 node *third = second->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
778 void *begin = testdata;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
779 void *end = third;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
780
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
781 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
782 cx_linked_list_remove(&begin, &end, loc_prev, loc_next, second);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
783 CX_TEST_ASSERT(begin == first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
784 CX_TEST_ASSERT(end == third);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
785 CX_TEST_ASSERT(first->prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
786 CX_TEST_ASSERT(first->next == third);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
787 CX_TEST_ASSERT(third->prev == first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
788 CX_TEST_ASSERT(third->next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
789
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
790 cx_linked_list_remove(&begin, &end, loc_prev, loc_next, third);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
791 CX_TEST_ASSERT(begin == first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
792 CX_TEST_ASSERT(end == first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
793 CX_TEST_ASSERT(first->prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
794 CX_TEST_ASSERT(first->next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
795
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
796 cx_linked_list_remove(&begin, &end, loc_prev, loc_next, first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
797 CX_TEST_ASSERT(begin == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
798 CX_TEST_ASSERT(end == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
799 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
800 // list is not intact anymore, we have to free nodes individually
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
801 free(first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
802 free(second);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
803 free(third);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
804 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
805
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
806 CX_TEST(test_linked_list_remove_chain) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
807 node *testdata = create_nodes_test_data(5);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
808 assign_nodes_test_data(testdata, 2, 4, 6, 8, 10);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
809 void *begin = testdata;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
810 void *end = cx_linked_list_last(testdata, loc_next);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
811 void *orig_end = end;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
812 // remember what we need to free
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
813 node *kill_list[5];
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
814 kill_list[0] = testdata;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
815 for (unsigned i = 1 ; i < 5 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
816 kill_list[i] = kill_list[i-1]->next;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
817 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
818
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
819 CX_TEST_DO {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
820 // remove chain, but pretend that we don't have a prev pointer!
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
821 size_t result = cx_linked_list_remove_chain(
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
822 &begin, &end, -1, loc_next,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
823 cx_linked_list_at(begin, 0, loc_next, 2),
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
824 2
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
825 );
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
826 CX_TEST_ASSERT(result == 2);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
827 CX_TEST_ASSERT(begin == testdata);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
828 CX_TEST_ASSERT(end == orig_end);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
829 node *new_idx2 = cx_linked_list_at(begin, 0, loc_next, 2);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
830 CX_TEST_ASSERT(new_idx2->data == 10);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
831 CX_TEST_ASSERT(new_idx2->next == NULL);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
832 // we pretended we don't have prev, so it still points to 8!
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
833 CX_TEST_ASSERT(new_idx2->prev->data == 8);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
834
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
835 // remove last elements and try to remove more than we have
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
836 result = cx_linked_list_remove_chain(
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
837 &begin, &end, -1, loc_next,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
838 cx_linked_list_at(begin, 0, loc_next, 2),
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
839 2
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
840 );
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
841 CX_TEST_ASSERT(result == 1);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
842 CX_TEST_ASSERT(begin == testdata);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
843 CX_TEST_ASSERT(end == testdata->next);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
844 CX_TEST_ASSERT(NULL == testdata->next->next);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
845 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
846
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
847 for (unsigned i = 0 ; i < 5 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
848 free(kill_list[i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
849 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
850 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
851
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
852 CX_TEST(test_linked_list_size) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
853 node *td5 = create_nodes_test_data(5);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
854 node *td13 = create_nodes_test_data(13);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
855 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
856 CX_TEST_ASSERT(cx_linked_list_size(NULL, loc_next) == 0);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
857 CX_TEST_ASSERT(cx_linked_list_size(td5, loc_next) == 5);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
858 CX_TEST_ASSERT(cx_linked_list_size(td13, loc_next) == 13);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
859 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
860 destroy_nodes_test_data(td5);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
861 destroy_nodes_test_data(td13);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
862 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
863
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
864 CX_TEST(test_linked_list_sort_empty) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
865 void *begin = NULL;
799
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
866 CX_TEST_DO {
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
867 // cannot assert something, we can just test that it does not crash
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
868 cx_linked_list_sort(&begin, NULL, loc_prev, loc_next, loc_data, cx_cmp_int);
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
869 CX_TEST_ASSERT(true);
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
870 }
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
871 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
872
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
873 CX_TEST(test_linked_list_sort) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
874 const size_t len = 1500;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
875 int *testdata = int_test_data(len);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
876 void *scrambled = create_nodes_test_data(len);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
877 node *n = scrambled;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
878 for (size_t i = 0; i < len; i++) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
879 n->data = testdata[i];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
880 n = n->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
881 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
882 int *sorted = malloc(len*sizeof(int));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
883 memcpy(sorted, testdata, len*sizeof(int));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
884 qsort(sorted, len, sizeof(int), cx_cmp_int);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
885
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
886 void *begin = scrambled;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
887 void *end = cx_linked_list_last(begin, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
888
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
889 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
890 cx_linked_list_sort(&begin, &end, loc_prev, loc_next, loc_data, cx_cmp_int);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
891 node *check = begin;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
892 node *check_last = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
893 for (size_t i = 0; i < len; i++) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
894 CX_TEST_ASSERT(check->data == sorted[i]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
895 CX_TEST_ASSERT(check->prev == check_last);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
896 if (i < len - 1) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
897 CX_TEST_ASSERT(check->next != NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
898 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
899 check_last = check;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
900 check = check->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
901 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
902 CX_TEST_ASSERT(check == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
903 CX_TEST_ASSERT(end == check_last);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
904 }
799
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
905 destroy_nodes_test_data(begin);
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
906 free(sorted);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
907 free(testdata);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
908 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
909
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
910 CX_TEST(test_linked_list_reverse) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
911 void *testdata = create_nodes_test_data(4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
912 void *expected = create_nodes_test_data(4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
913 assign_nodes_test_data(testdata, 2, 4, 6, 8);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
914 assign_nodes_test_data(expected, 8, 6, 4, 2);
799
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
915 void *begin = testdata;
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
916 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
917 void *end = cx_linked_list_last(begin, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
918 void *orig_begin = begin, *orig_end = end;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
919
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
920 cx_linked_list_reverse(&begin, &end, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
921 CX_TEST_ASSERT(end == orig_begin);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
922 CX_TEST_ASSERT(begin == orig_end);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
923 CX_TEST_ASSERT(0 == cx_linked_list_compare(begin, expected, loc_next, loc_data, cx_cmp_int));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
924 }
799
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
925 destroy_nodes_test_data(begin);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
926 destroy_nodes_test_data(expected);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
927 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
928
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
929
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
930 CX_TEST(test_empty_list_size) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
931 CX_TEST_DO {
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
932 CX_TEST_ASSERT(cxEmptyList->collection.size == 0);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
933 CX_TEST_ASSERT(cxListSize(cxEmptyList) == 0);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
934 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
935 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
936
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
937 CX_TEST(test_empty_list_iterator) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
938 CxList *list = cxEmptyList;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
939
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
940 CxIterator it1 = cxListIterator(list);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
941 CxIterator it2 = cxListBackwardsIterator(list);
853
d4baf4dd55c3 simplify iterator structures
Mike Becker <universe@uap-core.de>
parents: 850
diff changeset
942 CxIterator it3 = cxListMutIterator(list);
d4baf4dd55c3 simplify iterator structures
Mike Becker <universe@uap-core.de>
parents: 850
diff changeset
943 CxIterator it4 = cxListMutBackwardsIterator(list);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
944
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
945 CX_TEST_DO {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
946 CX_TEST_ASSERT(!cxIteratorValid(it1));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
947 CX_TEST_ASSERT(!cxIteratorValid(it2));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
948 CX_TEST_ASSERT(!cxIteratorValid(it3));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
949 CX_TEST_ASSERT(!cxIteratorValid(it4));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
950
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
951 int c = 0;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
952 cx_foreach(void*, data, it1) c++;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
953 cx_foreach(void*, data, it2) c++;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
954 cx_foreach(void*, data, it3) c++;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
955 cx_foreach(void*, data, it4) c++;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
956 CX_TEST_ASSERT(c == 0);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
957 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
958 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
959
1388
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
960 CX_TEST(test_null_list_iterator) {
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
961 CxList *list = NULL;
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
962
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
963 CxIterator it1 = cxListIterator(list);
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
964 CxIterator it2 = cxListBackwardsIterator(list);
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
965 CxIterator it3 = cxListMutIterator(list);
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
966 CxIterator it4 = cxListMutBackwardsIterator(list);
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
967
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
968 CX_TEST_DO {
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
969 CX_TEST_ASSERT(!cxIteratorValid(it1));
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
970 CX_TEST_ASSERT(!cxIteratorValid(it2));
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
971 CX_TEST_ASSERT(!cxIteratorValid(it3));
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
972 CX_TEST_ASSERT(!cxIteratorValid(it4));
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
973
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
974 int c = 0;
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
975 cx_foreach(void*, data, it1) c++;
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
976 cx_foreach(void*, data, it2) c++;
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
977 cx_foreach(void*, data, it3) c++;
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
978 cx_foreach(void*, data, it4) c++;
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
979 CX_TEST_ASSERT(c == 0);
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
980 }
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
981 }
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
982
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
983 CX_TEST(test_empty_list_noops) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
984 CX_TEST_DO {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
985 CxList copy = *cxEmptyList;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
986 cxListSort(cxEmptyList);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
987 cxListClear(cxEmptyList);
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
988 cxListFree(cxEmptyList);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
989 CX_TEST_ASSERT(0 == memcmp(&copy, cxEmptyList, sizeof(CxList))); // NOLINT(*-suspicious-memory-comparison)
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
990 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
991 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
992
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
993 CX_TEST(test_empty_list_at) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
994 CX_TEST_DO {
1225
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
995 // the placeholder empty list
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
996 CX_TEST_ASSERT(cxListAt(cxEmptyList, 0) == NULL);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
997 CX_TEST_ASSERT(cxListAt(cxEmptyList, 1) == NULL);
1225
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
998 // a "true" empty list
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
999 CxList *list = cxLinkedListCreateSimple(sizeof(int));
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1000 CX_TEST_ASSERT(cxListAt(list, 0) == NULL);
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1001 CX_TEST_ASSERT(cxListAt(list, 1) == NULL);
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1002 cxListFree(list);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1003 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1004 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1005
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1006 CX_TEST(test_empty_list_find) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1007 int x = 42, y = 1337;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1008 CX_TEST_DO {
1225
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1009 // the placeholder empty list
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1010 CX_TEST_ASSERT(cxListFind(cxEmptyList, &x) == 0);
1225
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1011 CX_TEST_ASSERT(cxListFindRemove(cxEmptyList, &y) == 0);
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1012 // a "true" empty list
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1013 CxList *list = cxLinkedListCreateSimple(sizeof(int));
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1014 CX_TEST_ASSERT(cxListFind(list, &x) == 0);
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1015 CX_TEST_ASSERT(cxListFindRemove(list, &y) == 0);
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1016 cxListFree(list);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1017 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1018 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1019
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1020 CX_TEST(test_empty_list_compare) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1021 CxList *empty = cxEmptyList;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1022 CxList *ll = cxLinkedListCreateSimple(sizeof(int));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1023 CxList *al = cxArrayListCreateSimple(sizeof(int), 8);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1024 int x = 5;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1025 CX_TEST_DO {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1026 CX_TEST_ASSERT(0 == cxListCompare(empty, cxEmptyList));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1027 CX_TEST_ASSERT(0 == cxListCompare(ll, cxEmptyList));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1028 CX_TEST_ASSERT(0 == cxListCompare(al, cxEmptyList));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1029 CX_TEST_ASSERT(0 == cxListCompare(cxEmptyList, ll));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1030 CX_TEST_ASSERT(0 == cxListCompare(cxEmptyList, al));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1031
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1032 cxListAdd(ll, &x);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1033 cxListAdd(al, &x);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1034
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1035 CX_TEST_ASSERT(0 < cxListCompare(ll, cxEmptyList));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1036 CX_TEST_ASSERT(0 < cxListCompare(al, cxEmptyList));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1037 CX_TEST_ASSERT(0 > cxListCompare(cxEmptyList, ll));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1038 CX_TEST_ASSERT(0 > cxListCompare(cxEmptyList, al));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1039 }
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1040 cxListFree(ll);
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1041 cxListFree(al);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1042 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1043
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1044 CX_TEST(test_list_ll_create) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1045 CxTestingAllocator talloc;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1046 cx_testing_allocator_init(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1047 CxAllocator *alloc = &talloc.base;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1048 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1049 CxList *list = cxLinkedListCreate(alloc, cx_cmp_int, sizeof(int));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1050 CX_TEST_ASSERT(list != NULL);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1051 CX_TEST_ASSERT(list->collection.elem_size == sizeof(int));
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1052 CX_TEST_ASSERT(list->collection.simple_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1053 CX_TEST_ASSERT(list->collection.advanced_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1054 CX_TEST_ASSERT(list->collection.destructor_data == NULL);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1055 CX_TEST_ASSERT(cxListSize(list) == 0);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1056 CX_TEST_ASSERT(list->collection.allocator == alloc);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1057 CX_TEST_ASSERT(list->collection.cmpfunc == cx_cmp_int);
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
1058 CX_TEST_ASSERT(!list->collection.store_pointer);
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1059 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1060 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1061 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1062 cx_testing_allocator_destroy(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1063 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1064
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1065 CX_TEST(test_list_ll_create_simple) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1066 CxList *list = cxLinkedListCreateSimple(sizeof(int));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1067 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1068 CX_TEST_ASSERT(list != NULL);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1069 CX_TEST_ASSERT(list->collection.elem_size == sizeof(int));
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1070 CX_TEST_ASSERT(list->collection.simple_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1071 CX_TEST_ASSERT(list->collection.advanced_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1072 CX_TEST_ASSERT(list->collection.destructor_data == NULL);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1073 CX_TEST_ASSERT(cxListSize(list) == 0);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1074 CX_TEST_ASSERT(list->collection.allocator == cxDefaultAllocator);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1075 CX_TEST_ASSERT(list->collection.cmpfunc == NULL);
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
1076 CX_TEST_ASSERT(!list->collection.store_pointer);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1077 }
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1078 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1079 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1080
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1081 CX_TEST(test_list_ll_create_simple_for_pointers) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1082 CxList *list = cxLinkedListCreateSimple(CX_STORE_POINTERS);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1083 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1084 CX_TEST_ASSERT(list != NULL);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1085 CX_TEST_ASSERT(list->collection.elem_size == sizeof(void*));
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1086 CX_TEST_ASSERT(list->collection.simple_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1087 CX_TEST_ASSERT(list->collection.advanced_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1088 CX_TEST_ASSERT(list->collection.destructor_data == NULL);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1089 CX_TEST_ASSERT(cxListSize(list) == 0);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1090 CX_TEST_ASSERT(list->collection.allocator == cxDefaultAllocator);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1091 CX_TEST_ASSERT(list->collection.cmpfunc == cx_cmp_ptr);
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
1092 CX_TEST_ASSERT(list->collection.store_pointer);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1093 }
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1094 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1095 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1096
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1097 CX_TEST(test_list_arl_create) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1098 CxTestingAllocator talloc;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1099 cx_testing_allocator_init(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1100 CxAllocator *alloc = &talloc.base;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1101 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1102 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, sizeof(int), 8);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1103 CX_TEST_ASSERT(list != NULL);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1104 CX_TEST_ASSERT(list->collection.elem_size == sizeof(int));
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1105 CX_TEST_ASSERT(list->collection.simple_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1106 CX_TEST_ASSERT(list->collection.advanced_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1107 CX_TEST_ASSERT(list->collection.destructor_data == NULL);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1108 CX_TEST_ASSERT(cxListSize(list) == 0);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1109 CX_TEST_ASSERT(list->collection.allocator == alloc);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1110 CX_TEST_ASSERT(list->collection.cmpfunc == cx_cmp_int);
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
1111 CX_TEST_ASSERT(!list->collection.store_pointer);
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1112 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1113 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1114 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1115 cx_testing_allocator_destroy(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1116 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1117
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1118 CX_TEST(test_list_arl_create_simple) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1119 CxList *list = cxArrayListCreateSimple(sizeof(int), 8);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1120 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1121 CX_TEST_ASSERT(list != NULL);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1122 CX_TEST_ASSERT(list->collection.elem_size == sizeof(int));
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1123 CX_TEST_ASSERT(list->collection.simple_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1124 CX_TEST_ASSERT(list->collection.advanced_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1125 CX_TEST_ASSERT(list->collection.destructor_data == NULL);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1126 CX_TEST_ASSERT(cxListSize(list) == 0);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1127 CX_TEST_ASSERT(list->collection.allocator == cxDefaultAllocator);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1128 CX_TEST_ASSERT(list->collection.cmpfunc == NULL);
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
1129 CX_TEST_ASSERT(!list->collection.store_pointer);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1130 }
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1131 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1132 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1133
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1134 CX_TEST(test_list_arl_create_simple_for_pointers) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1135 CxList *list = cxArrayListCreateSimple(CX_STORE_POINTERS, 8);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1136 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1137 CX_TEST_ASSERT(list != NULL);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1138 CX_TEST_ASSERT(list->collection.elem_size == sizeof(void*));
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1139 CX_TEST_ASSERT(list->collection.simple_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1140 CX_TEST_ASSERT(list->collection.advanced_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1141 CX_TEST_ASSERT(list->collection.destructor_data == NULL);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1142 CX_TEST_ASSERT(cxListSize(list) == 0);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1143 CX_TEST_ASSERT(list->collection.allocator == cxDefaultAllocator);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1144 CX_TEST_ASSERT(list->collection.cmpfunc == cx_cmp_ptr);
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
1145 CX_TEST_ASSERT(list->collection.store_pointer);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1146 }
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1147 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1148 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1149
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1150 static void test_fake_simple_int_destr(void *elem) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1151 *(int *) elem = 42;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1152 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1153
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1154 CX_TEST(test_list_pll_destroy_no_destr) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1155 CxTestingAllocator talloc;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1156 cx_testing_allocator_init(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1157 CxAllocator *alloc = &talloc.base;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1158 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1159 void *item = cxMalloc(alloc, sizeof(int));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1160 CxList *list = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1161 cxListAdd(list, item);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1162 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1163 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1164 // item is not yet freed
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1165 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1166 cxFree(alloc, item);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1167 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1168 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1169 cx_testing_allocator_destroy(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1170 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1171
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1172 CX_TEST(test_list_pll_destroy_simple_destr) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1173 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1174 int item = 0;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1175 CxList *list = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1176 list->collection.simple_destructor = test_fake_simple_int_destr;
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1177 cxListAdd(list, &item);
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1178 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1179 CX_TEST_ASSERT(item == 42);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1180 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1181 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1182
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1183 CX_TEST(test_list_pll_destroy_adv_destr) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1184 CxTestingAllocator talloc;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1185 cx_testing_allocator_init(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1186 CxAllocator *alloc = &talloc.base;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1187 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1188 void *item = cxMalloc(alloc, sizeof(int));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1189 CxList *list = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1190 list->collection.destructor_data = alloc;
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1191 list->collection.advanced_destructor = (cx_destructor_func2) cxFree;
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1192 cxListAdd(list, item);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1193 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1194 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1195 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1196 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1197 cx_testing_allocator_destroy(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1198 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1199
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1200 CX_TEST(test_list_parl_destroy_no_destr) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1201 CxTestingAllocator talloc;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1202 cx_testing_allocator_init(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1203 CxAllocator *alloc = &talloc.base;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1204 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1205 void *item = cxMalloc(alloc, sizeof(int));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1206 CxList *list = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS, 4);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1207 cxListAdd(list, item);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1208 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1209 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1210 // item is not yet freed
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1211 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1212 cxFree(alloc, item);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1213 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1214 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1215 cx_testing_allocator_destroy(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1216 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1217
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1218 CX_TEST(test_list_parl_destroy_simple_destr) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1219 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1220 int item = 0;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1221 CxList *list = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS, 4);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1222 list->collection.simple_destructor = test_fake_simple_int_destr;
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1223 cxListAdd(list, &item);
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1224 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1225 CX_TEST_ASSERT(item == 42);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1226 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1227 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1228
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1229 CX_TEST(test_list_parl_destroy_adv_destr) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1230 CxTestingAllocator talloc;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1231 cx_testing_allocator_init(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1232 CxAllocator *alloc = &talloc.base;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1233 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1234 void *item = cxMalloc(alloc, sizeof(int));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1235 CxList *list = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS, 4);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1236 list->collection.destructor_data = alloc;
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1237 list->collection.advanced_destructor = (cx_destructor_func2) cxFree;
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1238 cxListAdd(list, item);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1239 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1240 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1241 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1242 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1243 cx_testing_allocator_destroy(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1244 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1245
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1246 #define set_up_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1247 CxTestingAllocator talloc; \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1248 cx_testing_allocator_init(&talloc); \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1249 CxAllocator *alloc = &talloc.base; \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1250 CX_TEST_DO {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1251 #define tear_down_combo \
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1252 cxListFree(list); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1253 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));\
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1254 } \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1255 cx_testing_allocator_destroy(&talloc);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1256 #define roll_out_test_invokers(name) \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1257 CX_TEST(test_list_ll_##name) { \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1258 set_up_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1259 CxList *list = cxLinkedListCreate(alloc, cx_cmp_int, sizeof(int)); \
807
c8d692131b1e remove flags to disable SBO in tests - fix #343 fix #358
Mike Becker <universe@uap-core.de>
parents: 804
diff changeset
1260 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, false); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1261 tear_down_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1262 } \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1263 CX_TEST(test_list_arl_##name) { \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1264 set_up_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1265 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, sizeof(int), 8); \
807
c8d692131b1e remove flags to disable SBO in tests - fix #343 fix #358
Mike Becker <universe@uap-core.de>
parents: 804
diff changeset
1266 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, false); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1267 tear_down_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1268 } \
1350
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1269 CX_TEST(test_list_kvl_##name) { \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1270 set_up_combo \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1271 CxList *list = cxKvListCreate(alloc, cx_cmp_int, sizeof(int)); \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1272 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, false); \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1273 tear_down_combo \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1274 } \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1275 CX_TEST(test_list_pll_##name) { \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1276 set_up_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1277 CxList *list = cxLinkedListCreate(alloc, cx_cmp_int, CX_STORE_POINTERS); \
807
c8d692131b1e remove flags to disable SBO in tests - fix #343 fix #358
Mike Becker <universe@uap-core.de>
parents: 804
diff changeset
1278 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, true); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1279 tear_down_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1280 } \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1281 CX_TEST(test_list_parl_##name) { \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1282 set_up_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1283 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, CX_STORE_POINTERS, 8); \
807
c8d692131b1e remove flags to disable SBO in tests - fix #343 fix #358
Mike Becker <universe@uap-core.de>
parents: 804
diff changeset
1284 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, true); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1285 tear_down_combo \
1350
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1286 } \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1287 CX_TEST(test_list_pkvl_##name) { \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1288 set_up_combo \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1289 CxList *list = cxKvListCreate(alloc, cx_cmp_int, CX_STORE_POINTERS); \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1290 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, true); \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1291 tear_down_combo \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1292 }
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1293 #define roll_out_test_combos(name, body) \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1294 static CX_TEST_SUBROUTINE(test_list_verify_##name, CxList *list, \
985
68754c7de906 major refactoring of attributes
Mike Becker <universe@uap-core.de>
parents: 962
diff changeset
1295 cx_attr_unused bool isptrlist) body \
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1296 roll_out_test_invokers(name)
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1297
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1298 static void set_default_class_funcs(CxList *list, cx_list_class *defaulted_cl) {
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 886
diff changeset
1299 const cx_list_class *cl = list->climpl == NULL ? list->cl : list->climpl;
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1300 memcpy(defaulted_cl, cl, sizeof(cx_list_class));
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1301 defaulted_cl->insert_array = cx_list_default_insert_array;
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1302 defaulted_cl->insert_sorted = cx_list_default_insert_sorted;
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1303 defaulted_cl->sort = cx_list_default_sort;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1304 defaulted_cl->swap = cx_list_default_swap;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1305 defaulted_cl->compare = NULL;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1306 if (list->climpl == NULL) {
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1307 list->cl = defaulted_cl;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1308 } else {
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1309 list->climpl = defaulted_cl;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1310 }
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1311 }
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1312
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1313 #define do_set_default_class_funcs(list) \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1314 cx_list_class defaulted_cl; \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1315 set_default_class_funcs(list, &defaulted_cl)
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1316 #define roll_out_test_combos_with_defaulted_funcs(name, body) \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1317 static CX_TEST_SUBROUTINE(test_list_verify_##name, CxList *list, \
985
68754c7de906 major refactoring of attributes
Mike Becker <universe@uap-core.de>
parents: 962
diff changeset
1318 cx_attr_unused bool isptrlist) body \
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1319 roll_out_test_invokers(name) \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1320 CX_TEST(test_list_llm_##name) { \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1321 set_up_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1322 CxList *list = cxLinkedListCreate(alloc, cx_cmp_int, sizeof(int)); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1323 do_set_default_class_funcs(list); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1324 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, false); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1325 tear_down_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1326 } \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1327 CX_TEST(test_list_arlm_##name) { \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1328 set_up_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1329 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, sizeof(int), 8); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1330 do_set_default_class_funcs(list); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1331 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, false); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1332 tear_down_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1333 } \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1334 CX_TEST(test_list_pllm_##name) { \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1335 set_up_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1336 CxList *list = cxLinkedListCreate(alloc, cx_cmp_int, CX_STORE_POINTERS); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1337 do_set_default_class_funcs(list); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1338 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, true); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1339 tear_down_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1340 } \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1341 CX_TEST(test_list_parlm_##name) { \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1342 set_up_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1343 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, CX_STORE_POINTERS, 8); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1344 do_set_default_class_funcs(list); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1345 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, true); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1346 tear_down_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1347 }
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1348
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1349 #define array_init(...) {__VA_ARGS__}
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1350
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1351 static inline int *int_test_data_added_to_list(CxList *list, bool isptrlist, size_t len) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1352 int *testdata = int_test_data(len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1353 if (isptrlist) {
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1354 for (size_t i = 0; i < len; i++) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1355 cxListAdd(list, &testdata[i]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1356 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1357 } else {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1358 cxListAddArray(list, testdata, len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1359 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1360 return testdata;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1361 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1362
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1363 roll_out_test_combos(add, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1364 const size_t len = 250;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1365 int *testdata = int_test_data(len);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1366 for (size_t i = 0; i < len; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1367 CX_TEST_ASSERT(cxListAdd(list, &testdata[i]) == 0);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1368 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1369 CX_TEST_ASSERT(cxListSize(list) == len);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1370 for (size_t i = 0; i < len; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1371 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == testdata[i]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1372 }
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1373 for (size_t i = 0; i < len; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1374 ++testdata[i];
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1375 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1376 if (isptrlist) {
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1377 for (size_t i = 0; i < len; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1378 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == testdata[i]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1379 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1380 } else {
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1381 for (size_t i = 0; i < len; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1382 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == testdata[i] - 1);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1383 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1384 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1385 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1386 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1387
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1388 roll_out_test_combos(insert, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1389 int a = 5;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1390 int b = 47;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1391 int c = 13;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1392 int d = 42;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1393 CX_TEST_ASSERT(cxListInsert(list, 1, &a) != 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1394 CX_TEST_ASSERT(cxListSize(list) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1395 CX_TEST_ASSERT(cxListInsert(list, 0, &a) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1396 CX_TEST_ASSERT(cxListSize(list) == 1);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1397 CX_TEST_ASSERT(cxListInsert(list, 0, &b) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1398 CX_TEST_ASSERT(cxListSize(list) == 2);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1399 CX_TEST_ASSERT(cxListInsert(list, 1, &c) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1400 CX_TEST_ASSERT(cxListSize(list) == 3);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1401 CX_TEST_ASSERT(cxListInsert(list, 3, &d) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1402 CX_TEST_ASSERT(cxListSize(list) == 4);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1403 CX_TEST_ASSERT(*(int *) cxListAt(list, 0) == 47);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1404 CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == 13);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1405 CX_TEST_ASSERT(*(int *) cxListAt(list, 2) == 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1406 CX_TEST_ASSERT(*(int *) cxListAt(list, 3) == 42);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1407 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1408
1316
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1409 roll_out_test_combos(emplace, {
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1410 if (isptrlist) {
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1411 int **x;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1412 int y = 5;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1413 int z = 7;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1414 int w = 13;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1415
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1416 x = cxListEmplace(list);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1417 CX_TEST_ASSERT(x != NULL);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1418 CX_TEST_ASSERT(cxListSize(list) == 1);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1419 *x = &y;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1420 CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 5);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1421
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1422 x = cxListEmplace(list);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1423 CX_TEST_ASSERT(x != NULL);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1424 CX_TEST_ASSERT(cxListSize(list) == 2);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1425 *x = &z;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1426 CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 7);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1427
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1428 CX_TEST_ASSERT(NULL == cxListEmplaceAt(list, 3));
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1429 CX_TEST_ASSERT(cxListSize(list) == 2);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1430
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1431 x = cxListEmplaceAt(list, 1);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1432 CX_TEST_ASSERT(x != NULL);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1433 CX_TEST_ASSERT(cxListSize(list) == 3);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1434 *x = &w;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1435 CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 5);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1436 CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 13);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1437 CX_TEST_ASSERT(*(int*)cxListAt(list, 2) == 7);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1438 } else {
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1439 int *x;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1440
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1441 x = cxListEmplace(list);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1442 CX_TEST_ASSERT(x != NULL);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1443 CX_TEST_ASSERT(cxListSize(list) == 1);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1444 *x = 5;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1445 CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 5);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1446
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1447 x = cxListEmplace(list);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1448 CX_TEST_ASSERT(x != NULL);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1449 CX_TEST_ASSERT(cxListSize(list) == 2);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1450 *x = 7;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1451 CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 7);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1452
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1453 CX_TEST_ASSERT(NULL == cxListEmplaceAt(list, 3));
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1454 CX_TEST_ASSERT(cxListSize(list) == 2);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1455
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1456 x = cxListEmplaceAt(list, 1);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1457 CX_TEST_ASSERT(x != NULL);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1458 CX_TEST_ASSERT(cxListSize(list) == 3);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1459 *x = 13;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1460 CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 5);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1461 CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 13);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1462 CX_TEST_ASSERT(*(int*)cxListAt(list, 2) == 7);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1463 }
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1464 })
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1465
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1466 roll_out_test_combos_with_defaulted_funcs(insert_array, {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1467 int a[5] = array_init(5, 47, 11, 13, 42);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1468 int b[5] = array_init(9, 18, 72, 50, 7);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1469 int *aptr[5];
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1470 int *bptr[5];
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1471 for (size_t i = 0; i < 5; i++) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1472 aptr[i] = &a[i];
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1473 bptr[i] = &b[i];
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1474 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1475
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1476 size_t inserted;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1477
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1478 if (isptrlist) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1479 inserted = cxListInsertArray(list, 0, aptr, 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1480 } else {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1481 inserted = cxListInsertArray(list, 0, a, 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1482 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1483 CX_TEST_ASSERT(inserted == 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1484 CX_TEST_ASSERT(*(int *) cxListAt(list, 0) == 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1485 CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == 47);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1486 CX_TEST_ASSERT(*(int *) cxListAt(list, 2) == 11);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1487 CX_TEST_ASSERT(*(int *) cxListAt(list, 3) == 13);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1488 CX_TEST_ASSERT(*(int *) cxListAt(list, 4) == 42);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1489 if (isptrlist) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1490 inserted = cxListInsertArray(list, 3, bptr, 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1491 } else {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1492 inserted = cxListInsertArray(list, 3, b, 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1493 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1494 CX_TEST_ASSERT(inserted == 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1495 CX_TEST_ASSERT(*(int *) cxListAt(list, 0) == 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1496 CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == 47);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1497 CX_TEST_ASSERT(*(int *) cxListAt(list, 2) == 11);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1498 CX_TEST_ASSERT(*(int *) cxListAt(list, 3) == 9);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1499 CX_TEST_ASSERT(*(int *) cxListAt(list, 4) == 18);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1500 CX_TEST_ASSERT(*(int *) cxListAt(list, 5) == 72);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1501 CX_TEST_ASSERT(*(int *) cxListAt(list, 6) == 50);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1502 CX_TEST_ASSERT(*(int *) cxListAt(list, 7) == 7);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1503 CX_TEST_ASSERT(*(int *) cxListAt(list, 8) == 13);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1504 CX_TEST_ASSERT(*(int *) cxListAt(list, 9) == 42);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1505 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1506
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1507 roll_out_test_combos_with_defaulted_funcs(insert_sorted, {
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1508 int d1 = 50;
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1509 int d2 = 80;
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1510 int d3 = 60;
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1511 int d4 = 40;
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1512 int d5 = 70;
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1513 int d6a[6] = array_init(52, 54, 56, 62, 64, 75);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1514 int d7a[6] = array_init(51, 57, 58, 65, 77, 78);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1515 int d8 = 90;
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1516 int *d6ptr[6];
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1517 int *d7ptr[6];
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1518 for (size_t i = 0; i < 6; i++) {
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1519 d6ptr[i] = &d6a[i];
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1520 d7ptr[i] = &d7a[i];
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1521 }
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1522 size_t inserted;
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1523 int expected[18] = array_init(
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1524 40, 50, 51, 52, 54, 56, 57, 58, 60,
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1525 62, 64, 65, 70, 75, 77, 78, 80, 90
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1526 );
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1527
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1528 CX_TEST_ASSERT(0 == cxListInsertSorted(list, &d1));
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1529 CX_TEST_ASSERT(0 == cxListInsertSorted(list, &d2));
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1530 CX_TEST_ASSERT(0 == cxListInsertSorted(list, &d3));
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1531 CX_TEST_ASSERT(0 == cxListInsertSorted(list, &d4));
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1532 CX_TEST_ASSERT(0 == cxListInsertSorted(list, &d5));
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1533 if (isptrlist) {
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1534 inserted = cxListInsertSortedArray(list, d6ptr, 6);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1535 } else {
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1536 inserted = cxListInsertSortedArray(list, d6a, 6);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1537 }
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1538 CX_TEST_ASSERT(inserted == 6);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1539 if (isptrlist) {
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1540 inserted = cxListInsertSortedArray(list, d7ptr, 6);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1541 } else {
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1542 inserted = cxListInsertSortedArray(list, d7a, 6);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1543 }
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1544 CX_TEST_ASSERT(inserted == 6);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1545 CX_TEST_ASSERT(0 == cxListInsertSorted(list, &d8));
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1546
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1547 CX_TEST_ASSERT(cxListSize(list) == 18);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1548 for (size_t i = 0; i < 18; i++) {
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1549 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == expected[i]);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1550 }
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1551 })
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1552
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1553 roll_out_test_combos(remove, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1554 const size_t testdata_len = 32;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1555 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1556
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1557 CX_TEST_ASSERT(cxListRemove(list, 2) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1558 CX_TEST_ASSERT(cxListRemove(list, 4) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1559 CX_TEST_ASSERT(cxListSize(list) == testdata_len - 2);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1560 CX_TEST_ASSERT(*(int *) cxListAt(list, 0) == testdata[0]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1561 CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == testdata[1]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1562 CX_TEST_ASSERT(*(int *) cxListAt(list, 2) == testdata[3]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1563 CX_TEST_ASSERT(*(int *) cxListAt(list, 3) == testdata[4]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1564 CX_TEST_ASSERT(*(int *) cxListAt(list, 4) == testdata[6]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1565 CX_TEST_ASSERT(cxListRemove(list, 0) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1566 CX_TEST_ASSERT(cxListSize(list) == testdata_len - 3);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1567 CX_TEST_ASSERT(*(int *) cxListAt(list, 0) == testdata[1]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1568 CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == testdata[3]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1569 CX_TEST_ASSERT(cxListRemove(list, testdata_len) != 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1570 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1571 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1572
1315
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1573 roll_out_test_combos(remove_and_get, {
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1574 int testdata[10];
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1575 for (unsigned i = 0 ; i < 10 ; i++) {
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1576 testdata[i] = 2*i;
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1577 cxListAdd(list, &testdata[i]);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1578 }
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1579 if (isptrlist) {
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1580 int *x;
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1581 CX_TEST_ASSERT(cxListPop(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1582 CX_TEST_ASSERT(*x == 18);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1583 CX_TEST_ASSERT(cxListPop(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1584 CX_TEST_ASSERT(*x == 16);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1585 CX_TEST_ASSERT(cxListPopFront(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1586 CX_TEST_ASSERT(*x == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1587 CX_TEST_ASSERT(cxListPopFront(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1588 CX_TEST_ASSERT(*x == 2);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1589 CX_TEST_ASSERT(cxListRemoveAndGet(list, 3, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1590 CX_TEST_ASSERT(*x == 10);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1591 CX_TEST_ASSERT(cxListRemoveAndGet(list, 3, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1592 CX_TEST_ASSERT(*x == 12);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1593 CX_TEST_ASSERT(cxListRemoveAndGet(list, 8, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1594 CX_TEST_ASSERT(*x == 12);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1595
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1596 *x = 1337;
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1597 cxListClear(list);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1598 CX_TEST_ASSERT(cxListRemoveAndGet(list, 0, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1599 CX_TEST_ASSERT(cxListRemoveAndGet(list, 1, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1600 CX_TEST_ASSERT(cxListPop(list, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1601 CX_TEST_ASSERT(cxListPopFront(list, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1602 CX_TEST_ASSERT(*x == 1337);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1603 } else {
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1604 int x;
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1605 CX_TEST_ASSERT(cxListPop(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1606 CX_TEST_ASSERT(x == 18);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1607 CX_TEST_ASSERT(cxListPop(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1608 CX_TEST_ASSERT(x == 16);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1609 CX_TEST_ASSERT(cxListPopFront(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1610 CX_TEST_ASSERT(x == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1611 CX_TEST_ASSERT(cxListPopFront(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1612 CX_TEST_ASSERT(x == 2);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1613 CX_TEST_ASSERT(cxListRemoveAndGet(list, 3, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1614 CX_TEST_ASSERT(x == 10);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1615 CX_TEST_ASSERT(cxListRemoveAndGet(list, 3, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1616 CX_TEST_ASSERT(x == 12);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1617 CX_TEST_ASSERT(cxListRemoveAndGet(list, 8, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1618 CX_TEST_ASSERT(x == 12);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1619
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1620 x = 1337;
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1621 cxListClear(list);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1622 CX_TEST_ASSERT(cxListRemoveAndGet(list, 0, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1623 CX_TEST_ASSERT(cxListRemoveAndGet(list, 1, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1624 CX_TEST_ASSERT(cxListPop(list, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1625 CX_TEST_ASSERT(cxListPopFront(list, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1626 CX_TEST_ASSERT(x == 1337);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1627 }
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1628 })
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1629
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1630 static unsigned test_remove_array_destr_ctr;
985
68754c7de906 major refactoring of attributes
Mike Becker <universe@uap-core.de>
parents: 962
diff changeset
1631 static void test_remove_array_destr(cx_attr_unused void *d) {
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1632 test_remove_array_destr_ctr++;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1633 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1634
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1635 roll_out_test_combos(remove_array, {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1636 const size_t testdata_len = 32;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1637 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1638 cxDefineDestructor(list, test_remove_array_destr);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1639 test_remove_array_destr_ctr = 0;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1640
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1641 // first, remove and get - no destructor must be called
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1642 int targete[8];
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1643 int *targetp[8];
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1644 memset(targete, 0, sizeof(targete));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1645 memset(targetp, 0, sizeof(targetp));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1646 void *target = isptrlist ? (void*) targetp : targete;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1647 CX_TEST_ASSERT(8 == cxListRemoveArrayAndGet(list, 8, 8, target));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1648 CX_TEST_ASSERT(0 == test_remove_array_destr_ctr);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1649 CX_TEST_ASSERT(24 == cxListSize(list));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1650 for (unsigned int i = 0 ; i < 8 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1651 CX_TEST_ASSERT((*(int*)cxListAt(list, i)) == testdata[i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1652 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1653 for (unsigned int i = 8 ; i < 24 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1654 CX_TEST_ASSERT((*(int*)cxListAt(list, i)) == testdata[8+i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1655 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1656 for (unsigned int i = 0 ; i < 8 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1657 if (isptrlist) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1658 CX_TEST_ASSERT(targetp[i] == &testdata[8 + i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1659 } else {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1660 CX_TEST_ASSERT(targete[i] == testdata[8 + i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1661 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1662 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1663
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1664 // now, just remove - destructor must be called
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1665 CX_TEST_ASSERT(8 == cxListRemoveArray(list, 8, 8));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1666 CX_TEST_ASSERT(8 == test_remove_array_destr_ctr);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1667 CX_TEST_ASSERT(16 == cxListSize(list));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1668 for (unsigned int i = 0 ; i < 8 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1669 CX_TEST_ASSERT((*(int*)cxListAt(list, i)) == testdata[i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1670 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1671 for (unsigned int i = 8 ; i < 16 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1672 CX_TEST_ASSERT((*(int*)cxListAt(list, i)) == testdata[16+i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1673 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1674
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1675 // finally, remove and get out of bounds
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1676 test_remove_array_destr_ctr = 0;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1677 memset(targete, 0, sizeof(targete));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1678 memset(targetp, 0, sizeof(targetp));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1679 CX_TEST_ASSERT(4 == cxListRemoveArrayAndGet(list, 12, 8, target));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1680 CX_TEST_ASSERT(0 == test_remove_array_destr_ctr);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1681 CX_TEST_ASSERT(12 == cxListSize(list));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1682 for (unsigned int i = 0 ; i < 8 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1683 CX_TEST_ASSERT((*(int*)cxListAt(list, i)) == testdata[i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1684 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1685 for (unsigned int i = 8 ; i < 12 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1686 CX_TEST_ASSERT((*(int*)cxListAt(list, i)) == testdata[16+i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1687 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1688 for (unsigned int i = 0 ; i < 4 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1689 if (isptrlist) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1690 CX_TEST_ASSERT(targetp[i] == &testdata[28 + i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1691 } else {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1692 CX_TEST_ASSERT(targete[i] == testdata[28 + i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1693 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1694 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1695 for (unsigned int i = 4 ; i < 8 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1696 if (isptrlist) {
1315
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1697 CX_TEST_ASSERT(targetp[i] == NULL);
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1698 } else {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1699 CX_TEST_ASSERT(targete[i] == 0);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1700 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1701 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1702
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1703 free(testdata);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1704 })
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1705
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1706 roll_out_test_combos(find_remove, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1707 const size_t testdata_len = 250;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1708 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1709
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1710 unsigned exp = rand() % testdata_len; // NOLINT(cert-msc50-cpp)
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1711 int val = testdata[exp];
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1712 // randomly picked number could occur earlier in list - find first position
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1713 for (unsigned i = 0 ; i < exp ; i++) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1714 if (testdata[i] == val) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1715 exp = i;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1716 break;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1717 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1718 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1719 CX_TEST_ASSERT(cxListSize(list) == testdata_len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1720 CX_TEST_ASSERT(cxListFind(list, &val) == exp);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1721 CX_TEST_ASSERT(cxListFindRemove(list, &val) == exp);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1722 CX_TEST_ASSERT(cxListSize(list) == testdata_len - 1);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1723 CX_TEST_ASSERT(cxListFind(list, &val) != exp);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1724
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1725 int notinlist = -1;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1726 CX_TEST_ASSERT(cxListFindRemove(list, &notinlist) == cxListSize(list));
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1727 CX_TEST_ASSERT(cxListSize(list) == testdata_len - 1);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1728
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1729 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1730 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1731
1163
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1732 roll_out_test_combos(find_remove_sorted, {
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1733 const size_t testdata_len = 250;
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1734 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1735 qsort(testdata, testdata_len, sizeof(int), cx_cmp_int);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1736 cxListSort(list);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1737
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1738 unsigned exp = rand() % testdata_len; // NOLINT(cert-msc50-cpp)
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1739 int val = testdata[exp];
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1740 // randomly picked number could occur earlier in list - find first position
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1741 for (unsigned i = 0 ; i < exp ; i++) {
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1742 if (testdata[i] == val) {
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1743 exp = i;
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1744 break;
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1745 }
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1746 }
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1747 CX_TEST_ASSERT(cxListSize(list) == testdata_len);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1748 CX_TEST_ASSERT(cxListFind(list, &val) == exp);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1749 CX_TEST_ASSERT(cxListFindRemove(list, &val) == exp);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1750 CX_TEST_ASSERT(cxListSize(list) == testdata_len - 1);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1751 CX_TEST_ASSERT(cxListFind(list, &val) != exp);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1752
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1753 int notinlist = -1;
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1754 CX_TEST_ASSERT(cxListFindRemove(list, &notinlist) == cxListSize(list));
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1755 CX_TEST_ASSERT(cxListSize(list) == testdata_len - 1);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1756
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1757 free(testdata);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1758 })
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1759
1294
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1760 roll_out_test_combos(contains, {
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1761 int a = 37;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1762 int b = 42;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1763 int c = 55;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1764 cxListAdd(list, &a);
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1765 cxListAdd(list, &b);
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1766 cxListAdd(list, &c);
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1767 int x;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1768 x = 37;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1769 CX_TEST_ASSERT(cxListContains(list, &x));
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1770 x = 42;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1771 CX_TEST_ASSERT(cxListContains(list, &x));
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1772 x = 55;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1773 CX_TEST_ASSERT(cxListContains(list, &x));
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1774 x = 47;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1775 CX_TEST_ASSERT(!cxListContains(list, &x));
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1776 })
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
1777
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1778 roll_out_test_combos(clear, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1779 int *testdata = int_test_data_added_to_list(list, isptrlist, 8);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1780 CX_TEST_ASSERT(cxListSize(list) > 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1781 cxListClear(list);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1782 CX_TEST_ASSERT(cxListSize(list) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1783 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1784 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1785
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1786 roll_out_test_combos(at, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1787 size_t len = 128;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1788 int *testdata = int_test_data_added_to_list(list, isptrlist, 128);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1789 CX_TEST_ASSERT(cxListSize(list) == len);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1790 for (size_t i = 0; i < len; i++) {
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1791 CX_TEST_ASSERT(cxListIndexValid(list, i));
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1792 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == testdata[i]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1793 }
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1794 CX_TEST_ASSERT(!cxListIndexValid(list, len));
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1795 CX_TEST_ASSERT(cxListAt(list, len) == NULL);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1796 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1797 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1798
1287
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1799 roll_out_test_combos(set, {
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1800 // Add some values
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1801 int v1 = 42;
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1802 cxListAdd(list, &v1);
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1803 int v2 = 100;
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1804 cxListAdd(list, &v2);
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1805 int v3 = 47;
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1806 cxListAdd(list, &v3);
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1807
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1808 // Change the first element
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1809 int v1new = 99;
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1810 CX_TEST_ASSERT(cxListSet(list, 0, &v1new) == 0);
1315
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1811 CX_TEST_ASSERT(*(int *) cxListFirst(list) == 99);
1287
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1812
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1813 // Change the last element
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1814 int v3new = 101;
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1815 CX_TEST_ASSERT(cxListSet(list, 2, &v3new) == 0);
1315
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1816 CX_TEST_ASSERT(*(int *) cxListLast(list) == 101);
1287
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1817
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1818 // Try index out of bounds
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1819 int oob = 1337;
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1820 CX_TEST_ASSERT(cxListSet(list, 3, &oob) != 0);
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1821 })
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
1822
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1823 roll_out_test_combos_with_defaulted_funcs(swap, {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1824 int original[16] = array_init(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1825 int swapped[16] = array_init(8, 4, 14, 3, 1, 5, 9, 12, 0, 6, 11, 10, 7, 15, 2, 13);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1826
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1827 for (size_t i = 0; i < 16; i++) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1828 cxListAdd(list, &original[i]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1829 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1830
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1831 CX_TEST_ASSERT(0 == cxListSwap(list, 1, 4));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1832 CX_TEST_ASSERT(0 == cxListSwap(list, 2, 14));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1833 CX_TEST_ASSERT(0 == cxListSwap(list, 9, 6));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1834 CX_TEST_ASSERT(0 == cxListSwap(list, 3, 3));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1835 CX_TEST_ASSERT(0 == cxListSwap(list, 10, 11));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1836 CX_TEST_ASSERT(0 == cxListSwap(list, 8, 0));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1837 CX_TEST_ASSERT(0 == cxListSwap(list, 7, 12));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1838 CX_TEST_ASSERT(0 == cxListSwap(list, 13, 15));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1839
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1840 CX_TEST_ASSERT(0 != cxListSwap(list, 5, 16));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1841 CX_TEST_ASSERT(0 != cxListSwap(list, 16, 6));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1842 CX_TEST_ASSERT(0 != cxListSwap(list, 16, 17));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1843
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1844 CxIterator iter = cxListIterator(list);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1845 cx_foreach(int*, e, iter) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1846 CX_TEST_ASSERT(*e == swapped[iter.index]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1847 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1848 iter = cxListBackwardsIterator(list);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1849 cx_foreach(int*, e, iter) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1850 CX_TEST_ASSERT(*e == swapped[iter.index]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1851 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1852 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1853
807
c8d692131b1e remove flags to disable SBO in tests - fix #343 fix #358
Mike Becker <universe@uap-core.de>
parents: 804
diff changeset
1854 CX_TEST(test_list_arl_swap_no_sbo) {
1321
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1855 CxTestingAllocator talloc;
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1856 cx_testing_allocator_init(&talloc);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1857 CxAllocator *alloc = &talloc.base;
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1858 CX_TEST_DO {
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1859 size_t item_size = 2*cx_array_swap_sbo_size;
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1860 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, item_size, 8);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1861
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1862 char *obj = malloc(item_size);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1863 for (char c = 'a' ; c <= 'z' ; c++) {
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1864 obj[0] = c;
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1865 obj[item_size-1] = c;
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1866 cxListAdd(list, obj);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1867 }
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1868 free(obj);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1869
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1870 CX_TEST_ASSERT(((char*)cxListAt(list, 3))[0] == 'd');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1871 CX_TEST_ASSERT(((char*)cxListAt(list, 17))[0] == 'r');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1872 CX_TEST_ASSERT(((char*)cxListAt(list, 3))[item_size-1] == 'd');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1873 CX_TEST_ASSERT(((char*)cxListAt(list, 17))[item_size-1] == 'r');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1874 cxListSwap(list, 3, 17);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1875 CX_TEST_ASSERT(((char*)cxListAt(list, 17))[0] == 'd');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1876 CX_TEST_ASSERT(((char*)cxListAt(list, 3))[0] == 'r');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1877 CX_TEST_ASSERT(((char*)cxListAt(list, 17))[item_size-1] == 'd');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1878 CX_TEST_ASSERT(((char*)cxListAt(list, 3))[item_size-1] == 'r');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1879
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1880 cxListFree(list);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1881 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1882 }
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
1883 cx_testing_allocator_destroy(&talloc);
807
c8d692131b1e remove flags to disable SBO in tests - fix #343 fix #358
Mike Becker <universe@uap-core.de>
parents: 804
diff changeset
1884 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1885
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1886 roll_out_test_combos(find, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1887 const size_t testdata_len = 500;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1888 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1889
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1890 for (size_t attempt = 0; attempt < 25; attempt++) {
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1891 unsigned exp = rand() % testdata_len; // NOLINT(cert-msc50-cpp)
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1892 int val = testdata[exp];
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1893 // randomly picked number could occur earlier in list - find first position
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1894 for (unsigned i = 0 ; i < exp ; i++) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1895 if (testdata[i] == val) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1896 exp = i;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1897 break;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1898 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1899 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1900 CX_TEST_ASSERT(cxListFind(list, &val) == exp);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1901 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1902
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1903 int notinlist = -1;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1904 CX_TEST_ASSERT(cxListFind(list, &notinlist) == cxListSize(list));
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1905
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1906 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1907 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1908
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1909 roll_out_test_combos_with_defaulted_funcs(sort, {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1910 const size_t testdata_len = 250;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1911 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1912 int *expected = malloc(testdata_len*sizeof(int));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1913 memcpy(expected, testdata, testdata_len*sizeof(int));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1914 qsort(expected, testdata_len, sizeof(int), cx_cmp_int);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1915
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1916 cxListSort(list);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1917 for (size_t i = 0; i < testdata_len; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1918 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == expected[i]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1919 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1920
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1921 free(expected);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1922 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1923 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1924
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1925 roll_out_test_combos(reverse, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1926 const size_t testdata_len = 50;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1927 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1928 cxListReverse(list);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1929 for (size_t i = 0; i < testdata_len; i++) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1930 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == testdata[testdata_len - 1 - i]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1931 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1932 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1933 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1934
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1935 roll_out_test_combos(iterator, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1936 const size_t len = 50;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1937 int *testdata = int_test_data_added_to_list(list, isptrlist, len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1938
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1939 CxIterator iter = cxListIterator(list);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1940 CX_TEST_ASSERT(iter.elem_size == list->collection.elem_size);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1941 CX_TEST_ASSERT(iter.elem_count == list->collection.size);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1942 size_t i = 0;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1943 cx_foreach(int*, x, iter) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1944 CX_TEST_ASSERT(i == iter.index);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1945 CX_TEST_ASSERT(*x == testdata[iter.index]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1946 i++;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1947 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1948 CX_TEST_ASSERT(i == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1949 iter = cxListBackwardsIterator(list);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1950 cx_foreach(int*, x, iter) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1951 CX_TEST_ASSERT(i - 1 == iter.index);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1952 CX_TEST_ASSERT(*x == testdata[iter.index]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1953 i--;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1954 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1955 CX_TEST_ASSERT(i == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1956 i = len / 2;
853
d4baf4dd55c3 simplify iterator structures
Mike Becker <universe@uap-core.de>
parents: 850
diff changeset
1957 CxIterator mut_iter = cxListMutIteratorAt(list, i);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1958 CX_TEST_ASSERT(mut_iter.elem_size == list->collection.elem_size);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1959 CX_TEST_ASSERT(mut_iter.elem_count == list->collection.size);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1960 size_t j = 0;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1961 cx_foreach(int*, x, mut_iter) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1962 CX_TEST_ASSERT(mut_iter.index == len / 2 + j / 2);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1963 CX_TEST_ASSERT(*x == testdata[i]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1964 if (i % 2 == 1) cxIteratorFlagRemoval(mut_iter);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1965 i++;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1966 j++;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1967 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1968 CX_TEST_ASSERT(i == len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1969 i = len / 2;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1970 j = 0;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1971 mut_iter = cxListMutBackwardsIteratorAt(list, i - 1);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1972 cx_foreach(int*, x, mut_iter) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1973 CX_TEST_ASSERT(mut_iter.index == len / 2 - 1 - j);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1974 CX_TEST_ASSERT(*x == testdata[i - 1]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1975 if (i % 2 == 0) cxIteratorFlagRemoval(mut_iter);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1976 i--;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1977 j++;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1978 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1979 CX_TEST_ASSERT(i == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1980 CX_TEST_ASSERT(cxListSize(list) == len / 2);
1387
9bdd053820b7 the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() - fixes #728
Mike Becker <universe@uap-core.de>
parents: 1350
diff changeset
1981 CX_TEST_ASSERT(mut_iter.elem_count == len / 2);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1982 for (size_t k = 0; k < len / 2; k++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1983 CX_TEST_ASSERT(*(int *) cxListAt(list, k) == testdata[k * 2]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1984 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1985
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1986 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1987 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1988
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1989 roll_out_test_combos(insert_with_iterator, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1990 int fivenums[] = array_init(0, 1, 2, 3, 4);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1991 for (size_t i = 0; i < 5; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1992 cxListAdd(list, &fivenums[i]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1993 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1994 int newdata[] = array_init(10, 20, 30, 40, 50);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1995
853
d4baf4dd55c3 simplify iterator structures
Mike Becker <universe@uap-core.de>
parents: 850
diff changeset
1996 CxIterator iter = cxListMutIteratorAt(list, 2);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1997 CX_TEST_ASSERT(cxIteratorValid(iter));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1998 CX_TEST_ASSERT(iter.index == 2);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1999 CX_TEST_ASSERT(*(int *) cxIteratorCurrent(iter) == 2);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2000 CX_TEST_ASSERT(iter.elem_count == 5);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2001 cxListInsertAfter(&iter, &newdata[0]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2002 CX_TEST_ASSERT(cxIteratorValid(iter));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2003 CX_TEST_ASSERT(iter.index == 2);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2004 CX_TEST_ASSERT(*(int *) cxIteratorCurrent(iter) == 2);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2005 CX_TEST_ASSERT(iter.elem_count == 6);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2006 cxListInsertBefore(&iter, &newdata[1]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2007 CX_TEST_ASSERT(cxIteratorValid(iter));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2008 CX_TEST_ASSERT(iter.index == 3);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2009 CX_TEST_ASSERT(*(int *) cxIteratorCurrent(iter) == 2);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2010 CX_TEST_ASSERT(iter.elem_count == 7);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2011
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2012 iter = cxListMutIterator(list);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2013 cxListInsertBefore(&iter, &newdata[2]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2014 CX_TEST_ASSERT(cxIteratorValid(iter));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2015 CX_TEST_ASSERT(iter.index == 1);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2016 CX_TEST_ASSERT(*(int *) cxIteratorCurrent(iter) == 0);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2017 CX_TEST_ASSERT(iter.elem_count == 8);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2018 iter = cxListMutIteratorAt(list, cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2019 cxListInsertBefore(&iter, &newdata[3]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2020 CX_TEST_ASSERT(!cxIteratorValid(iter));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2021 CX_TEST_ASSERT(iter.index == 9);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2022 CX_TEST_ASSERT(iter.elem_count == 9);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2023 iter = cxListMutIteratorAt(list, cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2024 cxListInsertAfter(&iter, &newdata[4]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2025 CX_TEST_ASSERT(!cxIteratorValid(iter));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2026 CX_TEST_ASSERT(iter.index == 10);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2027 CX_TEST_ASSERT(iter.elem_count == 10);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2028
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2029 int expdata[] = array_init(30, 0, 1, 20, 2, 10, 3, 4, 40, 50);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2030 for (size_t j = 0; j < 10; j++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2031 CX_TEST_ASSERT(*(int *) cxListAt(list, j) == expdata[j]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2032 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2033 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2034
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2035 static CX_TEST_SUBROUTINE(test_list_verify_compare, CxList *left, CxList *right) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2036 CX_TEST_ASSERTM(cxListCompare(left, right) == 0, "lists don't start identical");
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2037 int x = 42;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2038 cxListAdd(left, &x);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2039 CX_TEST_ASSERT(cxListSize(left) > cxListSize(right));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2040 CX_TEST_ASSERT(cxListCompare(left, right) > 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2041 CX_TEST_ASSERT(cxListCompare(right, left) < 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2042 cxListAdd(right, &x);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2043 CX_TEST_ASSERT(cxListSize(left) == cxListSize(right));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2044 CX_TEST_ASSERT(cxListCompare(left, right) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2045 int a = 5, b = 10;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2046 cxListInsert(left, 15, &a);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2047 cxListInsert(right, 15, &b);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2048 CX_TEST_ASSERT(cxListSize(left) == cxListSize(right));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2049 CX_TEST_ASSERT(cxListCompare(left, right) < 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2050 CX_TEST_ASSERT(cxListCompare(right, left) > 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2051 *(int *) cxListAt(left, 15) = 10;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2052 CX_TEST_ASSERT(cxListCompare(left, right) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2053 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2054
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2055 #define roll_out_compare_tests(suffix, otherctr) \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2056 roll_out_test_combos(compare_##suffix, { \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2057 const size_t len = 47; \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2058 int *testdata = int_test_data_added_to_list(list, isptrlist, len); \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2059 CxList *other = otherctr; \
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2060 for (size_t i = 0; i < len; i++) cxListAdd(other, &testdata[i]); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2061 CX_TEST_CALL_SUBROUTINE(test_list_verify_compare, list, other); \
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
2062 cxListFree(other); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2063 free(testdata); \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2064 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2065
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2066 roll_out_compare_tests(
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2067 ll, cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int))
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2068 )
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2069
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2070 roll_out_compare_tests(
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2071 pll, cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS)
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2072 )
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2073
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2074 roll_out_compare_tests(
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2075 arl, cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int), 50)
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2076 )
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2077
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2078 roll_out_compare_tests(
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2079 parl, cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS, 50)
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2080 )
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2081
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2082 roll_out_test_combos_with_defaulted_funcs(compare_unoptimized, {
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2083 const size_t len = 33;
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2084 int *testdata = int_test_data_added_to_list(list, isptrlist, len);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2085 CxList *other = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int), 50);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2086 do_set_default_class_funcs(other);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2087 for (size_t i = 0; i < len; i++) cxListAdd(other, &testdata[i]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2088 CX_TEST_CALL_SUBROUTINE(test_list_verify_compare, list, other);
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
2089 cxListFree(other);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2090 free(testdata);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2091 })
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2092
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2093 static unsigned destr_test_ctr;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2094 static int destr_last_value;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2095
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2096 static void simple_destr_test_fun(void *data) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2097 int *ptr = data;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2098 destr_last_value = *ptr;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2099 *ptr = destr_last_value + 1;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2100 destr_test_ctr++;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2101 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2102
985
68754c7de906 major refactoring of attributes
Mike Becker <universe@uap-core.de>
parents: 962
diff changeset
2103 static void advanced_destr_test_fun(cx_attr_unused void *u, void *data) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2104 simple_destr_test_fun(data);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2105 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2106
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2107 static CX_TEST_SUBROUTINE(test_list_verify_destructor, CxList *list,
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 886
diff changeset
2108 const int *testdata, size_t testdata_len) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2109 destr_test_ctr = 0;
1316
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
2110
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
2111 int off = list->collection.store_pointer ? 1 : 0;
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2112
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2113 cxListRemove(list, 15);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2114 CX_TEST_ASSERT(1 == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2115 CX_TEST_ASSERT(testdata[15] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2116 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2117 cxListRemove(list, 47);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2118 CX_TEST_ASSERT(2 == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2119 CX_TEST_ASSERT(testdata[48] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2120 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2121
853
d4baf4dd55c3 simplify iterator structures
Mike Becker <universe@uap-core.de>
parents: 850
diff changeset
2122 CxIterator iter = cxListMutIteratorAt(list, 7);
1387
9bdd053820b7 the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() - fixes #728
Mike Becker <universe@uap-core.de>
parents: 1350
diff changeset
2123 CX_TEST_ASSERT(iter.elem_count == testdata_len - 2);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2124 cxIteratorNext(iter);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2125 CX_TEST_ASSERT(2 == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2126 CX_TEST_ASSERT(testdata[48] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2127 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2128 cxIteratorFlagRemoval(iter);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2129 cxIteratorNext(iter);
1387
9bdd053820b7 the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() - fixes #728
Mike Becker <universe@uap-core.de>
parents: 1350
diff changeset
2130 CX_TEST_ASSERT(iter.elem_count == testdata_len - 3);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2131 CX_TEST_ASSERT(3 == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2132 CX_TEST_ASSERT(testdata[8] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2133 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2134
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2135 iter = cxListMutBackwardsIteratorAt(list, 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2136 cxIteratorNext(iter);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2137 CX_TEST_ASSERT(3 == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2138 CX_TEST_ASSERT(testdata[8] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2139 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2140 cxIteratorFlagRemoval(iter);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2141 cxIteratorNext(iter);
1387
9bdd053820b7 the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() - fixes #728
Mike Becker <universe@uap-core.de>
parents: 1350
diff changeset
2142 CX_TEST_ASSERT(iter.elem_count == testdata_len - 4);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2143 CX_TEST_ASSERT(4 == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2144 CX_TEST_ASSERT(testdata[4] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2145 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2146
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2147 cxListClear(list);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2148 CX_TEST_ASSERT(testdata_len == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2149 CX_TEST_ASSERT(testdata[testdata_len - 1] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2150 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2151
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2152 roll_out_test_combos(simple_destr, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2153 const size_t len = 60;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2154 int *testdata = int_test_data_added_to_list(list, isptrlist, len);
857
4d12e34bb130 add missing convenience functions
Mike Becker <universe@uap-core.de>
parents: 856
diff changeset
2155 cxDefineDestructor(list, simple_destr_test_fun);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2156 CX_TEST_CALL_SUBROUTINE(test_list_verify_destructor, list, testdata, len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2157 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2158 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2159
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2160 roll_out_test_combos(advanced_destr, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2161 const size_t len = 75;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2162 int *testdata = int_test_data_added_to_list(list, isptrlist, len);
857
4d12e34bb130 add missing convenience functions
Mike Becker <universe@uap-core.de>
parents: 856
diff changeset
2163 cxDefineAdvancedDestructor(list, advanced_destr_test_fun, NULL);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2164 CX_TEST_CALL_SUBROUTINE(test_list_verify_destructor, list, testdata, len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2165 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2166 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2167
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2168 CxTestSuite *cx_test_suite_array_list(void) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2169 CxTestSuite *suite = cx_test_suite_new("array_list");
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2170
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
2171 cx_test_register(suite, test_array_add);
998
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
2172 cx_test_register(suite, test_array_add8);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
2173 cx_test_register(suite, test_array_copy_unsupported_width);
999
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
2174 cx_test_register(suite, test_array_reserve);
883
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
2175 cx_test_register(suite, test_array_insert_sorted);
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
2176 cx_test_register(suite, test_array_binary_search);
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
2177
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2178 cx_test_register(suite, test_list_arl_create);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2179 cx_test_register(suite, test_list_arl_create_simple);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2180 cx_test_register(suite, test_list_arl_create_simple_for_pointers);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2181 cx_test_register(suite, test_list_parl_destroy_no_destr);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2182 cx_test_register(suite, test_list_parl_destroy_simple_destr);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2183 cx_test_register(suite, test_list_parl_destroy_adv_destr);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2184
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2185 cx_test_register(suite, test_list_arl_add);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2186 cx_test_register(suite, test_list_parl_add);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2187 cx_test_register(suite, test_list_arl_insert);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2188 cx_test_register(suite, test_list_parl_insert);
1316
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
2189 cx_test_register(suite, test_list_arl_emplace);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
2190 cx_test_register(suite, test_list_parl_emplace);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2191 cx_test_register(suite, test_list_arl_insert_array);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2192 cx_test_register(suite, test_list_parl_insert_array);
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2193 cx_test_register(suite, test_list_arl_insert_sorted);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2194 cx_test_register(suite, test_list_parl_insert_sorted);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2195 cx_test_register(suite, test_list_arl_remove);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2196 cx_test_register(suite, test_list_parl_remove);
1315
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
2197 cx_test_register(suite, test_list_arl_remove_and_get);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
2198 cx_test_register(suite, test_list_parl_remove_and_get);
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
2199 cx_test_register(suite, test_list_arl_remove_array);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
2200 cx_test_register(suite, test_list_parl_remove_array);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2201 cx_test_register(suite, test_list_arl_find_remove);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2202 cx_test_register(suite, test_list_parl_find_remove);
1163
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2203 cx_test_register(suite, test_list_arl_find_remove_sorted);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2204 cx_test_register(suite, test_list_parl_find_remove_sorted);
1294
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2205 cx_test_register(suite, test_list_arl_contains);
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2206 cx_test_register(suite, test_list_parl_contains);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2207 cx_test_register(suite, test_list_arl_clear);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2208 cx_test_register(suite, test_list_parl_clear);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2209 cx_test_register(suite, test_list_arl_at);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2210 cx_test_register(suite, test_list_parl_at);
1287
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2211 cx_test_register(suite, test_list_arl_set);
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2212 cx_test_register(suite, test_list_parl_set);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2213 cx_test_register(suite, test_list_arl_swap);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2214 cx_test_register(suite, test_list_parl_swap);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2215 cx_test_register(suite, test_list_arl_swap_no_sbo);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2216 cx_test_register(suite, test_list_arl_find);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2217 cx_test_register(suite, test_list_parl_find);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2218 cx_test_register(suite, test_list_arl_sort);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2219 cx_test_register(suite, test_list_parl_sort);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2220 cx_test_register(suite, test_list_arl_reverse);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2221 cx_test_register(suite, test_list_parl_reverse);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2222 cx_test_register(suite, test_list_arl_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2223 cx_test_register(suite, test_list_parl_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2224 cx_test_register(suite, test_list_arl_insert_with_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2225 cx_test_register(suite, test_list_parl_insert_with_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2226 cx_test_register(suite, test_list_arl_compare_ll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2227 cx_test_register(suite, test_list_arl_compare_arl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2228 cx_test_register(suite, test_list_arl_compare_pll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2229 cx_test_register(suite, test_list_arl_compare_parl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2230 cx_test_register(suite, test_list_parl_compare_ll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2231 cx_test_register(suite, test_list_parl_compare_arl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2232 cx_test_register(suite, test_list_parl_compare_pll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2233 cx_test_register(suite, test_list_parl_compare_parl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2234 cx_test_register(suite, test_list_arl_simple_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2235 cx_test_register(suite, test_list_parl_simple_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2236 cx_test_register(suite, test_list_arl_advanced_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2237 cx_test_register(suite, test_list_parl_advanced_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2238
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2239 return suite;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2240 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2241
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2242 CxTestSuite *cx_test_suite_array_list_defaulted_funcs(void) {
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2243 CxTestSuite *suite = cx_test_suite_new(
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2244 "array_list with defaulted functions");
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2245
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2246 cx_test_register(suite, test_list_arlm_insert_array);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2247 cx_test_register(suite, test_list_parlm_insert_array);
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2248 cx_test_register(suite, test_list_arlm_insert_sorted);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2249 cx_test_register(suite, test_list_parlm_insert_sorted);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2250 cx_test_register(suite, test_list_arlm_swap);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2251 cx_test_register(suite, test_list_parlm_swap);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2252 cx_test_register(suite, test_list_arlm_sort);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2253 cx_test_register(suite, test_list_parlm_sort);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2254
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2255 cx_test_register(suite, test_list_arl_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2256 cx_test_register(suite, test_list_parl_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2257 cx_test_register(suite, test_list_arlm_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2258 cx_test_register(suite, test_list_parlm_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2259
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2260 return suite;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2261 }
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2262
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2263 CxTestSuite *cx_test_suite_linked_list(void) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2264 CxTestSuite *suite = cx_test_suite_new("linked_list");
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2265
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2266 cx_test_register(suite, test_linked_list_link_unlink);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2267 cx_test_register(suite, test_linked_list_at);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2268 cx_test_register(suite, test_linked_list_find);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2269 cx_test_register(suite, test_linked_list_compare);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2270 cx_test_register(suite, test_linked_list_add);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2271 cx_test_register(suite, test_linked_list_prepend);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2272 cx_test_register(suite, test_linked_list_insert);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2273 cx_test_register(suite, test_linked_list_insert_chain);
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
2274 cx_test_register(suite, test_linked_list_insert_sorted);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2275 cx_test_register(suite, test_linked_list_first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2276 cx_test_register(suite, test_linked_list_last);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2277 cx_test_register(suite, test_linked_list_prev);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2278 cx_test_register(suite, test_linked_list_remove);
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
2279 cx_test_register(suite, test_linked_list_remove_chain);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2280 cx_test_register(suite, test_linked_list_size);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2281 cx_test_register(suite, test_linked_list_sort_empty);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2282 cx_test_register(suite, test_linked_list_sort);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2283 cx_test_register(suite, test_linked_list_reverse);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2284
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2285 cx_test_register(suite, test_list_ll_create);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2286 cx_test_register(suite, test_list_ll_create_simple);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2287 cx_test_register(suite, test_list_ll_create_simple_for_pointers);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2288 cx_test_register(suite, test_list_pll_destroy_no_destr);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2289 cx_test_register(suite, test_list_pll_destroy_simple_destr);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2290 cx_test_register(suite, test_list_pll_destroy_adv_destr);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2291
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2292 cx_test_register(suite, test_list_ll_add);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2293 cx_test_register(suite, test_list_pll_add);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2294 cx_test_register(suite, test_list_ll_insert);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2295 cx_test_register(suite, test_list_pll_insert);
1316
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
2296 cx_test_register(suite, test_list_ll_emplace);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
2297 cx_test_register(suite, test_list_pll_emplace);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2298 cx_test_register(suite, test_list_ll_insert_array);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2299 cx_test_register(suite, test_list_pll_insert_array);
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2300 cx_test_register(suite, test_list_ll_insert_sorted);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2301 cx_test_register(suite, test_list_pll_insert_sorted);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2302 cx_test_register(suite, test_list_ll_remove);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2303 cx_test_register(suite, test_list_pll_remove);
1315
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
2304 cx_test_register(suite, test_list_ll_remove_and_get);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
2305 cx_test_register(suite, test_list_pll_remove_and_get);
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
2306 cx_test_register(suite, test_list_ll_remove_array);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
2307 cx_test_register(suite, test_list_pll_remove_array);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2308 cx_test_register(suite, test_list_ll_find_remove);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2309 cx_test_register(suite, test_list_pll_find_remove);
1163
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2310 cx_test_register(suite, test_list_ll_find_remove_sorted);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2311 cx_test_register(suite, test_list_pll_find_remove_sorted);
1294
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2312 cx_test_register(suite, test_list_ll_contains);
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2313 cx_test_register(suite, test_list_pll_contains);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2314 cx_test_register(suite, test_list_ll_clear);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2315 cx_test_register(suite, test_list_pll_clear);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2316 cx_test_register(suite, test_list_ll_at);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2317 cx_test_register(suite, test_list_pll_at);
1287
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2318 cx_test_register(suite, test_list_ll_set);
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2319 cx_test_register(suite, test_list_pll_set);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2320 cx_test_register(suite, test_list_ll_swap);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2321 cx_test_register(suite, test_list_pll_swap);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2322 cx_test_register(suite, test_list_ll_find);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2323 cx_test_register(suite, test_list_pll_find);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2324 cx_test_register(suite, test_list_ll_sort);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2325 cx_test_register(suite, test_list_pll_sort);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2326 cx_test_register(suite, test_list_ll_reverse);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2327 cx_test_register(suite, test_list_pll_reverse);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2328 cx_test_register(suite, test_list_ll_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2329 cx_test_register(suite, test_list_pll_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2330 cx_test_register(suite, test_list_ll_insert_with_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2331 cx_test_register(suite, test_list_pll_insert_with_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2332 cx_test_register(suite, test_list_ll_compare_ll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2333 cx_test_register(suite, test_list_ll_compare_arl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2334 cx_test_register(suite, test_list_ll_compare_pll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2335 cx_test_register(suite, test_list_ll_compare_parl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2336 cx_test_register(suite, test_list_pll_compare_ll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2337 cx_test_register(suite, test_list_pll_compare_arl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2338 cx_test_register(suite, test_list_pll_compare_pll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2339 cx_test_register(suite, test_list_pll_compare_parl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2340 cx_test_register(suite, test_list_ll_simple_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2341 cx_test_register(suite, test_list_pll_simple_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2342 cx_test_register(suite, test_list_ll_advanced_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2343 cx_test_register(suite, test_list_pll_advanced_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2344
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2345 return suite;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2346 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2347
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2348 CxTestSuite *cx_test_suite_linked_list_defaulted_funcs(void) {
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2349 CxTestSuite *suite = cx_test_suite_new(
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2350 "linked_list with defaulted functions");
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2351
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2352 cx_test_register(suite, test_list_llm_insert_array);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2353 cx_test_register(suite, test_list_pllm_insert_array);
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2354 cx_test_register(suite, test_list_llm_insert_sorted);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2355 cx_test_register(suite, test_list_pllm_insert_sorted);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2356 cx_test_register(suite, test_list_llm_swap);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2357 cx_test_register(suite, test_list_pllm_swap);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2358 cx_test_register(suite, test_list_llm_sort);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2359 cx_test_register(suite, test_list_pllm_sort);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2360
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2361 cx_test_register(suite, test_list_ll_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2362 cx_test_register(suite, test_list_pll_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2363 cx_test_register(suite, test_list_llm_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2364 cx_test_register(suite, test_list_pllm_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2365
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2366 return suite;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2367 }
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2368
1350
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2369 CxTestSuite *cx_test_suite_kv_list(void) {
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2370 CxTestSuite *suite = cx_test_suite_new("kv_list");
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2371
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2372 cx_test_register(suite, test_list_kvl_add);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2373 cx_test_register(suite, test_list_pkvl_add);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2374 cx_test_register(suite, test_list_kvl_insert);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2375 cx_test_register(suite, test_list_pkvl_insert);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2376 cx_test_register(suite, test_list_kvl_emplace);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2377 cx_test_register(suite, test_list_pkvl_emplace);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2378 cx_test_register(suite, test_list_kvl_insert_array);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2379 cx_test_register(suite, test_list_pkvl_insert_array);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2380 cx_test_register(suite, test_list_kvl_insert_sorted);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2381 cx_test_register(suite, test_list_pkvl_insert_sorted);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2382 cx_test_register(suite, test_list_kvl_remove);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2383 cx_test_register(suite, test_list_pkvl_remove);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2384 cx_test_register(suite, test_list_kvl_remove_and_get);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2385 cx_test_register(suite, test_list_pkvl_remove_and_get);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2386 cx_test_register(suite, test_list_kvl_remove_array);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2387 cx_test_register(suite, test_list_pkvl_remove_array);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2388 cx_test_register(suite, test_list_kvl_find_remove);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2389 cx_test_register(suite, test_list_pkvl_find_remove);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2390 cx_test_register(suite, test_list_kvl_find_remove_sorted);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2391 cx_test_register(suite, test_list_pkvl_find_remove_sorted);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2392 cx_test_register(suite, test_list_kvl_contains);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2393 cx_test_register(suite, test_list_pkvl_contains);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2394 cx_test_register(suite, test_list_kvl_clear);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2395 cx_test_register(suite, test_list_pkvl_clear);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2396 cx_test_register(suite, test_list_kvl_at);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2397 cx_test_register(suite, test_list_pkvl_at);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2398 cx_test_register(suite, test_list_kvl_set);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2399 cx_test_register(suite, test_list_pkvl_set);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2400 cx_test_register(suite, test_list_kvl_swap);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2401 cx_test_register(suite, test_list_pkvl_swap);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2402 cx_test_register(suite, test_list_kvl_find);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2403 cx_test_register(suite, test_list_pkvl_find);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2404 cx_test_register(suite, test_list_kvl_sort);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2405 cx_test_register(suite, test_list_pkvl_sort);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2406 cx_test_register(suite, test_list_kvl_reverse);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2407 cx_test_register(suite, test_list_pkvl_reverse);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2408 cx_test_register(suite, test_list_kvl_iterator);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2409 cx_test_register(suite, test_list_pkvl_iterator);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2410 cx_test_register(suite, test_list_kvl_insert_with_iterator);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2411 cx_test_register(suite, test_list_pkvl_insert_with_iterator);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2412 cx_test_register(suite, test_list_kvl_compare_ll);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2413 cx_test_register(suite, test_list_kvl_compare_arl);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2414 cx_test_register(suite, test_list_kvl_compare_pll);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2415 cx_test_register(suite, test_list_kvl_compare_parl);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2416 cx_test_register(suite, test_list_pkvl_compare_ll);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2417 cx_test_register(suite, test_list_pkvl_compare_arl);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2418 cx_test_register(suite, test_list_pkvl_compare_pll);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2419 cx_test_register(suite, test_list_pkvl_compare_parl);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2420 cx_test_register(suite, test_list_kvl_simple_destr);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2421 cx_test_register(suite, test_list_pkvl_simple_destr);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2422 cx_test_register(suite, test_list_kvl_advanced_destr);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2423 cx_test_register(suite, test_list_pkvl_advanced_destr);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2424
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2425 return suite;
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2426 }
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2427
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2428 CxTestSuite *cx_test_suite_empty_list(void) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2429 CxTestSuite *suite = cx_test_suite_new("empty list dummy");
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2430
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2431 cx_test_register(suite, test_empty_list_size);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2432 cx_test_register(suite, test_empty_list_iterator);
1388
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
2433 cx_test_register(suite, test_null_list_iterator);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2434 cx_test_register(suite, test_empty_list_noops);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2435 cx_test_register(suite, test_empty_list_at);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2436 cx_test_register(suite, test_empty_list_find);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2437 cx_test_register(suite, test_empty_list_compare);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2438
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2439 return suite;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2440 }

mercurial