mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-30 00:00:11 +01:00
add simple tests for memory allocator
This commit is contained in:
parent
25c7952cff
commit
dd738a6462
1 changed files with 30 additions and 0 deletions
|
@ -34,3 +34,33 @@ Theory((size_t len, size_t align, struct memtype *m), memory, aligned) {
|
|||
ret = memory_free(m, ptr, len);
|
||||
cr_assert_eq(ret, 0, "Failed to release memory: ret=%d, ptr=%p, len=%zu: %s", ret, ptr, len, strerror(errno));
|
||||
}
|
||||
|
||||
Test(memory, manager) {
|
||||
void *p = memory_alloc(&memtype_heap, 1<<10);
|
||||
struct memtype *manager = memtype_managed_init(p, 1<<10);
|
||||
|
||||
void *p1, *p2, *p3;
|
||||
p1 = memory_alloc(manager, 16);
|
||||
cr_assert(p1);
|
||||
|
||||
p2 = memory_alloc(manager, 32);
|
||||
cr_assert(p2);
|
||||
|
||||
cr_assert(memory_free(manager, p1, 16) == 0);
|
||||
|
||||
p1 = memory_alloc_aligned(manager, 128, 128);
|
||||
cr_assert(p1);
|
||||
cr_assert(IS_ALIGNED(p1, 128));
|
||||
|
||||
p3 = memory_alloc_aligned(manager, 128, 256);
|
||||
cr_assert(p3);
|
||||
cr_assert(IS_ALIGNED(p1, 256));
|
||||
|
||||
cr_assert(memory_free(manager, p2, 32) == 0);
|
||||
cr_assert(memory_free(manager, p1, 128) == 0);
|
||||
cr_assert(memory_free(manager, p3, 128) == 0);
|
||||
|
||||
p1 = memory_alloc(manager, (1<<10)-sizeof(struct memblock));
|
||||
cr_assert(p1);
|
||||
cr_assert(memory_free(manager, p1, (1<<10)-sizeof(struct memblock)) == 0);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue