Mercurial > molko
annotate tests/test-alloc.c @ 502:ab2816f9551c
ui: start reworking on styles
While here, demonstrates how we can use a custom style on a button.
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 01 Mar 2023 10:34:12 +0100 |
parents | 773a082f0b91 |
children | 0ff9f4a5c364 |
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 * |
445
773a082f0b91
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
442
diff
changeset
|
4 * Copyright (c) 2020-2023 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 |
431
8f59201dc76b
core: cleanup hierarchy
David Demelier <markand@malikania.fr>
parents:
421
diff
changeset
|
21 #include <mlk/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 alloc_count; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
32 size_t free_count; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
33 } my_stats; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
34 |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
35 static void * |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
36 my_alloc(size_t n) |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
37 { |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
38 my_stats.alloc_count += 1; |
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 return malloc(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 |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
43 static void * |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
44 my_realloc(void *ptr, size_t 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 (void)ptr; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
47 (void)n; |
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 return NULL; |
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 |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
52 static void |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
53 my_free(void *ptr) |
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 free(ptr); |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
56 my_stats.free_count += 1; |
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 |
438
25a56ca53ac2
core: update mlk-alloc module
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
59 static const struct mlk_alloc_funcs my_funcs = { |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
60 .alloc = my_alloc, |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
61 .realloc = my_realloc, |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
62 .free = my_free |
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 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
65 static void |
442
9c3b3935f0aa
core: rework allocations
David Demelier <markand@malikania.fr>
parents:
438
diff
changeset
|
66 test_basics_array0(void) |
269
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
67 { |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
68 struct point *points; |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
69 |
442
9c3b3935f0aa
core: rework allocations
David Demelier <markand@malikania.fr>
parents:
438
diff
changeset
|
70 points = mlk_alloc_new0(2, sizeof (*points)); |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
71 DT_EQ_INT(points[0].x, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
72 DT_EQ_INT(points[0].y, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
73 DT_EQ_INT(points[1].x, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
74 DT_EQ_INT(points[1].y, 0); |
269
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
75 |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
76 points[0].x = 10; |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
77 points[0].y = 20; |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
78 points[1].x = 30; |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
79 points[1].y = 40; |
9b758eb84556
core: add alloc_rearray0 function
David Demelier <markand@malikania.fr>
parents:
228
diff
changeset
|
80 |
442
9c3b3935f0aa
core: rework allocations
David Demelier <markand@malikania.fr>
parents:
438
diff
changeset
|
81 points = mlk_alloc_renew0(points, 4); |
9c3b3935f0aa
core: rework allocations
David Demelier <markand@malikania.fr>
parents:
438
diff
changeset
|
82 |
9c3b3935f0aa
core: rework allocations
David Demelier <markand@malikania.fr>
parents:
438
diff
changeset
|
83 /* Make sure previous are still correct. */ |
410
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); |
442
9c3b3935f0aa
core: rework allocations
David Demelier <markand@malikania.fr>
parents:
438
diff
changeset
|
88 |
9c3b3935f0aa
core: rework allocations
David Demelier <markand@malikania.fr>
parents:
438
diff
changeset
|
89 /* Now the new items must be zero'ed. */ |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
90 DT_EQ_INT(points[2].x, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
91 DT_EQ_INT(points[2].y, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
92 DT_EQ_INT(points[3].x, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
93 DT_EQ_INT(points[3].y, 0); |
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 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
96 static void |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
97 test_basics_pool_simple(void) |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 { |
438
25a56ca53ac2
core: update mlk-alloc module
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
99 struct mlk_alloc_pool pool; |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
100 struct point *p, *data; |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
101 size_t total = 0; |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 |
442
9c3b3935f0aa
core: rework allocations
David Demelier <markand@malikania.fr>
parents:
438
diff
changeset
|
103 mlk_alloc_pool_init(&pool, 16, sizeof (*p), NULL); |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
104 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
105 DT_EQ_UINT(pool.elemsize, sizeof (*p)); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
106 DT_EQ_UINT(pool.size, 0); |
442
9c3b3935f0aa
core: rework allocations
David Demelier <markand@malikania.fr>
parents:
438
diff
changeset
|
107 DT_EQ_UINT(pool.capacity, 16); |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 /* Create until we reach the capacity. */ |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 for (size_t i = 0; i < pool.capacity; ++i) { |
438
25a56ca53ac2
core: update mlk-alloc module
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
111 p = mlk_alloc_pool_new(&pool); |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 p->x = (int)i + 1; |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 p->y = (int)i + 1; |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
114 total++; |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 } |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
117 DT_EQ_UINT(pool.size, pool.capacity); |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 /* Verify values are correct. */ |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 for (size_t i = 0; i < pool.size; ++i) { |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 p = ((struct point *)pool.data) + i; |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
123 DT_EQ_INT(p->x, (int)i + 1); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
124 DT_EQ_INT(p->y, (int)i + 1); |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 } |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 /* Now it should reallocate. */ |
438
25a56ca53ac2
core: update mlk-alloc module
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
128 p = mlk_alloc_pool_new(&pool); |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 p->x = 9999; |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 p->y = 9999; |
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
132 DT_ASSERT(pool.capacity > pool.size); |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
134 /* Shrink it! */ |
438
25a56ca53ac2
core: update mlk-alloc module
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
135 data = mlk_alloc_pool_shrink(&pool); |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
136 |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
137 /* Verify values are correct again. */ |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
138 for (size_t i = 0; i < total; ++i) { |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
139 DT_EQ_INT(data[i].x, (int)i + 1); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
140 DT_EQ_INT(data[i].y, (int)i + 1); |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
141 } |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
143 DT_EQ_PTR(pool.data, NULL); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
144 DT_EQ_UINT(pool.size, 0U); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
145 DT_EQ_UINT(pool.capacity, 0U); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
146 DT_EQ_UINT(pool.elemsize, 0U); |
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 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
149 static void |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
150 test_basics_sdupf(void) |
402
d3fa956cdaf0
core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents:
378
diff
changeset
|
151 { |
438
25a56ca53ac2
core: update mlk-alloc module
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
152 char *str = mlk_alloc_sdupf("Hello %s", "David"); |
402
d3fa956cdaf0
core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents:
378
diff
changeset
|
153 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
154 DT_EQ_STR(str, "Hello David"); |
442
9c3b3935f0aa
core: rework allocations
David Demelier <markand@malikania.fr>
parents:
438
diff
changeset
|
155 mlk_alloc_free(str); |
402
d3fa956cdaf0
core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents:
378
diff
changeset
|
156 } |
d3fa956cdaf0
core: add alloc_sdupf
David Demelier <markand@malikania.fr>
parents:
378
diff
changeset
|
157 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
158 static void |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
159 test_custom_count(void) |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
160 { |
438
25a56ca53ac2
core: update mlk-alloc module
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
161 mlk_alloc_set(&my_funcs); |
442
9c3b3935f0aa
core: rework allocations
David Demelier <markand@malikania.fr>
parents:
438
diff
changeset
|
162 mlk_alloc_free(mlk_alloc_new(10, 1)); |
9c3b3935f0aa
core: rework allocations
David Demelier <markand@malikania.fr>
parents:
438
diff
changeset
|
163 mlk_alloc_free(mlk_alloc_new0(20, 1)); |
438
25a56ca53ac2
core: update mlk-alloc module
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
164 mlk_alloc_free(mlk_alloc_sdup("malikania")); |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
165 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
166 DT_EQ_UINT(my_stats.alloc_count, 3U); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
167 DT_EQ_UINT(my_stats.free_count, 3U); |
404
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
168 } |
7321511052f6
core: rework alloc module
David Demelier <markand@malikania.fr>
parents:
402
diff
changeset
|
169 |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
170 int |
421
3edda1ce314c
core: remove mlk_ prefix for now
David Demelier <markand@malikania.fr>
parents:
410
diff
changeset
|
171 main(void) |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
172 { |
442
9c3b3935f0aa
core: rework allocations
David Demelier <markand@malikania.fr>
parents:
438
diff
changeset
|
173 DT_RUN(test_basics_array0); |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
174 DT_RUN(test_basics_pool_simple); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
175 DT_RUN(test_basics_sdupf); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
176 DT_RUN(test_custom_count); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
177 DT_SUMMARY(); |
228
2734223d3daf
core: add a alloc_pool module
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
178 } |