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