Files
cig/test_borrow_allocator.c
T
roodletoof 3e80bd2cfd with_borrow macros
this allows for scope-based heap allocations. There is one limitation.
You cannot use the return keyword inside the following block. This trick
uses dark macro magic :)
2025-10-10 20:13:15 +02:00

24 lines
664 B
C

#include <criterion/criterion.h>
#include "allocator.h"
#define EXPECT 5
Test(borrow_allocator, test) {
borrow_allocator_t balloc = borrow_allocator_create();
int *ptr = borrow_allocator_alloc(&balloc, sizeof(int));
*ptr = EXPECT;
cr_assert_eq(*ptr, EXPECT);
cr_assert_eq(1, borrow_allocator_count_allocations(&balloc));
borrow_allocator_reset(&balloc);
cr_assert_eq(0, borrow_allocator_count_allocations(&balloc));
borrow_allocator_assert_all_freed(&balloc);
}
Test(borrow_allocator, with) {
with_borrow(foo) {
allocator_alloc(foo, 1000);
allocator_alloc(foo, 100);
allocator_alloc(foo, 90);
}
}