10 {
11 foopool_buffer buf;
12 foopool pool = foopool_new(&buf);
13
14 void* ptr1 = foopool_malloc(&pool, 100);
16
17 void* ptr2 = foopool_malloc(&pool, 200);
19
20
21 size_t used = foopool_get_used(&pool);
22 ASSERT(used == 100 + 200 + foopool_metadata_size * 2);
23
24 foopool_free(&pool, ptr1);
25
26
27 void* ptr2_realloc = foopool_realloc(&pool, ptr2, 300);
28 ASSERT(ptr2_realloc == ptr2);
29
30 foopool_free(&pool, ptr2_realloc);
31
32 foopool_clear(&pool);
33
34
35 void* ptr3 = foopool_malloc(&pool, 1024 - foopool_metadata_size);
37 foopool_free(&pool, ptr3);
38 foopool_clear(&pool);
39
40
41 void* ptr4 = foopool_malloc(&pool, 1024 - foopool_metadata_size + 1);
43 ASSERT(foopool_get_used(&pool) == 0);
44}