From 9a2583122cfcf4c4f5c729ca715d9753f0a9ee13 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Wed, 25 Jul 2018 09:45:39 +0300 Subject: [PATCH] heap/tests: make IRAM allocation size divisible by 4 heap_caps_malloc will fail to poison a block in IRAM with size not divisible by 4. The proper fix will be to make poisoning code smarter, or to disallow allocations from IRAM with size not aligned by 4. --- components/heap/test/test_malloc_caps.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/heap/test/test_malloc_caps.c b/components/heap/test/test_malloc_caps.c index f1db712b7..950f18455 100644 --- a/components/heap/test/test_malloc_caps.c +++ b/components/heap/test/test_malloc_caps.c @@ -43,7 +43,7 @@ TEST_CASE("Capabilities allocator test", "[heap]") //the following gives size of IRAM-only (not D/IRAM) memory. size_t free_iram = heap_caps_get_free_size(MALLOC_CAP_INTERNAL) - heap_caps_get_free_size(MALLOC_CAP_8BIT | MALLOC_CAP_INTERNAL); - size_t alloc32 = MIN(free_iram / 2, 10*1024); + size_t alloc32 = MIN(free_iram / 2, 10*1024) & (~3); printf("Freeing; allocating %u bytes of 32K-capable RAM\n", alloc32); m1 = heap_caps_malloc(alloc32, MALLOC_CAP_32BIT); printf("--> %p\n", m1);