diff options
Diffstat (limited to 'core/fxcrt/fx_memory_unittest.cpp')
-rw-r--r-- | core/fxcrt/fx_memory_unittest.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/core/fxcrt/fx_memory_unittest.cpp b/core/fxcrt/fx_memory_unittest.cpp index 8c577835d6..eab11113cd 100644 --- a/core/fxcrt/fx_memory_unittest.cpp +++ b/core/fxcrt/fx_memory_unittest.cpp @@ -83,3 +83,26 @@ TEST(fxcrt, DISABLED_FXMEM_DefaultOOM) { EXPECT_FALSE(FXMEM_DefaultRealloc(ptr, kMaxByteAlloc)); FXMEM_DefaultFree(ptr); } + +TEST(fxcrt, FXAlign) { + static_assert(std::numeric_limits<size_t>::max() % 2 == 1, + "numeric limit must be odd for this test"); + + size_t s0 = 0; + size_t s1 = 1; + size_t s2 = 2; + size_t sbig = std::numeric_limits<size_t>::max() - 2; + EXPECT_EQ(0u, FxAlignToBoundary<2>(s0)); + EXPECT_EQ(2u, FxAlignToBoundary<2>(s1)); + EXPECT_EQ(2u, FxAlignToBoundary<2>(s2)); + EXPECT_EQ(std::numeric_limits<size_t>::max() - 1, FxAlignToBoundary<2>(sbig)); + + int i0 = 0; + int i511 = 511; + int i512 = 512; + int ineg = -513; + EXPECT_EQ(0, FxAlignToBoundary<512>(i0)); + EXPECT_EQ(512, FxAlignToBoundary<512>(i511)); + EXPECT_EQ(512, FxAlignToBoundary<512>(i512)); + EXPECT_EQ(-512, FxAlignToBoundary<512>(ineg)); +} |