annotate tests/test-alloc.c @ 408:0ea90751a62d

tests: disable entirely automatic registration
author David Demelier <markand@malikania.fr>
date Fri, 08 Apr 2022 15:59:08 +0200
parents 7321511052f6
children 1bf7d6669f0a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
408
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
19 #include <core/alloc.h>
228
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
408
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
21 #include "test.h"
228
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
22
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 struct point {
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 int x;
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 int y;
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 };
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
404
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
28 static const struct alloc_funcs standard_funcs = {
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
29 .alloc = malloc,
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
30 .realloc = realloc,
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
31 .free = free
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
32 };
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
33
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
34 static struct {
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
35 size_t total;
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
36 size_t alloc_count;
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
37 size_t free_count;
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
38 } my_stats;
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
39
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
40 static void *
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
41 my_alloc(size_t n)
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
42 {
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
43 my_stats.alloc_count += 1;
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
44 my_stats.total += n;
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
45
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
46 return malloc(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
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
49 static void *
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
50 my_realloc(void *ptr, size_t n)
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
51 {
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
52 (void)ptr;
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
53 (void)n;
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
54
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
55 return NULL;
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
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
58 static void
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
59 my_free(void *ptr)
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 free(ptr);
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
62 my_stats.free_count += 1;
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
63 }
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
64
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
65 static const struct alloc_funcs my_funcs = {
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
66 .alloc = my_alloc,
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
67 .realloc = my_realloc,
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
68 .free = my_free
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
69 };
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
70
408
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
71 RX_SET_UP(basics_set_up)
404
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
72 {
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
73 alloc_set(&standard_funcs);
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
74
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
75 return RX_SUCCESS;
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
76 }
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
77
408
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
78 RX_TEAR_DOWN(basics_tear_down)
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
79 {
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
80 }
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
81
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
82 RX_SET_UP(custom_set_up)
404
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
83 {
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
84 alloc_set(&my_funcs);
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
85
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
86 return RX_SUCCESS;
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
87 }
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
88
408
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
89 RX_TEAR_DOWN(custom_tear_down)
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
90 {
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
91 }
404
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
92
408
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
93 RX_TEST_CASE(basics, array_simple)
269
9b758eb84556 core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents: 228
diff changeset
94 {
9b758eb84556 core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents: 228
diff changeset
95 struct point *points;
9b758eb84556 core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents: 228
diff changeset
96
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
97 RX_REQUIRE((points = alloc_array0(2, sizeof (*points))));
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
98 RX_INT_REQUIRE_EQUAL(points[0].x, 0);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
99 RX_INT_REQUIRE_EQUAL(points[0].y, 0);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
100 RX_INT_REQUIRE_EQUAL(points[1].x, 0);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
101 RX_INT_REQUIRE_EQUAL(points[1].y, 0);
269
9b758eb84556 core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents: 228
diff changeset
102
9b758eb84556 core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents: 228
diff changeset
103 points[0].x = 10;
9b758eb84556 core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents: 228
diff changeset
104 points[0].y = 20;
9b758eb84556 core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents: 228
diff changeset
105 points[1].x = 30;
9b758eb84556 core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents: 228
diff changeset
106 points[1].y = 40;
9b758eb84556 core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents: 228
diff changeset
107
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
108 RX_REQUIRE((points = alloc_rearray0(points, 2, 4, sizeof (*points))));
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
109 RX_INT_REQUIRE_EQUAL(points[0].x, 10);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
110 RX_INT_REQUIRE_EQUAL(points[0].y, 20);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
111 RX_INT_REQUIRE_EQUAL(points[1].x, 30);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
112 RX_INT_REQUIRE_EQUAL(points[1].y, 40);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
113 RX_INT_REQUIRE_EQUAL(points[2].x, 0);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
114 RX_INT_REQUIRE_EQUAL(points[2].y, 0);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
115 RX_INT_REQUIRE_EQUAL(points[3].x, 0);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
116 RX_INT_REQUIRE_EQUAL(points[3].y, 0);
269
9b758eb84556 core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents: 228
diff changeset
117 }
9b758eb84556 core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents: 228
diff changeset
118
408
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
119 RX_TEST_CASE(basics, pool_simple)
228
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 {
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 struct alloc_pool pool;
404
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
122 struct point *p, *data;
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
123 size_t total = 0;
228
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
124
404
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
125 alloc_pool_init(&pool, sizeof (*p), NULL);
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
126
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
127 RX_UINT_REQUIRE_EQUAL(pool.elemsize, sizeof (*p));
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
128 RX_UINT_REQUIRE_EQUAL(pool.size, 0);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
129 RX_UINT_REQUIRE_EQUAL(pool.capacity, ALLOC_POOL_INIT_DEFAULT);
228
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
130
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 /* Create until we reach the capacity. */
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 for (size_t i = 0; i < pool.capacity; ++i) {
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 p = alloc_pool_new(&pool);
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 p->x = (int)i + 1;
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 p->y = (int)i + 1;
404
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
136 total++;
228
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 }
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
138
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
139 RX_UINT_REQUIRE_EQUAL(pool.size, pool.capacity);
228
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
140
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 /* Verify values are correct. */
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 for (size_t i = 0; i < pool.size; ++i) {
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 p = ((struct point *)pool.data) + i;
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
144
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
145 RX_INT_REQUIRE_EQUAL(p->x, (int)i + 1);
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
146 RX_INT_REQUIRE_EQUAL(p->y, (int)i + 1);
228
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 }
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
148
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 /* Now it should reallocate. */
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 p = alloc_pool_new(&pool);
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 p->x = 9999;
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 p->y = 9999;
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
153
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
154 RX_REQUIRE(pool.capacity > pool.size);
228
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
155
404
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
156 /* Shrink it! */
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
157 data = alloc_pool_shrink(&pool);
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
158
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
159 /* Verify values are correct again. */
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
160 for (size_t i = 0; i < total; ++i) {
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
161 RX_INT_REQUIRE_EQUAL(data[i].x, (int)i + 1);
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
162 RX_INT_REQUIRE_EQUAL(data[i].y, (int)i + 1);
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
163 }
228
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
164
336
f5a5bbb77122 tests: switch to rexo
David Demelier <markand@malikania.fr>
parents: 314
diff changeset
165 RX_PTR_REQUIRE_EQUAL(pool.data, NULL);
404
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
166 RX_UINT_REQUIRE_EQUAL(pool.size, 0);
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
167 RX_UINT_REQUIRE_EQUAL(pool.capacity, 0);
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
168 RX_UINT_REQUIRE_EQUAL(pool.elemsize, 0);
228
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 }
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
170
408
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
171 RX_TEST_CASE(basics, sdupf)
402
d3fa956cdaf0 core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
172 {
d3fa956cdaf0 core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
173 char *str = alloc_sdupf("Hello %s", "David");
d3fa956cdaf0 core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
174
d3fa956cdaf0 core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
175 RX_STR_REQUIRE_EQUAL(str, "Hello David");
d3fa956cdaf0 core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
176 free(str);
d3fa956cdaf0 core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
177 }
d3fa956cdaf0 core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
178
408
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
179 RX_TEST_CASE(custom, count)
404
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
180 {
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
181 alloc_free(alloc_new(10));
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
182 alloc_free(alloc_new0(20));
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
183 alloc_free(alloc_sdup("malikania"));
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
184
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
185 RX_INT_REQUIRE_EQUAL(my_stats.total, 40U);
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
186 RX_INT_REQUIRE_EQUAL(my_stats.alloc_count, 3U);
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
187 RX_INT_REQUIRE_EQUAL(my_stats.free_count, 3U);
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
188 }
7321511052f6 core: rework alloc module
David Demelier <markand@malikania.fr>
parents: 402
diff changeset
189
408
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
190 static const struct rx_test_case tests[] = {
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
191 TEST_FIXTURE(basics, array_simple, void *),
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
192 TEST_FIXTURE(basics, pool_simple, void *),
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
193 TEST_FIXTURE(basics, sdupf, void *),
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
194 TEST_FIXTURE(custom, count, void *)
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
195 };
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
196
228
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
197 int
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
198 main(int argc, char **argv)
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 {
408
0ea90751a62d tests: disable entirely automatic registration
David Demelier <markand@malikania.fr>
parents: 404
diff changeset
200 return TEST_RUN_ALL(tests, argc, argv);
228
2734223d3daf core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 }