1
0
Fork 0
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:
Georg Reinke 2017-03-28 12:06:10 +02:00
parent 25c7952cff
commit dd738a6462

View file

@ -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);
}