From 54ea23da510328c1eabd5604b3e9d1f29ebdc8c8 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Wed, 12 May 2021 19:47:14 +0200 Subject: [PATCH] util/tests: add set bit range test This simple test validates that it is possible to set bits across word bounary. Signed-off-by: Christian Gmeiner Reviewed-by: Rob Clark Part-of: --- src/util/bitset_test.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/util/bitset_test.cpp b/src/util/bitset_test.cpp index 608251ec479..9fb9daa1538 100644 --- a/src/util/bitset_test.cpp +++ b/src/util/bitset_test.cpp @@ -381,3 +381,23 @@ TEST(bitset, test_shl_two_words) EXPECT_EQ(BITSET_TEST_RANGE(r, 0, 31), false); EXPECT_EQ(BITSET_TEST_RANGE(r, 32, 63), true); } + +TEST(bitset, test_setrange_across_word_boundary) +{ + BITSET_DECLARE(r, 128); + BITSET_ZERO(r); + + BITSET_SET_RANGE(r, 62, 65); + + EXPECT_EQ(BITSET_TEST_RANGE(r, 0, 31), false); + EXPECT_EQ(BITSET_TEST_RANGE(r, 32, 63), true); + EXPECT_EQ(BITSET_TEST_RANGE(r, 64, 95), true); + EXPECT_EQ(BITSET_TEST_RANGE(r, 96, 127), false); + + EXPECT_EQ(BITSET_TEST(r, 61), false); + + for (int i = 62; i <= 65; i++) + EXPECT_EQ(BITSET_TEST(r, i), true); + + EXPECT_EQ(BITSET_TEST(r, 66), false); +}