tests/test_mempool.cpp

Mon, 18 Dec 2023 16:14:07 +0100

author
Mike Becker <universe@uap-core.de>
date
Mon, 18 Dec 2023 16:14:07 +0100
changeset 763
741a2040fa33
parent 727
d92a59f5d261
permissions
-rw-r--r--

make cx_cmp_ptr default comparator for pointer lists - relates to #340

571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 /*
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
3 *
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
4 * Copyright 2021 Mike Becker, Olaf Wintermann All rights reserved.
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
5 *
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 *
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
11 *
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
15 *
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
f83583a0bbac #201 - add mempool implementation
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
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
27 */
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
28
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
29 #include "cx/mempool.h"
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
30 #include "util_allocator.h"
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
31 #include <gtest/gtest.h>
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
32
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
33 TEST(Mempool, Create) {
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
34 auto pool = cxBasicMempoolCreate(16);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
35 ASSERT_EQ(pool->auto_destr, nullptr);
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
36 ASSERT_NE(pool->allocator, nullptr);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
37 ASSERT_NE(pool->allocator->cl, nullptr);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
38 EXPECT_EQ(pool->allocator->data, pool);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
39 EXPECT_NE(pool->allocator->cl->malloc, nullptr);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
40 EXPECT_NE(pool->allocator->cl->calloc, nullptr);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
41 EXPECT_NE(pool->allocator->cl->realloc, nullptr);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
42 EXPECT_NE(pool->allocator->cl->free, nullptr);
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
43 EXPECT_EQ(pool->capacity, 16);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
44 EXPECT_EQ(pool->size, 0);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
45 EXPECT_NE(pool->data, nullptr);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
46 cxMempoolDestroy(pool);
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
47 }
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
48
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
49 TEST(Mempool, malloc) {
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
50 auto pool = cxBasicMempoolCreate(4);
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
51 EXPECT_NE(cxMalloc(pool->allocator, sizeof(int)), nullptr);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
52 EXPECT_NE(cxMalloc(pool->allocator, sizeof(int)), nullptr);
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
53 EXPECT_EQ(pool->size, 2);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
54 EXPECT_EQ(pool->capacity, 4);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
55 EXPECT_NE(cxMalloc(pool->allocator, sizeof(int)), nullptr);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
56 EXPECT_NE(cxMalloc(pool->allocator, sizeof(int)), nullptr);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
57 EXPECT_EQ(pool->size, 4);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
58 EXPECT_EQ(pool->capacity, 4);
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
59 EXPECT_NE(cxMalloc(pool->allocator, sizeof(int)), nullptr);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
60 EXPECT_NE(cxMalloc(pool->allocator, sizeof(int)), nullptr);
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
61 EXPECT_EQ(pool->size, 6);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
62 EXPECT_GE(pool->capacity, 6);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
63 cxMempoolDestroy(pool);
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
64 }
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
65
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
66 TEST(Mempool, calloc) {
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
67 auto pool = cxBasicMempoolCreate(4);
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
68
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
69 auto test = (int *) cxCalloc(pool->allocator, 2, sizeof(int));
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
70 ASSERT_NE(test, nullptr);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
71 EXPECT_EQ(test[0], 0);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
72 EXPECT_EQ(test[1], 0);
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
73 cxMempoolDestroy(pool);
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
74 }
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
75
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
76 static unsigned test_destructor_called;
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
77
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
78 static void test_destructor([[maybe_unused]] void *mem) {
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
79 test_destructor_called++;
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
80 }
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
81
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
82 TEST(Mempool, realloc) {
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
83 auto pool = cxMempoolCreate(4, test_destructor);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
84 ASSERT_EQ(pool->auto_destr, test_destructor);
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
85 auto data = cxMalloc(pool->allocator, sizeof(int));
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
86 *((int *) data) = 13;
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
87
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
88 void *rdata = data;
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
89 unsigned n = 1;
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
90 while (rdata == data) {
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
91 n <<= 1;
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
92 ASSERT_LT(n, 65536); // eventually the memory should be moved elsewhere
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
93 rdata = cxRealloc(pool->allocator, data, n * sizeof(intptr_t));
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
94 }
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
95
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
96 EXPECT_EQ(*((int *) rdata), 13);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
97 // test if destructor is still intact
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
98 test_destructor_called = 0;
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
99 cxFree(pool->allocator, rdata);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
100 EXPECT_EQ(test_destructor_called, 1);
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
101 cxMempoolDestroy(pool);
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
102 }
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
103
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
104
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
105 TEST(Mempool, free) {
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
106 auto pool = cxBasicMempoolCreate(4);
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
107
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
108 void *mem1;
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
109 void *mem2;
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
110
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
111 mem1 = cxMalloc(pool->allocator, 16);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
112 cxFree(pool->allocator, mem1);
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
113 EXPECT_EQ(pool->size, 0);
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
114
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
115 cxMalloc(pool->allocator, 16);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
116 cxMalloc(pool->allocator, 16);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
117 mem1 = cxMalloc(pool->allocator, 16);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
118 cxMalloc(pool->allocator, 16);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
119 mem2 = cxMalloc(pool->allocator, 16);
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
120
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
121 EXPECT_EQ(pool->size, 5);
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
122 cxFree(pool->allocator, mem1);
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
123 EXPECT_EQ(pool->size, 4);
571
f83583a0bbac #201 - add mempool implementation
Mike Becker <universe@uap-core.de>
parents:
diff changeset
124 cxFree(pool->allocator, mem2);
727
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
125 EXPECT_EQ(pool->size, 3);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
126 cxMempoolDestroy(pool);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
127 }
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
128
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
129 TEST(Mempool, Destroy) {
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
130 auto pool = cxBasicMempoolCreate(4);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
131 auto data = cxMalloc(pool->allocator, sizeof(int));
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
132 *((int *) data) = 13;
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
133 cxMempoolSetDestructor(data, test_destructor);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
134 EXPECT_EQ(*((int *) data), 13);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
135 test_destructor_called = 0;
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
136 cxFree(pool->allocator, data);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
137 EXPECT_EQ(test_destructor_called, 1);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
138 data = cxMalloc(pool->allocator, sizeof(int));
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
139 cxMempoolSetDestructor(data, test_destructor);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
140 cxMempoolDestroy(pool);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
141 EXPECT_EQ(test_destructor_called, 2);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
142 }
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
143
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
144 TEST(Mempool, Register) {
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
145 auto pool = cxBasicMempoolCreate(4);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
146 auto data = cxMalloc(pool->allocator, sizeof(int));
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
147 test_destructor_called = 0;
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
148 cxMempoolSetDestructor(data, test_destructor);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
149 int donotfree = 0;
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
150 cxMempoolRegister(pool, &donotfree, test_destructor);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
151 cxMempoolDestroy(pool);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
152 EXPECT_EQ(test_destructor_called, 2);
d92a59f5d261 improve mempool implementation
Mike Becker <universe@uap-core.de>
parents: 653
diff changeset
153 }

mercurial