tests/test_allocator.c

Sun, 23 Nov 2025 13:15:19 +0100

author
Mike Becker <universe@uap-core.de>
date
Sun, 23 Nov 2025 13:15:19 +0100
changeset 1508
dfc0ddd9571e
parent 1332
dd5d2402d161
permissions
-rw-r--r--

optimize sorted insertion by using the infimum instead of the supremum

The reason is that the supremum returns the equal element with the smallest index, and we want the largest.
Therefore, we use the infimum, which already gives us the largest index when there are equal elements, and increase the index by one. The infimum is also guaranteed to exist in that case.

782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 /*
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
3 *
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
4 * Copyright 2023 Mike Becker, Olaf Wintermann All rights reserved.
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
5 *
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 *
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
11 *
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
15 *
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
27 */
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
28
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
29 #include "cx/test.h"
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
30
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
31 #if __GNUC__
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
32 // we want to perform overflow tests, but we don't want warnings about them
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
33 #define __alloc_size__(...) // NOLINT(*-reserved-identifier)
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
34 #endif
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
35
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
36 #include "cx/allocator.h"
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
37 #include <errno.h>
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
38
1326
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
39 CX_TEST(test_allocator_stdlib_malloc) {
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
40 void *test = cxMalloc(cxStdlibAllocator, 16);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
41 CX_TEST_DO {
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
42 CX_TEST_ASSERT(test != NULL);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
43 // we cannot assert sth. but valgrind will detect an error
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
44 memcpy(test, "0123456789ABCDEF", 16);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
45 }
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
46 cxFree(cxStdlibAllocator, test);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
47 }
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
48
1332
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
49 CX_TEST(test_allocator_stdlib_zalloc) {
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
50 void *test = cxZalloc(cxStdlibAllocator, 16);
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
51 CX_TEST_DO {
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
52 CX_TEST_ASSERT(test != NULL);
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
53 CX_TEST_ASSERT(0 == memcmp(test, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16));
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
54 }
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
55 cxFree(cxStdlibAllocator, test);
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
56 }
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
57
1326
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
58 CX_TEST(test_allocator_stdlib_calloc) {
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
59 char *test = cxCalloc(cxStdlibAllocator, 8, 2);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
60 CX_TEST_DO {
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
61 CX_TEST_ASSERT(test != NULL);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
62 for (int i = 0; i < 16; i++) {
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
63 CX_TEST_ASSERT(test[i] == 0);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
64 }
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
65 }
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
66 cxFree(cxStdlibAllocator, test);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
67 }
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
68
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
69 CX_TEST(test_allocator_stdlib_realloc) {
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
70 char *test = cxCalloc(cxStdlibAllocator, 8, 1);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
71 memcpy(test, "Test", 5);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
72 CX_TEST_DO {
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
73 test = cxRealloc(cxStdlibAllocator, test, 16);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
74 CX_TEST_ASSERT(test != NULL);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
75 CX_TEST_ASSERT(0 == strcmp(test, "Test"));
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
76 }
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
77 cxFree(cxStdlibAllocator, test);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
78 }
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
79
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
80 CX_TEST(test_allocator_stdlib_reallocarray) {
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
81 char *test = cxCalloc(cxStdlibAllocator, 8, 1);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
82 memcpy(test, "Test", 5);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
83 CX_TEST_DO {
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
84 test = cxReallocArray(cxStdlibAllocator, test, 16, 2);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
85 CX_TEST_ASSERT(test != NULL);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
86 CX_TEST_ASSERT(0 == strcmp(test, "Test"));
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
87 }
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
88 cxFree(cxStdlibAllocator, test);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
89 }
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
90
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
91 CX_TEST(test_allocator_stdlib_reallocarray_overflow) {
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
92 char *test = cxCalloc(cxStdlibAllocator, 8, 1);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
93 memcpy(test, "Test", 5);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
94 CX_TEST_DO {
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
95 void *fail = cxReallocArray(cxStdlibAllocator, test, SIZE_MAX/2, 4);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
96 CX_TEST_ASSERT(errno == EOVERFLOW);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
97 CX_TEST_ASSERT(fail == NULL);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
98 CX_TEST_ASSERT(0 == strcmp(test, "Test"));
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
99 }
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
100 cxFree(cxStdlibAllocator, test);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
101 }
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
102
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
103 CX_TEST(test_allocator_stdlib_free) {
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
104 void *test = cxMalloc(cxStdlibAllocator, 16);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
105 CX_TEST_DO {
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
106 // we cannot assert sth. but valgrind will detect an error
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
107 cxFree(cxStdlibAllocator, test);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
108 CX_TEST_ASSERT(true);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
109 }
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
110 }
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
111
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
112 CX_TEST(test_allocator_default_malloc) {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
113 void *test = cxMallocDefault(16);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
114 CX_TEST_DO {
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
115 CX_TEST_ASSERT(test != NULL);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
116 // we cannot assert sth. but valgrind will detect an error
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
117 memcpy(test, "0123456789ABCDEF", 16);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
118 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
119 cxFreeDefault(test);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
120 }
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
121
1332
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
122 CX_TEST(test_allocator_default_zalloc) {
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
123 void *test = cxZallocDefault(16);
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
124 CX_TEST_DO {
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
125 CX_TEST_ASSERT(test != NULL);
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
126 CX_TEST_ASSERT(0 == memcmp(test, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16));
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
127 }
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
128 cxFreeDefault(test);
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
129 }
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
130
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
131 CX_TEST(test_allocator_default_calloc) {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
132 char *test = cxCallocDefault(8, 2);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
133 CX_TEST_DO {
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
134 CX_TEST_ASSERT(test != NULL);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
135 for (int i = 0; i < 16; i++) {
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
136 CX_TEST_ASSERT(test[i] == 0);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
137 }
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
138 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
139 cxFreeDefault(test);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
140 }
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
141
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
142 CX_TEST(test_allocator_default_realloc) {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
143 char *test = cxCallocDefault(8, 1);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
144 memcpy(test, "Test", 5);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
145 CX_TEST_DO {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
146 test = cxReallocDefault(test, 16);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
147 CX_TEST_ASSERT(test != NULL);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
148 CX_TEST_ASSERT(0 == strcmp(test, "Test"));
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
149 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
150 cxFreeDefault(test);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
151 }
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
152
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
153 CX_TEST(test_allocator_default_reallocarray) {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
154 char *test = cxCallocDefault(8, 1);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
155 memcpy(test, "Test", 5);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
156 CX_TEST_DO {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
157 test = cxReallocArrayDefault(test, 16, 2);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
158 CX_TEST_ASSERT(test != NULL);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
159 CX_TEST_ASSERT(0 == strcmp(test, "Test"));
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
160 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
161 cxFreeDefault(test);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
162 }
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
163
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
164 CX_TEST(test_allocator_default_reallocarray_overflow) {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
165 char *test = cxCallocDefault(8, 1);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
166 memcpy(test, "Test", 5);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
167 CX_TEST_DO {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
168 void *fail = cxReallocArrayDefault(test, SIZE_MAX/2, 4);
1040
1ecf4dbbc60c add some more overflow treatment and make sure to set errno properly
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
169 CX_TEST_ASSERT(errno == EOVERFLOW);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
170 CX_TEST_ASSERT(fail == NULL);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
171 CX_TEST_ASSERT(0 == strcmp(test, "Test"));
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
172 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
173 cxFreeDefault(test);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
174 }
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
175
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
176 CX_TEST(test_allocator_default_free) {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
177 void *test = cxMallocDefault(16);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
178 CX_TEST_DO {
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
179 // we cannot assert sth. but valgrind will detect an error
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
180 cxFreeDefault(test);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
181 CX_TEST_ASSERT(true);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
182 }
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
183 }
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
184
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
185 CX_TEST(test_allocator_reallocate) {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
186 char *test = cxCallocDefault(8, 1);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
187 memcpy(test, "Test", 5);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
188 CX_TEST_DO {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
189 int ret = cxReallocateDefault(&test, 16);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
190 CX_TEST_ASSERT(ret == 0);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
191 CX_TEST_ASSERT(test != NULL);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
192 CX_TEST_ASSERT(0 == strcmp(test, "Test"));
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
193 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
194 cxFreeDefault(test);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
195 }
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
196
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
197 CX_TEST(test_allocator_reallocate_low_level) {
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
198 void *test = calloc(8, 1);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
199 memcpy(test, "Test", 5);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
200 CX_TEST_DO {
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
201 int ret = cx_reallocate(&test, 16);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
202 CX_TEST_ASSERT(ret == 0);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
203 CX_TEST_ASSERT(test != NULL);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
204 CX_TEST_ASSERT(0 == strcmp(test, "Test"));
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
205 }
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
206 free(test);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
207 }
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
208
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
209 CX_TEST(test_allocator_reallocatearray) {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
210 char *test = cxCallocDefault(8, 1);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
211 memcpy(test, "Test", 5);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
212 CX_TEST_DO {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
213 int ret = cxReallocateArrayDefault(&test, 16, 2);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
214 CX_TEST_ASSERT(ret == 0);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
215 CX_TEST_ASSERT(test != NULL);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
216 CX_TEST_ASSERT(0 == strcmp(test, "Test"));
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
217 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
218 cxFreeDefault(test);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
219 }
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
220
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
221 CX_TEST(test_allocator_reallocatearray_overflow) {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
222 char *test = cxCallocDefault(8, 1);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
223 memcpy(test, "Test", 5);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
224 CX_TEST_DO {
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
225 int ret = cxReallocateArrayDefault(&test, SIZE_MAX/2, 4);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
226 CX_TEST_ASSERT(ret != 0);
1040
1ecf4dbbc60c add some more overflow treatment and make sure to set errno properly
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
227 CX_TEST_ASSERT(errno == EOVERFLOW);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
228 CX_TEST_ASSERT(test != NULL);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
229 CX_TEST_ASSERT(0 == strcmp(test, "Test"));
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
230 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
231 cxFreeDefault(test);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
232 }
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
233
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
234 CX_TEST(test_allocator_reallocatearray_low_level) {
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
235 char *test = calloc(8, 1);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
236 memcpy(test, "Test", 5);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
237 CX_TEST_DO {
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
238 int ret = cx_reallocatearray(&test, 16, 2);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
239 CX_TEST_ASSERT(ret == 0);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
240 CX_TEST_ASSERT(test != NULL);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
241 CX_TEST_ASSERT(0 == strcmp(test, "Test"));
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
242 }
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
243 free(test);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
244 }
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
245
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
246 CX_TEST(test_allocator_reallocatearray_low_level_overflow) {
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
247 char *test = calloc(8, 1);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
248 memcpy(test, "Test", 5);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
249 CX_TEST_DO {
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
250 int ret = cx_reallocatearray(&test, SIZE_MAX/2, 4);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
251 CX_TEST_ASSERT(ret != 0);
1040
1ecf4dbbc60c add some more overflow treatment and make sure to set errno properly
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
252 CX_TEST_ASSERT(errno == EOVERFLOW);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
253 CX_TEST_ASSERT(test != NULL);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
254 CX_TEST_ASSERT(0 == strcmp(test, "Test"));
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
255 }
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
256 free(test);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
257 }
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
258
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
259 static void *test_allocator_mock_failing_realloc(
985
68754c7de906 major refactoring of attributes
Mike Becker <universe@uap-core.de>
parents: 963
diff changeset
260 cx_attr_unused void *p,
68754c7de906 major refactoring of attributes
Mike Becker <universe@uap-core.de>
parents: 963
diff changeset
261 cx_attr_unused void *d,
68754c7de906 major refactoring of attributes
Mike Becker <universe@uap-core.de>
parents: 963
diff changeset
262 cx_attr_unused size_t n
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
263 ) {
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
264 return NULL;
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
265 }
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
266
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
267 CX_TEST(test_allocator_reallocate_fails) {
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
268 // Mock an allocator that always returns NULL on realloc
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
269 cx_allocator_class mock_cl;
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
270 mock_cl.realloc = test_allocator_mock_failing_realloc;
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
271 CxAllocator mock = {&mock_cl, NULL};
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
272
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
273 void *test = calloc(8, 1);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
274 memcpy(test, "Test", 5);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
275 void *original = test;
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
276 CX_TEST_DO {
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
277 int ret = cxReallocate(&mock, &test, 16);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
278 // non-zero return code because of the failure
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
279 CX_TEST_ASSERT(ret != 0);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
280 // the test pointer was not changed and still points to the same memory
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
281 CX_TEST_ASSERT(test == original);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
282 CX_TEST_ASSERT(0 == strcmp(test, "Test"));
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
283 }
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
284 free(test);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
285 }
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
286
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
287 CxTestSuite *cx_test_suite_allocator(void) {
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
288 CxTestSuite *suite = cx_test_suite_new("allocator");
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
289
1326
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
290 cx_test_register(suite, test_allocator_stdlib_malloc);
1332
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
291 cx_test_register(suite, test_allocator_stdlib_zalloc);
1326
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
292 cx_test_register(suite, test_allocator_stdlib_calloc);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
293 cx_test_register(suite, test_allocator_stdlib_realloc);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
294 cx_test_register(suite, test_allocator_stdlib_reallocarray);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
295 cx_test_register(suite, test_allocator_stdlib_reallocarray_overflow);
9bf5945d91ab fix test coverage for cxStdlibAllocator
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
296 cx_test_register(suite, test_allocator_stdlib_free);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
297 cx_test_register(suite, test_allocator_default_malloc);
1332
dd5d2402d161 implement zalloc() - resolves #679
Mike Becker <universe@uap-core.de>
parents: 1326
diff changeset
298 cx_test_register(suite, test_allocator_default_zalloc);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
299 cx_test_register(suite, test_allocator_default_calloc);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
300 cx_test_register(suite, test_allocator_default_realloc);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
301 cx_test_register(suite, test_allocator_default_reallocarray);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
302 cx_test_register(suite, test_allocator_default_reallocarray_overflow);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
303 cx_test_register(suite, test_allocator_default_free);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
304 cx_test_register(suite, test_allocator_reallocate);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
305 cx_test_register(suite, test_allocator_reallocate_fails);
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
306 cx_test_register(suite, test_allocator_reallocate_low_level);
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
307 cx_test_register(suite, test_allocator_reallocatearray);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
308 cx_test_register(suite, test_allocator_reallocatearray_overflow);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
309 cx_test_register(suite, test_allocator_reallocatearray_low_level);
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 782
diff changeset
310 cx_test_register(suite, test_allocator_reallocatearray_low_level_overflow);
782
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
311
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
312 return suite;
74d777455e96 migrate allocator tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
313 }

mercurial