diff options
| author | Tilka <tilkax@gmail.com> | 2017-06-22 20:47:36 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-06-22 20:47:36 +0100 |
| commit | 4e39a42e6bcbdb97820aabde88124436fb6b5979 (patch) | |
| tree | f3cb1cae081cff81327b0bc20655505f6c17bff7 /Source/UnitTests | |
| parent | e30484e8a7895a2a26f7e4e609c44c5b0d1c6331 (diff) | |
| parent | 56158ca176eee120f29375a286182b5dd3d7fa60 (diff) | |
Merge pull request #5662 from blubberdiblub/improve_mmu_mask_checks
Improve MMU mask checks
Diffstat (limited to 'Source/UnitTests')
| -rw-r--r-- | Source/UnitTests/Common/BitUtilsTest.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Source/UnitTests/Common/BitUtilsTest.cpp b/Source/UnitTests/Common/BitUtilsTest.cpp index 987868e6e4..75f7adf50e 100644 --- a/Source/UnitTests/Common/BitUtilsTest.cpp +++ b/Source/UnitTests/Common/BitUtilsTest.cpp @@ -57,3 +57,35 @@ TEST(BitUtils, ExtractBits) // Ensure bit extraction with type overriding works as expected EXPECT_EQ((Common::ExtractBits<0, 31, s32, s32>(negative_one)), -1); } + +TEST(BitUtils, IsValidLowMask) +{ + EXPECT_TRUE(Common::IsValidLowMask(0b0u)); + EXPECT_TRUE(Common::IsValidLowMask(0b1u)); + EXPECT_FALSE(Common::IsValidLowMask(0b10u)); + EXPECT_TRUE(Common::IsValidLowMask(0b11u)); + EXPECT_FALSE(Common::IsValidLowMask(0b1110u)); + EXPECT_TRUE(Common::IsValidLowMask(0b1111u)); + EXPECT_FALSE(Common::IsValidLowMask(0b10000u)); + EXPECT_FALSE(Common::IsValidLowMask(0b101111u)); + + EXPECT_TRUE(Common::IsValidLowMask((u8)~0b0)); + EXPECT_FALSE(Common::IsValidLowMask((u8)(~0b0 - 1))); + EXPECT_FALSE(Common::IsValidLowMask((u8)~(0b10000))); + EXPECT_FALSE(Common::IsValidLowMask((u8)(~((u8)(~0b0) >> 1) | 0b1111))); + + EXPECT_TRUE(Common::IsValidLowMask((u16)~0b0)); + EXPECT_FALSE(Common::IsValidLowMask((u16)(~0b0 - 1))); + EXPECT_FALSE(Common::IsValidLowMask((u16)~(0b10000))); + EXPECT_FALSE(Common::IsValidLowMask((u16)(~((u16)(~0b0) >> 1) | 0b1111))); + + EXPECT_TRUE(Common::IsValidLowMask((u32)~0b0)); + EXPECT_FALSE(Common::IsValidLowMask((u32)(~0b0 - 1))); + EXPECT_FALSE(Common::IsValidLowMask((u32)~(0b10000))); + EXPECT_FALSE(Common::IsValidLowMask((u32)(~((u32)(~0b0) >> 1) | 0b1111))); + + EXPECT_TRUE(Common::IsValidLowMask((u64)~0b0)); + EXPECT_FALSE(Common::IsValidLowMask((u64)(~0b0 - 1))); + EXPECT_FALSE(Common::IsValidLowMask((u64)~(0b10000))); + EXPECT_FALSE(Common::IsValidLowMask((u64)(~((u64)(~0b0) >> 1) | 0b1111))); +} |
