Fri, 10 Oct 2025 12:26:43 +0200
assert instead of assume sorted property in debug builds
| 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: 
1378diff
changeset | 34 | static int kv_list_test_destr_val; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 35 | static void kv_list_test_destr(void *data) { | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 36 | kv_list_test_destr_val = *(int*)data; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 37 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 38 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 39 | static void *kv_list_test_destr2_extra; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 40 | static int kv_list_test_destr2_val; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1378diff
changeset | 42 | kv_list_test_destr2_extra = extra; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 43 | kv_list_test_destr2_val = *(int*)data; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 44 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
changeset | 66 | } | 
| 
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
 Mike Becker <universe@uap-core.de> parents: 
1360diff
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: 
1360diff
changeset | 68 | } | 
| 
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
 Mike Becker <universe@uap-core.de> parents: 
1360diff
changeset | 69 | |
| 
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
 Mike Becker <universe@uap-core.de> parents: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
changeset | 80 | } | 
| 
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
 Mike Becker <universe@uap-core.de> parents: 
1360diff
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: 
1360diff
changeset | 82 | } | 
| 
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
 Mike Becker <universe@uap-core.de> parents: 
1360diff
changeset | 83 | |
| 1373 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 86 | int x; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 87 | CX_TEST_DO { | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 89 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 90 | x = 13; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 92 | x = 37; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 94 | x = 47; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 96 | x = 90; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 98 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 101 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 107 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 113 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 119 | } | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 120 | cxListFree(list); | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 121 | } | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 122 | |
| 1375 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 123 | CX_TEST(test_kv_list_find_and_remove) { | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 124 | CxList *list = cxKvListCreateSimple(sizeof(int)); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 125 | list->collection.cmpfunc = cx_cmp_int; | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 126 | int x, y; | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 127 | CX_TEST_DO { | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 128 | CxMap *map = cxKvListAsMap(list); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 129 | |
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 130 | x = 13; | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 131 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 132 | x = 37; | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 133 | CX_TEST_ASSERT(0 == cxMapPut(map, "abc", &x)); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 134 | x = 47; | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 135 | CX_TEST_ASSERT(0 == cxMapPut(map, "efg", &x)); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 136 | x = 90; | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 137 | CX_TEST_ASSERT(0 == cxMapPut(map, "hij", &x)); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 138 | |
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 139 | CX_TEST_ASSERT(cxMapSize(map) == 4); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 140 | CX_TEST_ASSERT(cxListSize(list) == 4); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 141 | |
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 142 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "efg") == 47); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 143 | y = 47; | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 144 | CX_TEST_ASSERT(2 == cxListFindRemove(list, &y)); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 145 | CX_TEST_ASSERT(cxListSize(list) == 3); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 146 | CX_TEST_ASSERT(cxMapSize(map) == 3); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 147 | CX_TEST_ASSERT(cxMapGet(map, "efg") == NULL); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 148 | |
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 149 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 13); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 150 | y = 13; | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 151 | CX_TEST_ASSERT(0 == cxListFindRemove(list, &y)); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 152 | CX_TEST_ASSERT(cxListSize(list) == 2); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 153 | CX_TEST_ASSERT(cxMapSize(map) == 2); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 154 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 155 | |
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 156 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "hij") == 90); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 157 | y = 90; | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 158 | CX_TEST_ASSERT(1 == cxListFindRemove(list, &y)); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 159 | CX_TEST_ASSERT(cxListSize(list) == 1); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 160 | CX_TEST_ASSERT(cxMapSize(map) == 1); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 161 | CX_TEST_ASSERT(cxMapGet(map, "hij") == NULL); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 162 | |
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 163 | y = 666; | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
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: 
1378diff
changeset | 165 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 166 | y = 37; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 167 | CX_TEST_ASSERT(0 == cxListFindRemove(list, &y)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 168 | CX_TEST_ASSERT(cxListSize(list) == 0); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 169 | CX_TEST_ASSERT(cxMapSize(map) == 0); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 170 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 171 | CX_TEST_ASSERT(0 == cxListFindRemove(list, &y)); | 
| 1375 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 172 | } | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 173 | cxListFree(list); | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 174 | } | 
| 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
changeset | 175 | |
| 1373 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 178 | int x, y; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 179 | CX_TEST_DO { | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 181 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 182 | x = 13; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 184 | x = 37; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 186 | x = 47; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 188 | x = 90; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 190 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 193 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 200 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 207 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 214 | } | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 215 | cxListFree(list); | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 216 | } | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 217 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 220 | int x; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 221 | CX_TEST_DO { | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 223 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 224 | x = 13; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 226 | x = 37; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 228 | x = 47; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 230 | x = 90; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 232 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 235 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 245 | } | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 246 | cxListFree(list); | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 247 | } | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 248 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 251 | int x; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 252 | CX_TEST_DO { | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 254 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 255 | x = 13; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 257 | x = 37; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 259 | x = 47; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 261 | x = 90; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
changeset | 263 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 266 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 267 | int y[2]; | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 268 | |
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
changeset | 280 | } | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 281 | cxListFree(list); | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 282 | } | 
| 
a6aaa77b6809
make cx_kvl_remove() also remove the keys from the map
 Mike Becker <universe@uap-core.de> parents: 
1372diff
changeset | 283 | |
| 1357 
cb25a4a12edd
add failing test case for inserting into kv-list via map
 Mike Becker <universe@uap-core.de> parents: 
1350diff
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: 
1350diff
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: 
1350diff
changeset | 286 | int x; | 
| 
cb25a4a12edd
add failing test case for inserting into kv-list via map
 Mike Becker <universe@uap-core.de> parents: 
1350diff
changeset | 287 | CX_TEST_DO { | 
| 
cb25a4a12edd
add failing test case for inserting into kv-list via map
 Mike Becker <universe@uap-core.de> parents: 
1350diff
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: 
1350diff
changeset | 289 | |
| 
cb25a4a12edd
add failing test case for inserting into kv-list via map
 Mike Becker <universe@uap-core.de> parents: 
1350diff
changeset | 290 | x = 13; | 
| 
cb25a4a12edd
add failing test case for inserting into kv-list via map
 Mike Becker <universe@uap-core.de> parents: 
1350diff
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: 
1350diff
changeset | 292 | |
| 
cb25a4a12edd
add failing test case for inserting into kv-list via map
 Mike Becker <universe@uap-core.de> parents: 
1350diff
changeset | 293 | x = 37; | 
| 
cb25a4a12edd
add failing test case for inserting into kv-list via map
 Mike Becker <universe@uap-core.de> parents: 
1350diff
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: 
1350diff
changeset | 295 | |
| 
cb25a4a12edd
add failing test case for inserting into kv-list via map
 Mike Becker <universe@uap-core.de> parents: 
1350diff
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: 
1350diff
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: 
1350diff
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: 
1350diff
changeset | 299 | |
| 
cb25a4a12edd
add failing test case for inserting into kv-list via map
 Mike Becker <universe@uap-core.de> parents: 
1350diff
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: 
1350diff
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: 
1350diff
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: 
1350diff
changeset | 303 | } | 
| 
cb25a4a12edd
add failing test case for inserting into kv-list via map
 Mike Becker <universe@uap-core.de> parents: 
1350diff
changeset | 304 | cxListFree(list); | 
| 
cb25a4a12edd
add failing test case for inserting into kv-list via map
 Mike Becker <universe@uap-core.de> parents: 
1350diff
changeset | 305 | } | 
| 
cb25a4a12edd
add failing test case for inserting into kv-list via map
 Mike Becker <universe@uap-core.de> parents: 
1350diff
changeset | 306 | |
| 1370 
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
 Mike Becker <universe@uap-core.de> parents: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
changeset | 317 | } | 
| 
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
 Mike Becker <universe@uap-core.de> parents: 
1366diff
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: 
1366diff
changeset | 319 | } | 
| 
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
 Mike Becker <universe@uap-core.de> parents: 
1366diff
changeset | 320 | |
| 1380 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1378diff
changeset | 322 | CxList *list = cxKvListCreateSimple(sizeof(int)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 323 | int x; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 324 | CX_TEST_DO { | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 325 | CxMap *map = cxKvListAsMap(list); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 326 | x = 13; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1394diff
changeset | 328 | CxHashKey key = {0}; | 
| 1380 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 329 | key.data = "xyz"; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 330 | key.len = 3; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 331 | CX_TEST_ASSERT(0 == cxMapPut(map, key, &x)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 332 | CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 13); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 333 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 13); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 334 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1378diff
changeset | 336 | CX_TEST_ASSERT(0 == cxListRemove(list, 0)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 337 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 338 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 339 | cxListFree(list); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 340 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 341 | |
| 1359 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 342 | CX_TEST(test_kv_list_map_remove) { | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 343 | CxList *list = cxKvListCreateSimple(sizeof(int)); | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 344 | int x; | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 345 | CX_TEST_DO { | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 346 | CxMap *map = cxKvListAsMap(list); | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 347 | |
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 348 | x = 13; | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 349 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 350 | |
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 351 | x = 37; | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 352 | CX_TEST_ASSERT(0 == cxMapPut(map, "abc", &x)); | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 353 | |
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 354 | CX_TEST_ASSERT(cxMapSize(map) == 2); | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 355 | |
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 356 | CX_TEST_ASSERT(0 == cxMapRemove(map, "xyz")); | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 357 | CX_TEST_ASSERT(cxMapSize(map) == 1); | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 358 | CX_TEST_ASSERT(cxMapGet(map, "abc") != NULL); | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 359 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 360 | |
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 361 | CX_TEST_ASSERT(cxListSize(list) == 1); | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 362 | CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 37); | 
| 1360 
8b29d732f97b
implement cx_kvl_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1359diff
changeset | 363 | |
| 
8b29d732f97b
implement cx_kvl_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1359diff
changeset | 364 | CX_TEST_ASSERT(0 != cxMapRemove(map, "xyz")); | 
| 1359 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 365 | } | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 366 | cxListFree(list); | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 367 | } | 
| 
fd7bbda93c7f
add test_kv_list_map_remove()
 Mike Becker <universe@uap-core.de> parents: 
1357diff
changeset | 368 | |
| 1380 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1378diff
changeset | 370 | CxList *list = cxKvListCreateSimple(sizeof(int)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 371 | int x, y; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 372 | CX_TEST_DO { | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 373 | CxMap *map = cxKvListAsMap(list); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 374 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 375 | x = 13; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 376 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 377 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 378 | x = 37; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 379 | CX_TEST_ASSERT(0 == cxMapPut(map, "abc", &x)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 380 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 381 | CX_TEST_ASSERT(cxMapSize(map) == 2); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 382 | cxDefineDestructor(map, kv_list_test_destr); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 383 | kv_list_test_destr_val = 0; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 384 | y = 0; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 385 | CX_TEST_ASSERT(0 == cxMapRemoveAndGet(map, "xyz", &y)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 386 | CX_TEST_ASSERT(y == 13); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 387 | // destr not called! | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1378diff
changeset | 389 | CX_TEST_ASSERT(cxMapSize(map) == 1); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 390 | CX_TEST_ASSERT(cxMapGet(map, "abc") != NULL); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 391 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 392 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 393 | CX_TEST_ASSERT(cxListSize(list) == 1); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 394 | CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 37); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 395 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 396 | CX_TEST_ASSERT(0 != cxMapRemove(map, "xyz")); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 397 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 398 | cxListFree(list); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 399 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 400 | |
| 1366 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
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: 
1363diff
changeset | 402 | CxList *list = cxKvListCreateSimple(sizeof(int)); | 
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 403 | int x; | 
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 404 | CX_TEST_DO { | 
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 405 | x = 47; | 
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 406 | cxListAdd(list, &x); | 
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
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: 
1378diff
changeset | 408 | // index out of bounds: | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1363diff
changeset | 410 | |
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 411 | CxMap *map = cxKvListAsMap(list); | 
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 412 | |
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
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: 
1363diff
changeset | 414 | |
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 415 | int *y = cxMapGet(map, "xyz"); | 
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 416 | CX_TEST_ASSERT(y != NULL); | 
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 417 | CX_TEST_ASSERT(*y == 47); | 
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 418 | |
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
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: 
1363diff
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: 
1363diff
changeset | 421 | |
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 422 | CX_TEST_ASSERT(cxListSize(list) == 0); | 
| 1389 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 423 | |
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 424 | // now check with a non-prehashed key | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 425 | x = 85; | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 426 | cxListAdd(list, &x); | 
| 1405 
0f6515875a09
fix using empty initializer, which is a C23 extension
 Mike Becker <universe@uap-core.de> parents: 
1394diff
changeset | 427 | CxHashKey key = {0}; | 
| 1389 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 428 | key.data = "abc"; | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 429 | key.len = 3; | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 430 | CX_TEST_ASSERT(0 == cxKvListSetKey(list, 0, key)); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 431 | y = cxMapGet(map, "abc"); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 432 | CX_TEST_ASSERT(y != NULL); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 433 | CX_TEST_ASSERT(*y == 85); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 434 | |
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 435 | CX_TEST_ASSERT(0 == cxMapRemove(map, "abc")); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 436 | CX_TEST_ASSERT(cxMapGet(map, "abc") == NULL); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 437 | |
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
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: 
1363diff
changeset | 439 | } | 
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 440 | cxListFree(list); | 
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 441 | } | 
| 
70ce877c838a
add failing test case test_kv_list_set_key()
 Mike Becker <universe@uap-core.de> parents: 
1363diff
changeset | 442 | |
| 1382 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
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: 
1380diff
changeset | 444 | CxList *list = cxKvListCreateSimple(sizeof(int)); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 445 | int x; | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 446 | CX_TEST_DO { | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 447 | x = 47; | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 448 | cxListAdd(list, &x); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 449 | x = 11; | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 450 | cxListAdd(list, &x); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
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: 
1380diff
changeset | 452 | // already exists | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
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: 
1380diff
changeset | 454 | |
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 455 | CxMap *map = cxKvListAsMap(list); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 456 | |
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 457 | CX_TEST_ASSERT(cxMapSize(map) == 1); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 458 | |
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 459 | int *y = cxMapGet(map, "xyz"); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 460 | CX_TEST_ASSERT(y != NULL); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 461 | CX_TEST_ASSERT(*y == 11); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 462 | |
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 463 | CX_TEST_ASSERT(0 == cxMapRemove(map, "xyz")); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 464 | CX_TEST_ASSERT(cxMapGet(map, "xyz") == NULL); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 465 | CX_TEST_ASSERT(cxListSize(list) == 1); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 466 | |
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 467 | // now we can assign the key again | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
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: 
1380diff
changeset | 469 | y = cxMapGet(map, "xyz"); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 470 | CX_TEST_ASSERT(y != NULL); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 471 | CX_TEST_ASSERT(*y == 47); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 472 | } | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 473 | cxListFree(list); | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 474 | } | 
| 
f61119884dcd
disallow setting a key that already exists
 Mike Becker <universe@uap-core.de> parents: 
1380diff
changeset | 475 | |
| 1383 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
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: 
1382diff
changeset | 477 | CxList *list = cxKvListCreateSimple(sizeof(int)); | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 478 | int x; | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 479 | CX_TEST_DO { | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 480 | x = 47; | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 481 | cxListAdd(list, &x); | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 482 | x = 11; | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 483 | cxListAdd(list, &x); | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
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: 
1382diff
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: 
1382diff
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: 
1382diff
changeset | 487 | |
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 488 | CxMap *map = cxKvListAsMap(list); | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 489 | |
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
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: 
1382diff
changeset | 491 | |
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 492 | int *y = cxMapGet(map, "xyz"); | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 493 | CX_TEST_ASSERT(y != NULL); | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 494 | CX_TEST_ASSERT(*y == 11); | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 495 | |
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
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: 
1382diff
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: 
1382diff
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: 
1382diff
changeset | 499 | } | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 500 | cxListFree(list); | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 501 | } | 
| 
3db28cb1e5ec
allow setting the key again on the same node
 Mike Becker <universe@uap-core.de> parents: 
1382diff
changeset | 502 | |
| 1377 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 503 | CX_TEST(test_kv_list_remove_key) { | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 504 | CxList *list = cxKvListCreateSimple(sizeof(int)); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 505 | int x; | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 506 | CX_TEST_DO { | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 507 | CxMap *map = cxKvListAsMap(list); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 508 | |
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 509 | x = 47; | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 510 | cxMapPut(map, "xyz", &x); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 511 | x = 11; | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 512 | cxMapPut(map, "abc", &x); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 513 | x = 1337; | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 514 | cxMapPut(map, "efg", &x); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 515 | CX_TEST_ASSERT(cxMapSize(map) == 3); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 516 | |
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 517 | int *y = cxMapGet(map, "abc"); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 518 | CX_TEST_ASSERT(y != NULL); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 519 | CX_TEST_ASSERT(*y == 11); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 520 | |
| 1380 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 521 | CX_TEST_ASSERT(0 == cxKvListRemoveKey(list, 1)); | 
| 1377 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 522 | CX_TEST_ASSERT(cxMapGet(map, "abc") == NULL); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 523 | CX_TEST_ASSERT(cxMapSize(map) == 2); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 524 | CX_TEST_ASSERT(cxListSize(list) == 3); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 525 | |
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 526 | CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 11); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 527 | |
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 528 | y = cxMapGet(map, "xyz"); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 529 | CX_TEST_ASSERT(y != NULL); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 530 | CX_TEST_ASSERT(*y == 47); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 531 | |
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 532 | y = cxMapGet(map, "efg"); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 533 | CX_TEST_ASSERT(y != NULL); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 534 | CX_TEST_ASSERT(*y == 1337); | 
| 1380 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 535 | |
| 1389 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 536 | // idempotence | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 537 | CX_TEST_ASSERT(0 == cxKvListRemoveKey(list, 1)); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 538 | |
| 1380 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 539 | // index out of bounds: | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 540 | CX_TEST_ASSERT(0 != cxKvListRemoveKey(list, 3)); | 
| 1377 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 541 | } | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 542 | cxListFree(list); | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
changeset | 543 | } | 
| 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
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: 
1377diff
changeset | 579 | CX_TEST(test_kv_list_insert_with_key) { | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 580 | CxList *list = cxKvListCreateSimple(sizeof(int)); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 581 | int x; | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 582 | CX_TEST_DO { | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 583 | x = 47; | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 584 | cxKvListAdd(list, "xyz", &x); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 585 | x = 11; | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 586 | cxKvListAdd(list, "abc", &x); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 587 | x = 1337; | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 588 | cxKvListInsert(list, 1, "efg", &x); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 589 | |
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 590 | CX_TEST_ASSERT(cxListSize(list) == 3); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 591 | CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 47); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 592 | CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 1337); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 593 | CX_TEST_ASSERT(*(int*)cxListAt(list, 2) == 11); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 594 | |
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 595 | CxMap *map = cxKvListAsMap(list); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 596 | CX_TEST_ASSERT(cxMapSize(map) == 3); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 597 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 47); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 598 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "abc") == 11); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 599 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "efg") == 1337); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 600 | } | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 601 | cxListFree(list); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 602 | } | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 603 | |
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 604 | CX_TEST(test_kv_list_insert_ptr_with_key) { | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 605 | CxList *list = cxKvListCreateSimple(CX_STORE_POINTERS); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 606 | int x, y, z; | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 607 | CX_TEST_DO { | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 608 | x = 15; | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 609 | cxKvListAdd(list, "xyz", &x); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 610 | y = 16; | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 611 | cxKvListAdd(list, "abc", &y); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 612 | z = 17; | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 613 | cxKvListInsert(list, 1, "efg", &z); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 614 | x = 47; | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 615 | y = 11; | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 616 | z = 1337; | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 617 | |
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 618 | CX_TEST_ASSERT(cxListSize(list) == 3); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 619 | CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 47); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 620 | CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 1337); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 621 | CX_TEST_ASSERT(*(int*)cxListAt(list, 2) == 11); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 622 | |
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 623 | CxMap *map = cxKvListAsMap(list); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 624 | CX_TEST_ASSERT(cxMapSize(map) == 3); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 625 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 47); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 626 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "abc") == 11); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 627 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "efg") == 1337); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 628 | } | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 629 | cxListFree(list); | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 630 | } | 
| 
1b4fa55f7caa
implement cx_kv_list_insert()
 Mike Becker <universe@uap-core.de> parents: 
1377diff
changeset | 631 | |
| 1372 
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
 Mike Becker <universe@uap-core.de> parents: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
changeset | 643 | |
| 
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
 Mike Becker <universe@uap-core.de> parents: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
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: 
1370diff
changeset | 651 | } | 
| 
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
 Mike Becker <universe@uap-core.de> parents: 
1370diff
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: 
1370diff
changeset | 653 | } | 
| 
9c176073e771
kv-list: remove obsolete TODOs and add a test case to prove it
 Mike Becker <universe@uap-core.de> parents: 
1370diff
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: 
1361diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
changeset | 662 | |
| 
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
 Mike Becker <universe@uap-core.de> parents: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
changeset | 667 | } | 
| 
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
 Mike Becker <universe@uap-core.de> parents: 
1360diff
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: 
1360diff
changeset | 669 | } | 
| 
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
 Mike Becker <universe@uap-core.de> parents: 
1360diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
changeset | 701 | |
| 1361 
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
 Mike Becker <universe@uap-core.de> parents: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
changeset | 708 | |
| 
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
 Mike Becker <universe@uap-core.de> parents: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
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: 
1360diff
changeset | 713 | } | 
| 
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
 Mike Becker <universe@uap-core.de> parents: 
1360diff
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: 
1360diff
changeset | 715 | } | 
| 
cdc3242a9b33
implement support for registering destructors to a kv-list using its map aspect
 Mike Becker <universe@uap-core.de> parents: 
1360diff
changeset | 716 | |
| 1380 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1378diff
changeset | 718 | CxList *list = cxKvListCreateSimple(sizeof(int)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 719 | int x; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 720 | CX_TEST_DO { | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 721 | x = 0xabcd; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 722 | CX_TEST_ASSERT(0 == cxListAdd(list, &x)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 723 | cxKvListSetKey(list, 0, "xyz"); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 724 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 725 | cxDefineAdvancedDestructor(list, kv_list_test_destr2, (void*)0xef47); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 726 | kv_list_test_destr2_val = 0; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 727 | kv_list_test_destr2_extra = NULL; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 728 | CX_TEST_ASSERT(0 == cxListRemove(list, 0)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1378diff
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: 
1378diff
changeset | 731 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 732 | cxListFree(list); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 733 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 734 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1378diff
changeset | 736 | CxList *list = cxKvListCreateSimple(sizeof(int)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 737 | int x; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 738 | CX_TEST_DO { | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 739 | x = 0xabcd; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 740 | CX_TEST_ASSERT(0 == cxListAdd(list, &x)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 741 | cxKvListSetKey(list, 0, "xyz"); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 742 | CxMap *map = cxKvListAsMap(list); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 743 | cxDefineAdvancedDestructor(map, kv_list_test_destr2, (void*)0xef47); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 744 | kv_list_test_destr2_val = 0; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 745 | kv_list_test_destr2_extra = NULL; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 746 | CX_TEST_ASSERT(0 == cxListRemove(list, 0)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1378diff
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: 
1378diff
changeset | 749 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 750 | cxListFree(list); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 751 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 752 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1378diff
changeset | 754 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 755 | int x; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 756 | CX_TEST_DO { | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 757 | x = 0xabcd; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 758 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 759 | CxList *list = cxKvListAsList(map); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 760 | cxDefineAdvancedDestructor(list, kv_list_test_destr2, (void*)0xef47); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 761 | kv_list_test_destr2_val = 0; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 762 | kv_list_test_destr2_extra = NULL; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 763 | CX_TEST_ASSERT(0 == cxMapRemove(map, "xyz")); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1378diff
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: 
1378diff
changeset | 766 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 767 | cxMapFree(map); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 768 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 769 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1378diff
changeset | 771 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 772 | int x; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 773 | CX_TEST_DO { | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 774 | x = 0xabcd; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 775 | CX_TEST_ASSERT(0 == cxMapPut(map, "xyz", &x)); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 776 | |
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 777 | cxDefineAdvancedDestructor(map, kv_list_test_destr2, (void*)0xef47); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 778 | kv_list_test_destr2_val = 0; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 779 | kv_list_test_destr2_extra = NULL; | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 780 | CX_TEST_ASSERT(0 == cxMapRemove(map, "xyz")); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1378diff
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: 
1378diff
changeset | 783 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 784 | cxMapFree(map); | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
changeset | 785 | } | 
| 
bf5866e47b15
increase test coverage for kv-list
 Mike Becker <universe@uap-core.de> parents: 
1378diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
changeset | 848 | |
| 1370 
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
 Mike Becker <universe@uap-core.de> parents: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
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: 
1366diff
changeset | 860 | } | 
| 
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
 Mike Becker <universe@uap-core.de> parents: 
1366diff
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: 
1366diff
changeset | 862 | } | 
| 
607f822c79fe
kv-list: fix support for CX_STORE_POINTERS when using the map interface
 Mike Becker <universe@uap-core.de> parents: 
1366diff
changeset | 863 | |
| 1384 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 864 | CX_TEST(test_kv_list_map_iterator) { | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 865 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 866 | CX_TEST_DO { | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 867 | int x; | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 868 | x = 0xc0ffee; // this element shall be skipped | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 869 | cxListAdd(cxKvListAsList(map), &x); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 870 | x = 815; | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 871 | cxMapPut(map, "xyz", &x); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 872 | x = 8016; | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 873 | cxMapPut(map, "abcd", &x); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 874 | x = 0xbeef; | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 875 | cxListAdd(cxKvListAsList(map), &x); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 876 | x = 80017; | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 877 | cxMapPut(map, "efghi", &x); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 878 | |
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 879 | const CxMapEntry *entry; | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 880 | CxMapIterator it = cxMapIterator(map); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 881 | CX_TEST_ASSERT(it.elem_count == 3); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 882 | CX_TEST_ASSERT(it.elem_size == sizeof(CxMapEntry)); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 883 | |
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 884 | CX_TEST_ASSERT(cxIteratorValid(it)); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 885 | CX_TEST_ASSERT(it.index == 0); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 886 | entry = cxIteratorCurrent(it); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 887 | CX_TEST_ASSERT(*(int*)entry->value == 815); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 888 | CX_TEST_ASSERT(entry->key->len == 3); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 889 | CX_TEST_ASSERT(strncmp(entry->key->data, "xyz", 3) == 0); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 890 | |
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 891 | cxIteratorNext(it); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 892 | CX_TEST_ASSERT(cxIteratorValid(it)); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 893 | CX_TEST_ASSERT(it.index == 1); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 894 | entry = cxIteratorCurrent(it); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 895 | CX_TEST_ASSERT(*(int*)entry->value == 8016); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 896 | CX_TEST_ASSERT(entry->key->len == 4); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 897 | CX_TEST_ASSERT(strncmp(entry->key->data, "abcd", 4) == 0); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 898 | |
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 899 | cxIteratorNext(it); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 900 | CX_TEST_ASSERT(cxIteratorValid(it)); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 901 | CX_TEST_ASSERT(it.index == 2); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 902 | entry = cxIteratorCurrent(it); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 903 | CX_TEST_ASSERT(*(int*)entry->value == 80017); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 904 | CX_TEST_ASSERT(entry->key->len == 5); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 905 | CX_TEST_ASSERT(strncmp(entry->key->data, "efghi", 5) == 0); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 906 | |
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 907 | cxIteratorNext(it); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 908 | CX_TEST_ASSERT(!cxIteratorValid(it)); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 909 | |
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
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: 
1383diff
changeset | 911 | cxListRemove(cxKvListAsList(map), 0); | 
| 1386 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 912 | it = cxMapIteratorKeys(map); | 
| 1384 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 913 | CX_TEST_ASSERT(it.elem_count == 3); | 
| 1386 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 914 | CX_TEST_ASSERT(it.elem_size == sizeof(CxHashKey)); | 
| 1384 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 915 | |
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 916 | CX_TEST_ASSERT(cxIteratorValid(it)); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 917 | CX_TEST_ASSERT(it.index == 0); | 
| 1386 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 918 | CxHashKey *key = cxIteratorCurrent(it); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 919 | CX_TEST_ASSERT(key->len == 3); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
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: 
1384diff
changeset | 921 | } | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 922 | cxMapFree(map); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 923 | } | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 924 | |
| 1389 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 925 | CX_TEST(test_kv_list_map_iterator_no_keys) { | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 926 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 927 | CX_TEST_DO { | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 928 | CxList *list = cxKvListAsList(map); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 929 | int x; | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 930 | x = 815; | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 931 | cxListAdd(list, &x); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 932 | x = 8016; | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 933 | cxListAdd(list, &x); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 934 | x = 80017; | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 935 | cxMapPut(map, "xyz", &x); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 936 | cxKvListRemoveKey(list, 2); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 937 | |
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 938 | // only contains items without keys | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 939 | CxMapIterator it = cxMapIterator(map); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 940 | CX_TEST_ASSERT(it.elem_count == 0); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 941 | CX_TEST_ASSERT(!cxIteratorValid(it)); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 942 | } | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 943 | cxMapFree(map); | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 944 | } | 
| 
bbdc4aee8534
kv-list: completes test coverage
 Mike Becker <universe@uap-core.de> parents: 
1386diff
changeset | 945 | |
| 1386 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 946 | CX_TEST(test_kv_list_map_iterator_remove) { | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 947 | CxMap *map = cxKvListCreateAsMapSimple(CX_STORE_POINTERS); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 948 | int x, y, z; | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 949 | CX_TEST_DO { | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 950 | cxDefineDestructor(map, kv_list_test_destr); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 951 | x = 815; | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 952 | cxMapPut(map, "xyz", &x); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 953 | y = 8016; | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 954 | cxMapPut(map, "abcd", &y); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 955 | z = 80017; | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 956 | cxMapPut(map, "efghi", &z); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 957 | |
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 958 | kv_list_test_destr_val = 0; | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 959 | CxMapIterator iter = cxMapMutIteratorValues(map); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 960 | cx_foreach(int *, elem, iter) { | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 961 | if (*elem == 8016) { | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 962 | cxIteratorFlagRemoval(iter); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 963 | } | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 964 | } | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 965 | |
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
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: 
1384diff
changeset | 967 | CX_TEST_ASSERT(cxMapSize(map) == 2); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 968 | CX_TEST_ASSERT(cxMapGet(map, "abcd") == NULL); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 969 | CxList *list = cxKvListAsList(map); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 970 | CX_TEST_ASSERT(cxListSize(list) == 2); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 971 | CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 815); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 972 | CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 80017); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 973 | } | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 974 | cxMapFree(map); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 975 | } | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 976 | |
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 977 | CX_TEST(test_kv_list_list_iterator_remove) { | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 978 | CxMap *map = cxKvListCreateAsMapSimple(sizeof(int)); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 979 | CX_TEST_DO { | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 980 | cxDefineAdvancedDestructor(map, kv_list_test_destr2, (void*)0xf00); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 981 | int x; | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 982 | x = 815; | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 983 | cxMapPut(map, "xyz", &x); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 984 | x = 8016; | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 985 | cxMapPut(map, "abcd", &x); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 986 | x = 80017; | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 987 | cxMapPut(map, "efghi", &x); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 988 | |
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 989 | CxList *list = cxKvListAsList(map); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 990 | kv_list_test_destr2_val = 0; | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 991 | kv_list_test_destr2_extra = NULL; | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 992 | CxIterator iter = cxListMutIterator(list); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 993 | cx_foreach(int *, elem, iter) { | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 994 | if (*elem == 8016) { | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 995 | cxIteratorFlagRemoval(iter); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 996 | } | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 997 | } | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 998 | |
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
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: 
1384diff
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: 
1384diff
changeset | 1001 | CX_TEST_ASSERT(cxMapSize(map) == 2); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 1002 | CX_TEST_ASSERT(cxMapGet(map, "abcd") == NULL); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 1003 | CX_TEST_ASSERT(cxListSize(list) == 2); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 1004 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "xyz") == 815); | 
| 
748d0d40881e
kv-list: implement mutating iterator support
 Mike Becker <universe@uap-core.de> parents: 
1384diff
changeset | 1005 | CX_TEST_ASSERT(*(int*)cxMapGet(map, "efghi") == 80017); | 
| 1384 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 1006 | } | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 1007 | cxMapFree(map); | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
changeset | 1008 | } | 
| 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
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: 
1360diff
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: 
1360diff
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: 
1372diff
changeset | 1016 | cx_test_register(suite, test_kv_list_remove); | 
| 1375 
e0ba5e20e77a
implement cx_kvl_find_remove()
 Mike Becker <universe@uap-core.de> parents: 
1373diff
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: 
1372diff
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: 
1372diff
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: 
1372diff
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: 
1350diff
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: 
1366diff
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: 
1378diff
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: 
1357diff
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: 
1378diff
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: 
1363diff
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: 
1380diff
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: 
1382diff
changeset | 1028 | cx_test_register(suite, test_kv_list_set_key_again); | 
| 1377 
1562bdf948da
implement cxKvListRemoveKey()
 Mike Becker <universe@uap-core.de> parents: 
1375diff
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: 
1377diff
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: 
1377diff
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: 
1370diff
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: 
1361diff
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: 
1361diff
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: 
1360diff
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: 
1360diff
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: 
1378diff
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: 
1378diff
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: 
1378diff
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: 
1378diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1361diff
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: 
1366diff
changeset | 1046 | cx_test_register(suite, test_kv_list_destr_ptr); | 
| 1384 
a2cfbff39e5d
implement non-mutating iterator
 Mike Becker <universe@uap-core.de> parents: 
1383diff
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: 
1386diff
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: 
1384diff
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: 
1384diff
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 | } |