9 {
10 foopool_buffer buf;
11 foopool pool = foopool_new(&buf);
12
13 void* ptr1 = foopool_malloc(&pool, 100);
15
16 void* ptr2 = foopool_malloc(&pool, 200);
18
19
20 size_t used = foopool_get_used(&pool);
21 DC_ASSERT(used == 100 + 200 + foopool_metadata_size * 2);
22
23 foopool_free(&pool, ptr1);
24
25
26 void* ptr2_realloc = foopool_realloc(&pool, ptr2, 300);
28
29 foopool_free(&pool, ptr2_realloc);
30
31 foopool_clear(&pool);
32
33
34 void* ptr3 = foopool_malloc(&pool, 1024 - foopool_metadata_size);
36 foopool_free(&pool, ptr3);
37 foopool_clear(&pool);
38
39
40 void* ptr4 = foopool_malloc(&pool, 1024 - foopool_metadata_size + 1);
43}
#define DC_ASSERT(expr,...)