Sun, 23 Nov 2025 13:15:19 +0100
optimize sorted insertion by using the infimum instead of the supremum
The reason is that the supremum returns the equal element with the smallest index, and we want the largest.
Therefore, we use the infimum, which already gives us the largest index when there are equal elements, and increase the index by one. The infimum is also guaranteed to exist in that case.
|
1350
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1 | /* |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
2 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
3 | * |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
4 | * Copyright 2025 Mike Becker, Olaf Wintermann All rights reserved. |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
5 | * |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
6 | * Redistribution and use in source and binary forms, with or without |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
7 | * modification, are permitted provided that the following conditions are met: |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
8 | * |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
9 | * 1. Redistributions of source code must retain the above copyright |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
10 | * notice, this list of conditions and the following disclaimer. |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
11 | * |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
12 | * 2. Redistributions in binary form must reproduce the above copyright |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
13 | * notice, this list of conditions and the following disclaimer in the |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
14 | * documentation and/or other materials provided with the distribution. |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
15 | * |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
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 |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
26 | * POSSIBILITY OF SUCH DAMAGE. |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
27 | */ |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
28 | |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
29 | #include "cx/test.h" |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
30 | #include "util_allocator.h" |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
31 | |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
32 | #include "cx/kv_list.h" |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
33 | |
|
1380
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
34 | static int kv_list_test_destr_val; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
35 | static void kv_list_test_destr(void *data) { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
36 | kv_list_test_destr_val = *(int*)data; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
37 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
38 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
39 | static void *kv_list_test_destr2_extra; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
40 | static int kv_list_test_destr2_val; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
41 | static void kv_list_test_destr2(void* extra, void *data) { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
42 | kv_list_test_destr2_extra = extra; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
43 | kv_list_test_destr2_val = *(int*)data; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
44 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
45 | |
|
1350
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
46 | CX_TEST(test_kv_list_map_as_list) { |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
47 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
48 | CX_TEST_DO { |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
49 | CxMap *map = cxKvListAsMap(list); |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
50 | CX_TEST_ASSERT(map != NULL); |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
51 | CxList *list_from_map = cxKvListAsList(map); |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
52 | CX_TEST_ASSERT(list_from_map == list); |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
53 | } |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
54 | cxListFree(list); |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
55 | } |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
56 | |
|
1361
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
57 | CX_TEST(test_kv_list_free_as_map) { |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
58 | CxTestingAllocator talloc; |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
59 | cx_testing_allocator_init(&talloc); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
60 | CX_TEST_DO { |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
61 | CxList *list = cxKvListCreate(&talloc.base, NULL, 1); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
62 | cxListAddArray(list, "test", 4); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
63 | CxMap *map = cxKvListAsMap(list); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
64 | cxMapFree(map); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
65 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
66 | } |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
67 | cx_testing_allocator_destroy(&talloc); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
68 | } |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
69 | |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
70 | CX_TEST(test_kv_list_free_as_list) { |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
71 | CxTestingAllocator talloc; |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
72 | cx_testing_allocator_init(&talloc); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
73 | CX_TEST_DO { |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
74 | CxMap *map = cxKvListCreateAsMap(&talloc.base, NULL, sizeof(int)); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
75 | int x = 5; |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
76 | cxMapPut(map, "test", &x); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
77 | CxList *list = cxKvListAsList(map); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
78 | cxListFree(list); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
79 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
80 | } |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
81 | cx_testing_allocator_destroy(&talloc); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
82 | } |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
83 | |
|
1373
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
84 | CX_TEST(test_kv_list_remove) { |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
85 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
86 | int x; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
87 | CX_TEST_DO { |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
88 | CxMap *map = cxKvListAsMap(list); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
89 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
90 | x = 13; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
91 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
92 | x = 37; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
93 | CX_TEST_ASSERT(0 == cxMapPut(map, "abc", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
94 | x = 47; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
95 | CX_TEST_ASSERT(0 == cxMapPut(map, "efg", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
96 | x = 90; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
97 | CX_TEST_ASSERT(0 == cxMapPut(map, "hij", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
98 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
99 | CX_TEST_ASSERT(cxMapSize(map) == 4); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
100 | CX_TEST_ASSERT(cxListSize(list) == 4); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
101 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
102 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "efg") == 47); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
103 | CX_TEST_ASSERT(0 == cxListRemove(list, 2)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
104 | CX_TEST_ASSERT(cxListSize(list) == 3); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
105 | CX_TEST_ASSERT(cxMapSize(map) == 3); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
106 | CX_TEST_ASSERT(cxMapGet(map, "efg") == NULL); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
107 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
108 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 13); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
109 | CX_TEST_ASSERT(0 == cxListRemove(list, 0)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
110 | CX_TEST_ASSERT(cxListSize(list) == 2); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
111 | CX_TEST_ASSERT(cxMapSize(map) == 2); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
112 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
113 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
114 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "hij") == 90); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
115 | CX_TEST_ASSERT(0 == cxListRemove(list, 1)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
116 | CX_TEST_ASSERT(cxListSize(list) == 1); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
117 | CX_TEST_ASSERT(cxMapSize(map) == 1); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
118 | CX_TEST_ASSERT(cxMapGet(map, "hij") == NULL); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
119 | } |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
120 | cxListFree(list); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
121 | } |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
122 | |
|
1375
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
123 | CX_TEST(test_kv_list_find_and_remove) { |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
124 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
1464
9a10af83cfab
add cxCollectionCompareFunc() macro
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
125 | cxCollectionCompareFunc(list, cx_cmp_int); |
|
1375
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
126 | int x, y; |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
127 | CX_TEST_DO { |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
128 | CxMap *map = cxKvListAsMap(list); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
129 | |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
130 | x = 13; |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
131 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
132 | x = 37; |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
133 | CX_TEST_ASSERT(0 == cxMapPut(map, "abc", &x)); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
134 | x = 47; |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
135 | CX_TEST_ASSERT(0 == cxMapPut(map, "efg", &x)); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
136 | x = 90; |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
137 | CX_TEST_ASSERT(0 == cxMapPut(map, "hij", &x)); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
138 | |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
139 | CX_TEST_ASSERT(cxMapSize(map) == 4); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
140 | CX_TEST_ASSERT(cxListSize(list) == 4); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
141 | |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
142 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "efg") == 47); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
143 | y = 47; |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
144 | CX_TEST_ASSERT(2 == cxListFindRemove(list, &y)); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
145 | CX_TEST_ASSERT(cxListSize(list) == 3); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
146 | CX_TEST_ASSERT(cxMapSize(map) == 3); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
147 | CX_TEST_ASSERT(cxMapGet(map, "efg") == NULL); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
148 | |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
149 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 13); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
150 | y = 13; |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
151 | CX_TEST_ASSERT(0 == cxListFindRemove(list, &y)); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
152 | CX_TEST_ASSERT(cxListSize(list) == 2); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
153 | CX_TEST_ASSERT(cxMapSize(map) == 2); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
154 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
155 | |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
156 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "hij") == 90); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
157 | y = 90; |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
158 | CX_TEST_ASSERT(1 == cxListFindRemove(list, &y)); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
159 | CX_TEST_ASSERT(cxListSize(list) == 1); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
160 | CX_TEST_ASSERT(cxMapSize(map) == 1); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
161 | CX_TEST_ASSERT(cxMapGet(map, "hij") == NULL); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
162 | |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
163 | y = 666; |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
164 | CX_TEST_ASSERT(cxListSize(list) == cxListFindRemove(list, &y)); |
|
1380
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
165 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
166 | y = 37; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
167 | CX_TEST_ASSERT(0 == cxListFindRemove(list, &y)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
168 | CX_TEST_ASSERT(cxListSize(list) == 0); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
169 | CX_TEST_ASSERT(cxMapSize(map) == 0); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
170 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
171 | CX_TEST_ASSERT(0 == cxListFindRemove(list, &y)); |
|
1375
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
172 | } |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
173 | cxListFree(list); |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
174 | } |
|
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
175 | |
|
1373
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
176 | CX_TEST(test_kv_list_remove_and_get) { |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
177 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
178 | int x, y; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
179 | CX_TEST_DO { |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
180 | CxMap *map = cxKvListAsMap(list); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
181 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
182 | x = 13; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
183 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
184 | x = 37; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
185 | CX_TEST_ASSERT(0 == cxMapPut(map, "abc", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
186 | x = 47; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
187 | CX_TEST_ASSERT(0 == cxMapPut(map, "efg", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
188 | x = 90; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
189 | CX_TEST_ASSERT(0 == cxMapPut(map, "hij", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
190 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
191 | CX_TEST_ASSERT(cxMapSize(map) == 4); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
192 | CX_TEST_ASSERT(cxListSize(list) == 4); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
193 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
194 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "efg") == 47); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
195 | CX_TEST_ASSERT(0 == cxListRemoveAndGet(list, 2, &y)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
196 | CX_TEST_ASSERT(y == 47); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
197 | CX_TEST_ASSERT(cxListSize(list) == 3); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
198 | CX_TEST_ASSERT(cxMapSize(map) == 3); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
199 | CX_TEST_ASSERT(cxMapGet(map, "efg") == NULL); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
200 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
201 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 13); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
202 | CX_TEST_ASSERT(0 == cxListRemoveAndGet(list, 0, &y)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
203 | CX_TEST_ASSERT(y == 13); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
204 | CX_TEST_ASSERT(cxListSize(list) == 2); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
205 | CX_TEST_ASSERT(cxMapSize(map) == 2); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
206 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
207 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
208 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "hij") == 90); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
209 | CX_TEST_ASSERT(0 == cxListRemoveAndGet(list, 1, &y)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
210 | CX_TEST_ASSERT(y == 90); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
211 | CX_TEST_ASSERT(cxListSize(list) == 1); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
212 | CX_TEST_ASSERT(cxMapSize(map) == 1); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
213 | CX_TEST_ASSERT(cxMapGet(map, "hij") == NULL); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
214 | } |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
215 | cxListFree(list); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
216 | } |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
217 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
218 | CX_TEST(test_kv_list_remove_array) { |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
219 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
220 | int x; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
221 | CX_TEST_DO { |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
222 | CxMap *map = cxKvListAsMap(list); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
223 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
224 | x = 13; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
225 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
226 | x = 37; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
227 | CX_TEST_ASSERT(0 == cxMapPut(map, "abc", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
228 | x = 47; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
229 | CX_TEST_ASSERT(0 == cxMapPut(map, "efg", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
230 | x = 90; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
231 | CX_TEST_ASSERT(0 == cxMapPut(map, "hij", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
232 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
233 | CX_TEST_ASSERT(cxMapSize(map) == 4); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
234 | CX_TEST_ASSERT(cxListSize(list) == 4); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
235 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
236 | CX_TEST_ASSERT(2 == cxListRemoveArray(list, 1, 2)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
237 | CX_TEST_ASSERT(cxMapSize(map) == 2); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
238 | CX_TEST_ASSERT(cxListSize(list) == 2); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
239 | CX_TEST_ASSERT(cxMapGet(map, "abc") == NULL); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
240 | CX_TEST_ASSERT(cxMapGet(map, "efg") == NULL); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
241 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 13); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
242 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "hij") == 90); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
243 | CX_TEST_ASSERT(cxListAt(list, 0) == cxMapGet(map, "xyz")); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
244 | CX_TEST_ASSERT(cxListAt(list, 1) == cxMapGet(map, "hij")); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
245 | } |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
246 | cxListFree(list); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
247 | } |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
248 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
249 | CX_TEST(test_kv_list_remove_array_and_get) { |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
250 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
251 | int x; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
252 | CX_TEST_DO { |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
253 | CxMap *map = cxKvListAsMap(list); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
254 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
255 | x = 13; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
256 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
257 | x = 37; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
258 | CX_TEST_ASSERT(0 == cxMapPut(map, "abc", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
259 | x = 47; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
260 | CX_TEST_ASSERT(0 == cxMapPut(map, "efg", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
261 | x = 90; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
262 | CX_TEST_ASSERT(0 == cxMapPut(map, "hij", &x)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
263 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
264 | CX_TEST_ASSERT(cxMapSize(map) == 4); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
265 | CX_TEST_ASSERT(cxListSize(list) == 4); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
266 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
267 | int y[2]; |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
268 | |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
269 | CX_TEST_ASSERT(2 == cxListRemoveArrayAndGet(list, 1, 2, y)); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
270 | CX_TEST_ASSERT(y[0] == 37); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
271 | CX_TEST_ASSERT(y[1] == 47); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
272 | CX_TEST_ASSERT(cxMapSize(map) == 2); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
273 | CX_TEST_ASSERT(cxListSize(list) == 2); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
274 | CX_TEST_ASSERT(cxMapGet(map, "abc") == NULL); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
275 | CX_TEST_ASSERT(cxMapGet(map, "efg") == NULL); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
276 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 13); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
277 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "hij") == 90); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
278 | CX_TEST_ASSERT(cxListAt(list, 0) == cxMapGet(map, "xyz")); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
279 | CX_TEST_ASSERT(cxListAt(list, 1) == cxMapGet(map, "hij")); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
280 | } |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
281 | cxListFree(list); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
282 | } |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
283 | |
|
1357
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
284 | CX_TEST(test_kv_list_map_put) { |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
285 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
286 | int x; |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
287 | CX_TEST_DO { |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
288 | CxMap *map = cxKvListAsMap(list); |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
289 | |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
290 | x = 13; |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
291 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
292 | |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
293 | x = 37; |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
294 | CX_TEST_ASSERT(0 == cxMapPut(map, "abc", &x)); |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
295 | |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
296 | CX_TEST_ASSERT(cxMapSize(map) == 2); |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
297 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 13); |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
298 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "abc") == 37); |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
299 | |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
300 | CX_TEST_ASSERT(cxListSize(list) == 2); |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
301 | CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 13); |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
302 | CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 37); |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
303 | } |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
304 | cxListFree(list); |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
305 | } |
|
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
306 | |
|
1370
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
307 | CX_TEST(test_kv_list_map_put_ptr) { |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
308 | CxList *list = cxKvListCreateSimple(CX_STORE_POINTERS); |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
309 | int x; |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
310 | CX_TEST_DO { |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
311 | CxMap *map = cxKvListAsMap(list); |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
312 | x = 13; |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
313 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
314 | x = 37; |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
315 | CX_TEST_ASSERT((int*)cxListAt(list, 0) == &x); |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
316 | CX_TEST_ASSERT((int*)cxMapGet(map, "xyz") == &x); |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
317 | } |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
318 | cxListFree(list); |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
319 | } |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
320 | |
|
1380
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
321 | CX_TEST(test_kv_list_map_put_not_hashed) { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
322 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
323 | int x; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
324 | CX_TEST_DO { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
325 | CxMap *map = cxKvListAsMap(list); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
326 | x = 13; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
327 | // test with a custom key that was not hashed, yet |
|
1405
0f6515875a09
fix using empty initializer, which is a C23 extension
Mike Becker <universe@uap-core.de>
parents:
1394
diff
changeset
|
328 | CxHashKey key = {0}; |
|
1380
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
329 | key.data = "xyz"; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
330 | key.len = 3; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
331 | CX_TEST_ASSERT(0 == cxMapPut(map, key, &x)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
332 | CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 13); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
333 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 13); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
334 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
335 | // remove and check if the copied key is correctly removed |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
336 | CX_TEST_ASSERT(0 == cxListRemove(list, 0)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
337 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
338 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
339 | cxListFree(list); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
340 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
341 | |
|
1359
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
342 | CX_TEST(test_kv_list_map_remove) { |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
343 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
344 | int x; |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
345 | CX_TEST_DO { |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
346 | CxMap *map = cxKvListAsMap(list); |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
347 | |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
348 | x = 13; |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
349 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
350 | |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
351 | x = 37; |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
352 | CX_TEST_ASSERT(0 == cxMapPut(map, "abc", &x)); |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
353 | |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
354 | CX_TEST_ASSERT(cxMapSize(map) == 2); |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
355 | |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
356 | CX_TEST_ASSERT(0 == cxMapRemove(map, "xyz")); |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
357 | CX_TEST_ASSERT(cxMapSize(map) == 1); |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
358 | CX_TEST_ASSERT(cxMapGet(map, "abc") != NULL); |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
359 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
360 | |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
361 | CX_TEST_ASSERT(cxListSize(list) == 1); |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
362 | CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 37); |
|
1360
8b29d732f97b
implement cx_kvl_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1359
diff
changeset
|
363 | |
|
8b29d732f97b
implement cx_kvl_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1359
diff
changeset
|
364 | CX_TEST_ASSERT(0 != cxMapRemove(map, "xyz")); |
|
1359
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
365 | } |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
366 | cxListFree(list); |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
367 | } |
|
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
368 | |
|
1380
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
369 | CX_TEST(test_kv_list_map_remove_and_get) { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
370 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
371 | int x, y; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
372 | CX_TEST_DO { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
373 | CxMap *map = cxKvListAsMap(list); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
374 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
375 | x = 13; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
376 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
377 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
378 | x = 37; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
379 | CX_TEST_ASSERT(0 == cxMapPut(map, "abc", &x)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
380 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
381 | CX_TEST_ASSERT(cxMapSize(map) == 2); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
382 | cxDefineDestructor(map, kv_list_test_destr); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
383 | kv_list_test_destr_val = 0; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
384 | y = 0; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
385 | CX_TEST_ASSERT(0 == cxMapRemoveAndGet(map, "xyz", &y)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
386 | CX_TEST_ASSERT(y == 13); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
387 | // destr not called! |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
388 | CX_TEST_ASSERT(kv_list_test_destr_val == 0); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
389 | CX_TEST_ASSERT(cxMapSize(map) == 1); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
390 | CX_TEST_ASSERT(cxMapGet(map, "abc") != NULL); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
391 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
392 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
393 | CX_TEST_ASSERT(cxListSize(list) == 1); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
394 | CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 37); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
395 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
396 | CX_TEST_ASSERT(0 != cxMapRemove(map, "xyz")); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
397 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
398 | cxListFree(list); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
399 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
400 | |
|
1366
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
401 | CX_TEST(test_kv_list_set_key) { |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
402 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
403 | int x; |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
404 | CX_TEST_DO { |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
405 | x = 47; |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
406 | cxListAdd(list, &x); |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
407 | CX_TEST_ASSERT(0 == cxKvListSetKey(list, 0, "xyz")); |
|
1380
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
408 | // index out of bounds: |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
409 | CX_TEST_ASSERT(0 != cxKvListSetKey(list, 1, "abc")); |
|
1366
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
410 | |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
411 | CxMap *map = cxKvListAsMap(list); |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
412 | |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
413 | CX_TEST_ASSERT(cxMapSize(map) == 1); |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
414 | |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
415 | int *y = cxMapGet(map, "xyz"); |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
416 | CX_TEST_ASSERT(y != NULL); |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
417 | CX_TEST_ASSERT(*y == 47); |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
418 | |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
419 | CX_TEST_ASSERT(0 == cxMapRemove(map, "xyz")); |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
420 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
421 | |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
422 | CX_TEST_ASSERT(cxListSize(list) == 0); |
|
1389
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
423 | |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
424 | // now check with a non-prehashed key |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
425 | x = 85; |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
426 | cxListAdd(list, &x); |
|
1405
0f6515875a09
fix using empty initializer, which is a C23 extension
Mike Becker <universe@uap-core.de>
parents:
1394
diff
changeset
|
427 | CxHashKey key = {0}; |
|
1389
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
428 | key.data = "abc"; |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
429 | key.len = 3; |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
430 | CX_TEST_ASSERT(0 == cxKvListSetKey(list, 0, key)); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
431 | y = cxMapGet(map, "abc"); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
432 | CX_TEST_ASSERT(y != NULL); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
433 | CX_TEST_ASSERT(*y == 85); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
434 | |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
435 | CX_TEST_ASSERT(0 == cxMapRemove(map, "abc")); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
436 | CX_TEST_ASSERT(cxMapGet(map, "abc") == NULL); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
437 | |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
438 | CX_TEST_ASSERT(cxListSize(list) == 0); |
|
1366
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
439 | } |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
440 | cxListFree(list); |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
441 | } |
|
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
442 | |
|
1382
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
443 | CX_TEST(test_kv_list_set_key_already_exists) { |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
444 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
445 | int x; |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
446 | CX_TEST_DO { |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
447 | x = 47; |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
448 | cxListAdd(list, &x); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
449 | x = 11; |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
450 | cxListAdd(list, &x); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
451 | CX_TEST_ASSERT(0 == cxKvListSetKey(list, 1, "xyz")); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
452 | // already exists |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
453 | CX_TEST_ASSERT(0 != cxKvListSetKey(list, 0, "xyz")); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
454 | |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
455 | CxMap *map = cxKvListAsMap(list); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
456 | |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
457 | CX_TEST_ASSERT(cxMapSize(map) == 1); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
458 | |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
459 | int *y = cxMapGet(map, "xyz"); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
460 | CX_TEST_ASSERT(y != NULL); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
461 | CX_TEST_ASSERT(*y == 11); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
462 | |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
463 | CX_TEST_ASSERT(0 == cxMapRemove(map, "xyz")); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
464 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
465 | CX_TEST_ASSERT(cxListSize(list) == 1); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
466 | |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
467 | // now we can assign the key again |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
468 | CX_TEST_ASSERT(0 == cxKvListSetKey(list, 0, "xyz")); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
469 | y = cxMapGet(map, "xyz"); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
470 | CX_TEST_ASSERT(y != NULL); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
471 | CX_TEST_ASSERT(*y == 47); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
472 | } |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
473 | cxListFree(list); |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
474 | } |
|
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
475 | |
|
1383
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
476 | CX_TEST(test_kv_list_set_key_again) { |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
477 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
478 | int x; |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
479 | CX_TEST_DO { |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
480 | x = 47; |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
481 | cxListAdd(list, &x); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
482 | x = 11; |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
483 | cxListAdd(list, &x); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
484 | CX_TEST_ASSERT(0 == cxKvListSetKey(list, 1, "xyz")); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
485 | // calling it twice is also okay! |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
486 | CX_TEST_ASSERT(0 == cxKvListSetKey(list, 1, "xyz")); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
487 | |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
488 | CxMap *map = cxKvListAsMap(list); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
489 | |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
490 | CX_TEST_ASSERT(cxMapSize(map) == 1); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
491 | |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
492 | int *y = cxMapGet(map, "xyz"); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
493 | CX_TEST_ASSERT(y != NULL); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
494 | CX_TEST_ASSERT(*y == 11); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
495 | |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
496 | CX_TEST_ASSERT(0 == cxMapRemove(map, "xyz")); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
497 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
498 | CX_TEST_ASSERT(cxListSize(list) == 1); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
499 | } |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
500 | cxListFree(list); |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
501 | } |
|
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
502 | |
|
1377
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
503 | CX_TEST(test_kv_list_remove_key) { |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
504 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
505 | int x; |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
506 | CX_TEST_DO { |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
507 | CxMap *map = cxKvListAsMap(list); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
508 | |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
509 | x = 47; |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
510 | cxMapPut(map, "xyz", &x); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
511 | x = 11; |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
512 | cxMapPut(map, "abc", &x); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
513 | x = 1337; |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
514 | cxMapPut(map, "efg", &x); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
515 | CX_TEST_ASSERT(cxMapSize(map) == 3); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
516 | |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
517 | int *y = cxMapGet(map, "abc"); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
518 | CX_TEST_ASSERT(y != NULL); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
519 | CX_TEST_ASSERT(*y == 11); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
520 | |
|
1380
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
521 | CX_TEST_ASSERT(0 == cxKvListRemoveKey(list, 1)); |
|
1377
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
522 | CX_TEST_ASSERT(cxMapGet(map, "abc") == NULL); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
523 | CX_TEST_ASSERT(cxMapSize(map) == 2); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
524 | CX_TEST_ASSERT(cxListSize(list) == 3); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
525 | |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
526 | CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 11); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
527 | |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
528 | y = cxMapGet(map, "xyz"); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
529 | CX_TEST_ASSERT(y != NULL); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
530 | CX_TEST_ASSERT(*y == 47); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
531 | |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
532 | y = cxMapGet(map, "efg"); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
533 | CX_TEST_ASSERT(y != NULL); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
534 | CX_TEST_ASSERT(*y == 1337); |
|
1380
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
535 | |
|
1389
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
536 | // idempotence |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
537 | CX_TEST_ASSERT(0 == cxKvListRemoveKey(list, 1)); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
538 | |
|
1380
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
539 | // index out of bounds: |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
540 | CX_TEST_ASSERT(0 != cxKvListRemoveKey(list, 3)); |
|
1377
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
541 | } |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
542 | cxListFree(list); |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
543 | } |
|
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
544 | |
| 1394 | 545 | CX_TEST(test_kv_list_get_key) { |
| 546 | CxList *list = cxKvListCreateSimple(sizeof(int)); | |
| 547 | int x; | |
| 548 | CX_TEST_DO { | |
| 549 | CxMap *map = cxKvListAsMap(list); | |
| 550 | ||
| 551 | x = 47; | |
| 552 | cxMapPut(map, "xyz", &x); | |
| 553 | x = 11; | |
| 554 | cxMapPut(map, "abc", &x); | |
| 555 | x = 1337; | |
| 556 | cxMapPut(map, "efg", &x); | |
| 557 | CX_TEST_ASSERT(cxMapSize(map) == 3); | |
| 558 | ||
| 559 | const CxHashKey *key = cxKvListGetKey(list, 1); | |
| 560 | int *y = cxMapGet(map, *key); | |
| 561 | CX_TEST_ASSERT(y != NULL); | |
| 562 | CX_TEST_ASSERT(*y == 11); | |
| 563 | ||
| 564 | // removing the element | |
| 565 | CX_TEST_ASSERT(0 == cxMapRemove(map, cx_strn(key->data, key->len))); | |
| 566 | key = cxKvListGetKey(list, 1); | |
| 567 | CX_TEST_ASSERT(0 == cx_strcmp(CX_STR("efg"), cx_strn(key->data, key->len))); | |
| 568 | ||
| 569 | // remove the key of element | |
| 570 | CX_TEST_ASSERT(0 == cxKvListRemoveKey(list, 1)); | |
| 571 | CX_TEST_ASSERT(NULL == cxKvListGetKey(list, 1)); | |
| 572 | ||
| 573 | // index out of bounds: | |
| 574 | CX_TEST_ASSERT(NULL == cxKvListGetKey(list, 3)); | |
| 575 | } | |
| 576 | cxListFree(list); | |
| 577 | } | |
| 578 | ||
|
1378
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
579 | CX_TEST(test_kv_list_insert_with_key) { |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
580 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
581 | int x; |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
582 | CX_TEST_DO { |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
583 | x = 47; |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
584 | cxKvListAdd(list, "xyz", &x); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
585 | x = 11; |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
586 | cxKvListAdd(list, "abc", &x); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
587 | x = 1337; |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
588 | cxKvListInsert(list, 1, "efg", &x); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
589 | |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
590 | CX_TEST_ASSERT(cxListSize(list) == 3); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
591 | CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 47); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
592 | CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 1337); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
593 | CX_TEST_ASSERT(*(int*)cxListAt(list, 2) == 11); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
594 | |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
595 | CxMap *map = cxKvListAsMap(list); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
596 | CX_TEST_ASSERT(cxMapSize(map) == 3); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
597 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 47); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
598 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "abc") == 11); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
599 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "efg") == 1337); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
600 | } |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
601 | cxListFree(list); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
602 | } |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
603 | |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
604 | CX_TEST(test_kv_list_insert_ptr_with_key) { |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
605 | CxList *list = cxKvListCreateSimple(CX_STORE_POINTERS); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
606 | int x, y, z; |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
607 | CX_TEST_DO { |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
608 | x = 15; |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
609 | cxKvListAdd(list, "xyz", &x); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
610 | y = 16; |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
611 | cxKvListAdd(list, "abc", &y); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
612 | z = 17; |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
613 | cxKvListInsert(list, 1, "efg", &z); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
614 | x = 47; |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
615 | y = 11; |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
616 | z = 1337; |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
617 | |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
618 | CX_TEST_ASSERT(cxListSize(list) == 3); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
619 | CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 47); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
620 | CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 1337); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
621 | CX_TEST_ASSERT(*(int*)cxListAt(list, 2) == 11); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
622 | |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
623 | CxMap *map = cxKvListAsMap(list); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
624 | CX_TEST_ASSERT(cxMapSize(map) == 3); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
625 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 47); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
626 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "abc") == 11); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
627 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "efg") == 1337); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
628 | } |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
629 | cxListFree(list); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
630 | } |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
631 | |
|
1372
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
632 | CX_TEST(test_kv_list_insert_array_and_set_keys) { |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
633 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
634 | CX_TEST_DO { |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
635 | int arr[] = { 13, 21, 34, 55, 89 }; |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
636 | CX_TEST_ASSERT(5 == cxListAddArray(list, arr, 5)); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
637 | CX_TEST_ASSERT(5 == cxListSize(list)); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
638 | CX_TEST_ASSERT(0 == cxKvListSetKey(list, 0, "xyz")); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
639 | CX_TEST_ASSERT(0 == cxKvListSetKey(list, 1, "abc")); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
640 | CX_TEST_ASSERT(0 == cxKvListSetKey(list, 2, "def")); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
641 | CX_TEST_ASSERT(0 == cxKvListSetKey(list, 3, "ghi")); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
642 | CX_TEST_ASSERT(0 == cxKvListSetKey(list, 4, "jkl")); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
643 | |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
644 | CxMap *map = cxKvListAsMap(list); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
645 | CX_TEST_ASSERT(5 == cxMapSize(map)); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
646 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 13); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
647 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "abc") == 21); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
648 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "def") == 34); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
649 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "ghi") == 55); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
650 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "jkl") == 89); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
651 | } |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
652 | cxListFree(list); |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
653 | } |
|
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
654 | |
|
1363
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
655 | CX_TEST(test_kv_list_list_remove_destr_in_list) { |
|
1361
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
656 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
657 | int x; |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
658 | CX_TEST_DO { |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
659 | x = 0xabcd; |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
660 | CX_TEST_ASSERT(0 == cxListAdd(list, &x)); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
661 | cxKvListSetKey(list, 0, "xyz"); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
662 | |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
663 | cxDefineDestructor(list, kv_list_test_destr); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
664 | kv_list_test_destr_val = 0; |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
665 | CX_TEST_ASSERT(0 == cxListRemove(list, 0)); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
666 | CX_TEST_ASSERT(kv_list_test_destr_val == 0xabcd); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
667 | } |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
668 | cxListFree(list); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
669 | } |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
670 | |
|
1363
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
671 | CX_TEST(test_kv_list_list_remove_destr_in_map) { |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
672 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
673 | int x; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
674 | CX_TEST_DO { |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
675 | x = 0xabcd; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
676 | CX_TEST_ASSERT(0 == cxListAdd(list, &x)); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
677 | cxKvListSetKey(list, 0, "xyz"); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
678 | CxMap *map = cxKvListAsMap(list); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
679 | cxDefineDestructor(map, kv_list_test_destr); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
680 | kv_list_test_destr_val = 0; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
681 | CX_TEST_ASSERT(0 == cxListRemove(list, 0)); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
682 | CX_TEST_ASSERT(kv_list_test_destr_val == 0xabcd); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
683 | } |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
684 | cxListFree(list); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
685 | } |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
686 | |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
687 | CX_TEST(test_kv_list_map_remove_destr_in_list) { |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
688 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
689 | int x; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
690 | CX_TEST_DO { |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
691 | x = 0xabcd; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
692 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
693 | CxList *list = cxKvListAsList(map); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
694 | cxDefineDestructor(list, kv_list_test_destr); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
695 | kv_list_test_destr_val = 0; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
696 | CX_TEST_ASSERT(0 == cxMapRemove(map, "xyz")); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
697 | CX_TEST_ASSERT(kv_list_test_destr_val == 0xabcd); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
698 | } |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
699 | cxMapFree(map); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
700 | } |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
701 | |
|
1361
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
702 | CX_TEST(test_kv_list_map_remove_destr_in_map) { |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
703 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
704 | int x; |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
705 | CX_TEST_DO { |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
706 | x = 0xabcd; |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
707 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
708 | |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
709 | cxDefineDestructor(map, kv_list_test_destr); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
710 | kv_list_test_destr_val = 0; |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
711 | CX_TEST_ASSERT(0 == cxMapRemove(map, "xyz")); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
712 | CX_TEST_ASSERT(kv_list_test_destr_val == 0xabcd); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
713 | } |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
714 | cxMapFree(map); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
715 | } |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
716 | |
|
1380
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
717 | CX_TEST(test_kv_list_list_remove_destr2_in_list) { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
718 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
719 | int x; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
720 | CX_TEST_DO { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
721 | x = 0xabcd; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
722 | CX_TEST_ASSERT(0 == cxListAdd(list, &x)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
723 | cxKvListSetKey(list, 0, "xyz"); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
724 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
725 | cxDefineAdvancedDestructor(list, kv_list_test_destr2, (void*)0xef47); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
726 | kv_list_test_destr2_val = 0; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
727 | kv_list_test_destr2_extra = NULL; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
728 | CX_TEST_ASSERT(0 == cxListRemove(list, 0)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
729 | CX_TEST_ASSERT(kv_list_test_destr2_val == 0xabcd); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
730 | CX_TEST_ASSERT(kv_list_test_destr2_extra == (void*)0xef47); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
731 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
732 | cxListFree(list); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
733 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
734 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
735 | CX_TEST(test_kv_list_list_remove_destr2_in_map) { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
736 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
737 | int x; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
738 | CX_TEST_DO { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
739 | x = 0xabcd; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
740 | CX_TEST_ASSERT(0 == cxListAdd(list, &x)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
741 | cxKvListSetKey(list, 0, "xyz"); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
742 | CxMap *map = cxKvListAsMap(list); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
743 | cxDefineAdvancedDestructor(map, kv_list_test_destr2, (void*)0xef47); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
744 | kv_list_test_destr2_val = 0; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
745 | kv_list_test_destr2_extra = NULL; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
746 | CX_TEST_ASSERT(0 == cxListRemove(list, 0)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
747 | CX_TEST_ASSERT(kv_list_test_destr2_val == 0xabcd); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
748 | CX_TEST_ASSERT(kv_list_test_destr2_extra == (void*)0xef47); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
749 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
750 | cxListFree(list); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
751 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
752 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
753 | CX_TEST(test_kv_list_map_remove_destr2_in_list) { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
754 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
755 | int x; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
756 | CX_TEST_DO { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
757 | x = 0xabcd; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
758 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
759 | CxList *list = cxKvListAsList(map); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
760 | cxDefineAdvancedDestructor(list, kv_list_test_destr2, (void*)0xef47); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
761 | kv_list_test_destr2_val = 0; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
762 | kv_list_test_destr2_extra = NULL; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
763 | CX_TEST_ASSERT(0 == cxMapRemove(map, "xyz")); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
764 | CX_TEST_ASSERT(kv_list_test_destr2_val == 0xabcd); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
765 | CX_TEST_ASSERT(kv_list_test_destr2_extra == (void*)0xef47); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
766 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
767 | cxMapFree(map); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
768 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
769 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
770 | CX_TEST(test_kv_list_map_remove_destr2_in_map) { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
771 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
772 | int x; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
773 | CX_TEST_DO { |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
774 | x = 0xabcd; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
775 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
776 | |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
777 | cxDefineAdvancedDestructor(map, kv_list_test_destr2, (void*)0xef47); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
778 | kv_list_test_destr2_val = 0; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
779 | kv_list_test_destr2_extra = NULL; |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
780 | CX_TEST_ASSERT(0 == cxMapRemove(map, "xyz")); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
781 | CX_TEST_ASSERT(kv_list_test_destr2_val == 0xabcd); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
782 | CX_TEST_ASSERT(kv_list_test_destr2_extra == (void*)0xef47); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
783 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
784 | cxMapFree(map); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
785 | } |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
786 | |
|
1363
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
787 | CX_TEST(test_kv_list_list_clear_destr_in_list) { |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
788 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
789 | int x; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
790 | CX_TEST_DO { |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
791 | x = 0xabcd; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
792 | CX_TEST_ASSERT(0 == cxListAdd(list, &x)); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
793 | cxKvListSetKey(list, 0, "xyz"); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
794 | |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
795 | cxDefineDestructor(list, kv_list_test_destr); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
796 | kv_list_test_destr_val = 0; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
797 | cxListClear(list); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
798 | CX_TEST_ASSERT(kv_list_test_destr_val == 0xabcd); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
799 | } |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
800 | cxListFree(list); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
801 | } |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
802 | |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
803 | CX_TEST(test_kv_list_list_clear_destr_in_map) { |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
804 | CxList *list = cxKvListCreateSimple(sizeof(int)); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
805 | int x; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
806 | CX_TEST_DO { |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
807 | x = 0xabcd; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
808 | CX_TEST_ASSERT(0 == cxListAdd(list, &x)); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
809 | cxKvListSetKey(list, 0, "xyz"); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
810 | CxMap *map = cxKvListAsMap(list); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
811 | cxDefineDestructor(map, kv_list_test_destr); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
812 | kv_list_test_destr_val = 0; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
813 | cxListClear(list); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
814 | CX_TEST_ASSERT(kv_list_test_destr_val == 0xabcd); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
815 | } |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
816 | cxListFree(list); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
817 | } |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
818 | |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
819 | CX_TEST(test_kv_list_map_clear_destr_in_list) { |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
820 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
821 | int x; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
822 | CX_TEST_DO { |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
823 | x = 0xabcd; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
824 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
825 | CxList *list = cxKvListAsList(map); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
826 | cxDefineDestructor(list, kv_list_test_destr); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
827 | kv_list_test_destr_val = 0; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
828 | cxMapClear(map); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
829 | CX_TEST_ASSERT(kv_list_test_destr_val == 0xabcd); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
830 | } |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
831 | cxMapFree(map); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
832 | } |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
833 | |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
834 | CX_TEST(test_kv_list_map_clear_destr_in_map) { |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
835 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
836 | int x; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
837 | CX_TEST_DO { |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
838 | x = 0xabcd; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
839 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
840 | |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
841 | cxDefineDestructor(map, kv_list_test_destr); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
842 | kv_list_test_destr_val = 0; |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
843 | cxMapClear(map); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
844 | CX_TEST_ASSERT(kv_list_test_destr_val == 0xabcd); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
845 | } |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
846 | cxMapFree(map); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
847 | } |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
848 | |
|
1370
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
849 | CX_TEST(test_kv_list_destr_ptr) { |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
850 | CxMap *map = cxKvListCreateAsMapSimple(CX_STORE_POINTERS); |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
851 | cxDefineDestructor(map, kv_list_test_destr); |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
852 | int x; |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
853 | CX_TEST_DO { |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
854 | x = 0xabcd; |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
855 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
856 | x = 0xef89; |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
857 | kv_list_test_destr_val = 0; |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
858 | CX_TEST_ASSERT(0 == cxMapRemove(map, "xyz")); |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
859 | CX_TEST_ASSERT(kv_list_test_destr_val == 0xef89); |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
860 | } |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
861 | cxMapFree(map); |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
862 | } |
|
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
863 | |
|
1384
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
864 | CX_TEST(test_kv_list_map_iterator) { |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
865 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
866 | CX_TEST_DO { |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
867 | int x; |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
868 | x = 0xc0ffee; // this element shall be skipped |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
869 | cxListAdd(cxKvListAsList(map), &x); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
870 | x = 815; |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
871 | cxMapPut(map, "xyz", &x); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
872 | x = 8016; |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
873 | cxMapPut(map, "abcd", &x); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
874 | x = 0xbeef; |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
875 | cxListAdd(cxKvListAsList(map), &x); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
876 | x = 80017; |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
877 | cxMapPut(map, "efghi", &x); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
878 | |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
879 | const CxMapEntry *entry; |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
880 | CxMapIterator it = cxMapIterator(map); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
881 | CX_TEST_ASSERT(it.elem_count == 3); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
882 | CX_TEST_ASSERT(it.elem_size == sizeof(CxMapEntry)); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
883 | |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
884 | CX_TEST_ASSERT(cxIteratorValid(it)); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
885 | CX_TEST_ASSERT(it.index == 0); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
886 | entry = cxIteratorCurrent(it); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
887 | CX_TEST_ASSERT(*(int*)entry->value == 815); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
888 | CX_TEST_ASSERT(entry->key->len == 3); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
889 | CX_TEST_ASSERT(strncmp(entry->key->data, "xyz", 3) == 0); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
890 | |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
891 | cxIteratorNext(it); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
892 | CX_TEST_ASSERT(cxIteratorValid(it)); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
893 | CX_TEST_ASSERT(it.index == 1); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
894 | entry = cxIteratorCurrent(it); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
895 | CX_TEST_ASSERT(*(int*)entry->value == 8016); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
896 | CX_TEST_ASSERT(entry->key->len == 4); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
897 | CX_TEST_ASSERT(strncmp(entry->key->data, "abcd", 4) == 0); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
898 | |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
899 | cxIteratorNext(it); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
900 | CX_TEST_ASSERT(cxIteratorValid(it)); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
901 | CX_TEST_ASSERT(it.index == 2); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
902 | entry = cxIteratorCurrent(it); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
903 | CX_TEST_ASSERT(*(int*)entry->value == 80017); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
904 | CX_TEST_ASSERT(entry->key->len == 5); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
905 | CX_TEST_ASSERT(strncmp(entry->key->data, "efghi", 5) == 0); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
906 | |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
907 | cxIteratorNext(it); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
908 | CX_TEST_ASSERT(!cxIteratorValid(it)); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
909 | |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
910 | // remove the first element (which was skipped anyway) and try again |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
911 | cxListRemove(cxKvListAsList(map), 0); |
|
1386
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
912 | it = cxMapIteratorKeys(map); |
|
1384
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
913 | CX_TEST_ASSERT(it.elem_count == 3); |
|
1386
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
914 | CX_TEST_ASSERT(it.elem_size == sizeof(CxHashKey)); |
|
1384
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
915 | |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
916 | CX_TEST_ASSERT(cxIteratorValid(it)); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
917 | CX_TEST_ASSERT(it.index == 0); |
|
1386
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
918 | CxHashKey *key = cxIteratorCurrent(it); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
919 | CX_TEST_ASSERT(key->len == 3); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
920 | CX_TEST_ASSERT(strncmp(key->data, "xyz", 3) == 0); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
921 | } |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
922 | cxMapFree(map); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
923 | } |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
924 | |
|
1389
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
925 | CX_TEST(test_kv_list_map_iterator_no_keys) { |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
926 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
927 | CX_TEST_DO { |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
928 | CxList *list = cxKvListAsList(map); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
929 | int x; |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
930 | x = 815; |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
931 | cxListAdd(list, &x); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
932 | x = 8016; |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
933 | cxListAdd(list, &x); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
934 | x = 80017; |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
935 | cxMapPut(map, "xyz", &x); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
936 | cxKvListRemoveKey(list, 2); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
937 | |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
938 | // only contains items without keys |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
939 | CxMapIterator it = cxMapIterator(map); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
940 | CX_TEST_ASSERT(it.elem_count == 0); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
941 | CX_TEST_ASSERT(!cxIteratorValid(it)); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
942 | } |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
943 | cxMapFree(map); |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
944 | } |
|
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
945 | |
|
1386
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
946 | CX_TEST(test_kv_list_map_iterator_remove) { |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
947 | CxMap *map = cxKvListCreateAsMapSimple(CX_STORE_POINTERS); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
948 | int x, y, z; |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
949 | CX_TEST_DO { |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
950 | cxDefineDestructor(map, kv_list_test_destr); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
951 | x = 815; |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
952 | cxMapPut(map, "xyz", &x); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
953 | y = 8016; |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
954 | cxMapPut(map, "abcd", &y); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
955 | z = 80017; |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
956 | cxMapPut(map, "efghi", &z); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
957 | |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
958 | kv_list_test_destr_val = 0; |
|
1429
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1405
diff
changeset
|
959 | CxMapIterator iter = cxMapIteratorValues(map); |
|
1386
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
960 | cx_foreach(int *, elem, iter) { |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
961 | if (*elem == 8016) { |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
962 | cxIteratorFlagRemoval(iter); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
963 | } |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
964 | } |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
965 | |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
966 | CX_TEST_ASSERT(kv_list_test_destr_val == 8016); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
967 | CX_TEST_ASSERT(cxMapSize(map) == 2); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
968 | CX_TEST_ASSERT(cxMapGet(map, "abcd") == NULL); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
969 | CxList *list = cxKvListAsList(map); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
970 | CX_TEST_ASSERT(cxListSize(list) == 2); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
971 | CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 815); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
972 | CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 80017); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
973 | } |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
974 | cxMapFree(map); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
975 | } |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
976 | |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
977 | CX_TEST(test_kv_list_list_iterator_remove) { |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
978 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
979 | CX_TEST_DO { |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
980 | cxDefineAdvancedDestructor(map, kv_list_test_destr2, (void*)0xf00); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
981 | int x; |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
982 | x = 815; |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
983 | cxMapPut(map, "xyz", &x); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
984 | x = 8016; |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
985 | cxMapPut(map, "abcd", &x); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
986 | x = 80017; |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
987 | cxMapPut(map, "efghi", &x); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
988 | |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
989 | CxList *list = cxKvListAsList(map); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
990 | kv_list_test_destr2_val = 0; |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
991 | kv_list_test_destr2_extra = NULL; |
|
1429
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1405
diff
changeset
|
992 | CxIterator iter = cxListIterator(list); |
|
1386
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
993 | cx_foreach(int *, elem, iter) { |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
994 | if (*elem == 8016) { |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
995 | cxIteratorFlagRemoval(iter); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
996 | } |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
997 | } |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
998 | |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
999 | CX_TEST_ASSERT(kv_list_test_destr2_val == 8016); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
1000 | CX_TEST_ASSERT(kv_list_test_destr2_extra == (void*)0xf00); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
1001 | CX_TEST_ASSERT(cxMapSize(map) == 2); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
1002 | CX_TEST_ASSERT(cxMapGet(map, "abcd") == NULL); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
1003 | CX_TEST_ASSERT(cxListSize(list) == 2); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
1004 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 815); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
1005 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "efghi") == 80017); |
|
1384
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
1006 | } |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
1007 | cxMapFree(map); |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
1008 | } |
|
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
1009 | |
|
1350
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1010 | CxTestSuite *cx_test_suite_kv_list_specifics(void) { |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1011 | CxTestSuite *suite = cx_test_suite_new("kv_list specifics"); |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1012 | |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1013 | cx_test_register(suite, test_kv_list_map_as_list); |
|
1361
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
1014 | cx_test_register(suite, test_kv_list_free_as_map); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
1015 | cx_test_register(suite, test_kv_list_free_as_list); |
|
1373
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
1016 | cx_test_register(suite, test_kv_list_remove); |
|
1375
e0ba5e20e77a
implement cx_kvl_find_remove()
Mike Becker <universe@uap-core.de>
parents:
1373
diff
changeset
|
1017 | cx_test_register(suite, test_kv_list_find_and_remove); |
|
1373
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
1018 | cx_test_register(suite, test_kv_list_remove_and_get); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
1019 | cx_test_register(suite, test_kv_list_remove_array); |
|
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
Mike Becker <universe@uap-core.de>
parents:
1372
diff
changeset
|
1020 | cx_test_register(suite, test_kv_list_remove_array_and_get); |
|
1357
cb25a4a12edd
add failing test case for inserting into kv-list via map
Mike Becker <universe@uap-core.de>
parents:
1350
diff
changeset
|
1021 | cx_test_register(suite, test_kv_list_map_put); |
|
1370
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
1022 | cx_test_register(suite, test_kv_list_map_put_ptr); |
|
1380
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
1023 | cx_test_register(suite, test_kv_list_map_put_not_hashed); |
|
1359
fd7bbda93c7f
add test_kv_list_map_remove()
Mike Becker <universe@uap-core.de>
parents:
1357
diff
changeset
|
1024 | cx_test_register(suite, test_kv_list_map_remove); |
|
1380
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
1025 | cx_test_register(suite, test_kv_list_map_remove_and_get); |
|
1366
70ce877c838a
add failing test case test_kv_list_set_key()
Mike Becker <universe@uap-core.de>
parents:
1363
diff
changeset
|
1026 | cx_test_register(suite, test_kv_list_set_key); |
|
1382
f61119884dcd
disallow setting a key that already exists
Mike Becker <universe@uap-core.de>
parents:
1380
diff
changeset
|
1027 | cx_test_register(suite, test_kv_list_set_key_already_exists); |
|
1383
3db28cb1e5ec
allow setting the key again on the same node
Mike Becker <universe@uap-core.de>
parents:
1382
diff
changeset
|
1028 | cx_test_register(suite, test_kv_list_set_key_again); |
|
1377
1562bdf948da
implement cxKvListRemoveKey()
Mike Becker <universe@uap-core.de>
parents:
1375
diff
changeset
|
1029 | cx_test_register(suite, test_kv_list_remove_key); |
| 1394 | 1030 | cx_test_register(suite, test_kv_list_get_key); |
|
1378
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
1031 | cx_test_register(suite, test_kv_list_insert_with_key); |
|
1b4fa55f7caa
implement cx_kv_list_insert()
Mike Becker <universe@uap-core.de>
parents:
1377
diff
changeset
|
1032 | cx_test_register(suite, test_kv_list_insert_ptr_with_key); |
|
1372
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
Mike Becker <universe@uap-core.de>
parents:
1370
diff
changeset
|
1033 | cx_test_register(suite, test_kv_list_insert_array_and_set_keys); |
|
1363
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
1034 | cx_test_register(suite, test_kv_list_list_remove_destr_in_list); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
1035 | cx_test_register(suite, test_kv_list_list_remove_destr_in_map); |
|
1361
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
1036 | cx_test_register(suite, test_kv_list_map_remove_destr_in_list); |
|
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
Mike Becker <universe@uap-core.de>
parents:
1360
diff
changeset
|
1037 | cx_test_register(suite, test_kv_list_map_remove_destr_in_map); |
|
1380
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
1038 | cx_test_register(suite, test_kv_list_list_remove_destr2_in_list); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
1039 | cx_test_register(suite, test_kv_list_list_remove_destr2_in_map); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
1040 | cx_test_register(suite, test_kv_list_map_remove_destr2_in_list); |
|
bf5866e47b15
increase test coverage for kv-list
Mike Becker <universe@uap-core.de>
parents:
1378
diff
changeset
|
1041 | cx_test_register(suite, test_kv_list_map_remove_destr2_in_map); |
|
1363
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
1042 | cx_test_register(suite, test_kv_list_list_clear_destr_in_list); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
1043 | cx_test_register(suite, test_kv_list_list_clear_destr_in_map); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
1044 | cx_test_register(suite, test_kv_list_map_clear_destr_in_list); |
|
c9a86bd9e361
add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
Mike Becker <universe@uap-core.de>
parents:
1361
diff
changeset
|
1045 | cx_test_register(suite, test_kv_list_map_clear_destr_in_map); |
|
1370
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
Mike Becker <universe@uap-core.de>
parents:
1366
diff
changeset
|
1046 | cx_test_register(suite, test_kv_list_destr_ptr); |
|
1384
a2cfbff39e5d
implement non-mutating iterator
Mike Becker <universe@uap-core.de>
parents:
1383
diff
changeset
|
1047 | cx_test_register(suite, test_kv_list_map_iterator); |
|
1389
bbdc4aee8534
kv-list: completes test coverage
Mike Becker <universe@uap-core.de>
parents:
1386
diff
changeset
|
1048 | cx_test_register(suite, test_kv_list_map_iterator_no_keys); |
|
1386
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
1049 | cx_test_register(suite, test_kv_list_map_iterator_remove); |
|
748d0d40881e
kv-list: implement mutating iterator support
Mike Becker <universe@uap-core.de>
parents:
1384
diff
changeset
|
1050 | cx_test_register(suite, test_kv_list_list_iterator_remove); |
|
1350
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1051 | |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1052 | return suite; |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1053 | } |