| 20 | } |
| 21 | |
| 22 | static void testAlignment() noexcept { |
| 23 | INFO("Support::isAligned()"); |
| 24 | EXPECT_FALSE(Support::isAligned<size_t>(0xFFFF, 4u)); |
| 25 | EXPECT_TRUE(Support::isAligned<size_t>(0xFFF4, 4u)); |
| 26 | EXPECT_TRUE(Support::isAligned<size_t>(0xFFF8, 8u)); |
| 27 | EXPECT_TRUE(Support::isAligned<size_t>(0xFFF0, 16u)); |
| 28 | |
| 29 | INFO("Support::alignUp()"); |
| 30 | EXPECT_EQ(Support::alignUp<size_t>(0xFFFF, 4), 0x10000u); |
| 31 | EXPECT_EQ(Support::alignUp<size_t>(0xFFF4, 4), 0x0FFF4u); |
| 32 | EXPECT_EQ(Support::alignUp<size_t>(0xFFF8, 8), 0x0FFF8u); |
| 33 | EXPECT_EQ(Support::alignUp<size_t>(0xFFF0, 16), 0x0FFF0u); |
| 34 | EXPECT_EQ(Support::alignUp<size_t>(0xFFF0, 32), 0x10000u); |
| 35 | |
| 36 | INFO("Support::alignUpDiff()"); |
| 37 | EXPECT_EQ(Support::alignUpDiff<size_t>(0xFFFF, 4), 1u); |
| 38 | EXPECT_EQ(Support::alignUpDiff<size_t>(0xFFF4, 4), 0u); |
| 39 | EXPECT_EQ(Support::alignUpDiff<size_t>(0xFFF8, 8), 0u); |
| 40 | EXPECT_EQ(Support::alignUpDiff<size_t>(0xFFF0, 16), 0u); |
| 41 | EXPECT_EQ(Support::alignUpDiff<size_t>(0xFFF0, 32), 16u); |
| 42 | |
| 43 | INFO("Support::alignUpPowerOf2()"); |
| 44 | EXPECT_EQ(Support::alignUpPowerOf2<size_t>(0x0000), 0x00000u); |
| 45 | EXPECT_EQ(Support::alignUpPowerOf2<size_t>(0xFFFF), 0x10000u); |
| 46 | EXPECT_EQ(Support::alignUpPowerOf2<size_t>(0xF123), 0x10000u); |
| 47 | EXPECT_EQ(Support::alignUpPowerOf2<size_t>(0x0F00), 0x01000u); |
| 48 | EXPECT_EQ(Support::alignUpPowerOf2<size_t>(0x0100), 0x00100u); |
| 49 | EXPECT_EQ(Support::alignUpPowerOf2<size_t>(0x1001), 0x02000u); |
| 50 | } |
| 51 | |
| 52 | static void testBitUtils() noexcept { |
| 53 | uint32_t i; |