Add virtual arena tests for bug #5821

This commit is contained in:
Shane Shrybman
2026-03-09 14:51:35 -04:00
parent 7a41092dcc
commit 5a82f06ba1

View File

@@ -57,6 +57,33 @@ test_align_bumping_block_limit :: proc(t: ^testing.T) {
testing.expect(t, len(data) == 896)
}
@(test)
test_large_minimum_block_size :: proc(t: ^testing.T) {
a: virtual.Arena
defer virtual.arena_destroy(&a)
init_err := virtual.arena_init_growing(&a, 16*mem.Megabyte)
testing.expect_value(t, init_err, nil)
align : uint = 4
for _ in 0..<6 {
data, err := virtual.arena_alloc(&a, 18874368, align)
testing.expect_value(t, err, nil)
testing.expect(t, len(data) == 18874368)
testing.expect(t, uintptr(raw_data(data)) & uintptr(align-1) == 0)
align *= 2
virtual.arena_free_all(&a)
}
align = 4
for _ in 0..<32 {
data, err := virtual.arena_alloc(&a, 1048576, align)
testing.expect_value(t, err, nil)
testing.expect(t, len(data) == 1048576)
testing.expect(t, uintptr(raw_data(data)) & uintptr(align-1) == 0)
}
}
@(test)
tlsf_test_overlap_and_zero :: proc(t: ^testing.T) {
default_allocator := context.allocator