Mercurial > molko
annotate tests/test-alloc.c @ 411:d74f53299252
make: add basic GNU make support
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 07 Oct 2022 14:35:31 +0200 |
parents | 1bf7d6669f0a |
children | 3edda1ce314c |
rev | line source |
---|---|
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * test-alloc.c -- test allocators |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
378
460c78706989
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
336
diff
changeset
|
4 * Copyright (c) 2020-2022 David Demelier <markand@malikania.fr> |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
19 #include <stdlib.h> |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
20 |
408
0ea90751a62d
tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents:
404
diff
changeset
|
21 #include <core/alloc.h> |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
23 #include <dt.h> |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 struct point { |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 int x; |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 int y; |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 }; |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
30 static struct { |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
31 size_t total; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
32 size_t alloc_count; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
33 size_t free_count; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
34 } my_stats; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
35 |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
36 static void * |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
37 my_alloc(size_t n) |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
38 { |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
39 my_stats.alloc_count += 1; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
40 my_stats.total += n; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
41 |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
42 return malloc(n); |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
43 } |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
44 |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
45 static void * |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
46 my_realloc(void *ptr, size_t n) |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
47 { |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
48 (void)ptr; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
49 (void)n; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
50 |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
51 return NULL; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
52 } |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
53 |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
54 static void |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
55 my_free(void *ptr) |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
56 { |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
57 free(ptr); |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
58 my_stats.free_count += 1; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
59 } |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
60 |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
61 static const struct alloc_funcs my_funcs = { |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
62 .alloc = my_alloc, |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
63 .realloc = my_realloc, |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
64 .free = my_free |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
65 }; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
66 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
67 static void |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
68 test_basics_array_simple(void) |
269
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
69 { |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
70 struct point *points; |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
71 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
72 DT_ASSERT((points = alloc_array0(2, sizeof (*points)))); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
73 DT_EQ_INT(points[0].x, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
74 DT_EQ_INT(points[0].y, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
75 DT_EQ_INT(points[1].x, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
76 DT_EQ_INT(points[1].y, 0); |
269
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
77 |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
78 points[0].x = 10; |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
79 points[0].y = 20; |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
80 points[1].x = 30; |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
81 points[1].y = 40; |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
82 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
83 DT_ASSERT((points = alloc_rearray0(points, 2, 4, sizeof (*points)))); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
84 DT_EQ_INT(points[0].x, 10); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
85 DT_EQ_INT(points[0].y, 20); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
86 DT_EQ_INT(points[1].x, 30); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
87 DT_EQ_INT(points[1].y, 40); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
88 DT_EQ_INT(points[2].x, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
89 DT_EQ_INT(points[2].y, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
90 DT_EQ_INT(points[3].x, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
91 DT_EQ_INT(points[3].y, 0); |
269
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
92 } |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
93 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
94 static void |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
95 test_basics_pool_simple(void) |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 { |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 struct alloc_pool pool; |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
98 struct point *p, *data; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
99 size_t total = 0; |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
101 alloc_pool_init(&pool, sizeof (*p), NULL); |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
102 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
103 DT_EQ_UINT(pool.elemsize, sizeof (*p)); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
104 DT_EQ_UINT(pool.size, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
105 DT_EQ_UINT(pool.capacity, ALLOC_POOL_INIT_DEFAULT); |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 /* Create until we reach the capacity. */ |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 for (size_t i = 0; i < pool.capacity; ++i) { |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 p = alloc_pool_new(&pool); |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 p->x = (int)i + 1; |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 p->y = (int)i + 1; |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
112 total++; |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 } |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
115 DT_EQ_UINT(pool.size, pool.capacity); |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 /* Verify values are correct. */ |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 for (size_t i = 0; i < pool.size; ++i) { |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 p = ((struct point *)pool.data) + i; |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
121 DT_EQ_INT(p->x, (int)i + 1); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
122 DT_EQ_INT(p->y, (int)i + 1); |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 } |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 /* Now it should reallocate. */ |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 p = alloc_pool_new(&pool); |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 p->x = 9999; |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 p->y = 9999; |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
130 DT_ASSERT(pool.capacity > pool.size); |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
132 /* Shrink it! */ |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
133 data = alloc_pool_shrink(&pool); |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
134 |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
135 /* Verify values are correct again. */ |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
136 for (size_t i = 0; i < total; ++i) { |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
137 DT_EQ_INT(data[i].x, (int)i + 1); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
138 DT_EQ_INT(data[i].y, (int)i + 1); |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
139 } |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
141 DT_EQ_PTR(pool.data, NULL); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
142 DT_EQ_UINT(pool.size, 0U); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
143 DT_EQ_UINT(pool.capacity, 0U); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
144 DT_EQ_UINT(pool.elemsize, 0U); |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
145 } |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
146 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
147 static void |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
148 test_basics_sdupf(void) |
402
d3fa956cdaf0
core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents:
378
diff
changeset
|
149 { |
d3fa956cdaf0
core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents:
378
diff
changeset
|
150 char *str = alloc_sdupf("Hello %s", "David"); |
d3fa956cdaf0
core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents:
378
diff
changeset
|
151 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
152 DT_EQ_STR(str, "Hello David"); |
402
d3fa956cdaf0
core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents:
378
diff
changeset
|
153 free(str); |
d3fa956cdaf0
core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents:
378
diff
changeset
|
154 } |
d3fa956cdaf0
core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents:
378
diff
changeset
|
155 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
156 static void |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
157 test_custom_count(void) |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
158 { |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
159 alloc_set(&my_funcs); |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
160 alloc_free(alloc_new(10)); |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
161 alloc_free(alloc_new0(20)); |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
162 alloc_free(alloc_sdup("malikania")); |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
163 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
164 DT_EQ_UINT(my_stats.total, 40U); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
165 DT_EQ_UINT(my_stats.alloc_count, 3U); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
166 DT_EQ_UINT(my_stats.free_count, 3U); |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
167 } |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
168 |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
169 int |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
170 main(int argc, char **argv) |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
171 { |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
172 DT_RUN(test_basics_array_simple); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
173 DT_RUN(test_basics_pool_simple); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
174 DT_RUN(test_basics_sdupf); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
175 DT_RUN(test_custom_count); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
176 DT_SUMMARY(); |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
177 } |