aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/lfalloc/alloc_profiler/align_ut.cpp
blob: 1b62fe73b76c4d194d5ed1c3d79e359ce60ef0ab (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <library/cpp/testing/unittest/registar.h> 
 
#include <util/generic/scope.h> 
 
Y_UNIT_TEST_SUITE(MemAlign) { 
    Y_UNIT_TEST(ShouldAlign) 
    { 
        for (ui64 size = 8; size <= 32 * 1024; size *= 8) { 
            for (ui64 align = 8; align <= 4096; align *=2) { 
                void* ptr = nullptr; 
 
                int res = posix_memalign(&ptr, align, size); 
                UNIT_ASSERT_C(res == 0 && ptr != nullptr, "memalign failed"); 
 
                Y_DEFER { 
                    free(ptr); 
                }; 
 
                UNIT_ASSERT_C((uintptr_t)ptr % align == 0, "non aligned memory"); 
            } 
        } 
    } 
}