Files
c3c/test/unit/stdlib/mem/arena_allocator.c3

19 lines
515 B
Plaintext

module allocator_test @test;
import std::core::mem;
fn void test_arena_allocator_err()
{
char[40] data;
char[40] empty;
ArenaAllocator* foo = allocator::wrap(&data);
char* alloc = allocator::malloc(foo, 5);
alloc[0] = 3;
assert(alloc >= &data[0] && alloc <= &data[^1]);
assert(foo.used >= 5);
assert(data != empty);
test::@error(allocator::malloc_try(foo, 50), mem::INVALID_ALLOC_SIZE);
test::@error(allocator::malloc_try(foo, 30), mem::OUT_OF_MEMORY);
foo.clear();
(void)allocator::malloc(foo, 20);
}