test: unit: util: add BIT_MASK macros tests

Adding tests for BIT_MASK, BIT_MASK64, IS_BIT_MASK, and IS_BIT_MASK_SHIFTED

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>
This commit is contained in:
TOKITA Hiroshi 2023-01-07 06:36:43 +09:00 committed by Carles Cufí
commit 148d205c12
2 changed files with 123 additions and 0 deletions

View file

@ -126,6 +126,26 @@ ZTEST(util_cxx, test_ARRAY_INDEX_FLOOR)
run_ARRAY_INDEX_FLOOR();
}
ZTEST(util_cxx, test_BIT_MASK)
{
run_BIT_MASK();
}
ZTEST(util_cxx, test_BIT_MASK64)
{
run_BIT_MASK64();
}
ZTEST(util_cxx, test_IS_BIT_MASK)
{
run_IS_BIT_MASK();
}
ZTEST(util_cxx, test_IS_SHIFTED_BIT_MASK)
{
run_IS_SHIFTED_BIT_MASK();
}
ZTEST_SUITE(util_cxx, NULL, NULL, NULL, NULL, NULL);
#if __cplusplus
@ -244,4 +264,25 @@ ZTEST(util_cc, test_ARRAY_INDEX_FLOOR)
run_ARRAY_INDEX_FLOOR();
}
ZTEST(util_cc, test_BIT_MASK)
{
run_BIT_MASK();
}
ZTEST(util_cc, test_BIT_MASK64)
{
run_BIT_MASK64();
}
ZTEST(util_cc, test_IS_BIT_MASK)
{
run_IS_BIT_MASK();
}
ZTEST(util_cc, test_IS_SHIFTED_BIT_MASK)
{
run_IS_SHIFTED_BIT_MASK();
}
ZTEST_SUITE(util_cc, NULL, NULL, NULL, NULL, NULL);

View file

@ -526,3 +526,85 @@ void run_ARRAY_INDEX_FLOOR(void)
zassert_equal(array[ARRAY_INDEX_FLOOR(array, &alias[1])], 0);
}
void run_BIT_MASK(void)
{
uint32_t bitmask0 = BIT_MASK(0);
uint32_t bitmask1 = BIT_MASK(1);
uint32_t bitmask2 = BIT_MASK(2);
uint32_t bitmask31 = BIT_MASK(31);
zassert_equal(0x00000000UL, bitmask0);
zassert_equal(0x00000001UL, bitmask1);
zassert_equal(0x00000003UL, bitmask2);
zassert_equal(0x7ffffffFUL, bitmask31);
}
void run_BIT_MASK64(void)
{
uint64_t bitmask0 = BIT64_MASK(0);
uint64_t bitmask1 = BIT64_MASK(1);
uint64_t bitmask2 = BIT64_MASK(2);
uint64_t bitmask63 = BIT64_MASK(63);
zassert_equal(0x0000000000000000ULL, bitmask0);
zassert_equal(0x0000000000000001ULL, bitmask1);
zassert_equal(0x0000000000000003ULL, bitmask2);
zassert_equal(0x7fffffffffffffffULL, bitmask63);
}
void run_IS_BIT_MASK(void)
{
uint32_t zero32 = 0UL;
uint64_t zero64 = 0ULL;
uint32_t bitmask1 = 0x00000001UL;
uint32_t bitmask2 = 0x00000003UL;
uint32_t bitmask31 = 0x7fffffffUL;
uint32_t bitmask32 = 0xffffffffUL;
uint64_t bitmask63 = 0x7fffffffffffffffULL;
uint64_t bitmask64 = 0xffffffffffffffffULL;
uint32_t not_bitmask32 = 0xfffffffeUL;
uint64_t not_bitmask64 = 0xfffffffffffffffeULL;
zassert_true(IS_BIT_MASK(zero32));
zassert_true(IS_BIT_MASK(zero64));
zassert_true(IS_BIT_MASK(bitmask1));
zassert_true(IS_BIT_MASK(bitmask2));
zassert_true(IS_BIT_MASK(bitmask31));
zassert_true(IS_BIT_MASK(bitmask32));
zassert_true(IS_BIT_MASK(bitmask63));
zassert_true(IS_BIT_MASK(bitmask64));
zassert_false(IS_BIT_MASK(not_bitmask32));
zassert_false(IS_BIT_MASK(not_bitmask64));
zassert_true(IS_BIT_MASK(0));
zassert_true(IS_BIT_MASK(0x00000001UL));
zassert_true(IS_BIT_MASK(0x00000003UL));
zassert_true(IS_BIT_MASK(0x7fffffffUL));
zassert_true(IS_BIT_MASK(0xffffffffUL));
zassert_true(IS_BIT_MASK(0x7fffffffffffffffUL));
zassert_true(IS_BIT_MASK(0xffffffffffffffffUL));
zassert_false(IS_BIT_MASK(0xfffffffeUL));
zassert_false(IS_BIT_MASK(0xfffffffffffffffeULL));
zassert_false(IS_BIT_MASK(0x00000002UL));
zassert_false(IS_BIT_MASK(0x8000000000000000ULL));
}
void run_IS_SHIFTED_BIT_MASK(void)
{
uint32_t bitmask32_shift1 = 0xfffffffeUL;
uint32_t bitmask32_shift31 = 0x80000000UL;
uint64_t bitmask64_shift1 = 0xfffffffffffffffeULL;
uint64_t bitmask64_shift63 = 0x8000000000000000ULL;
zassert_true(IS_SHIFTED_BIT_MASK(bitmask32_shift1, 1));
zassert_true(IS_SHIFTED_BIT_MASK(bitmask32_shift31, 31));
zassert_true(IS_SHIFTED_BIT_MASK(bitmask64_shift1, 1));
zassert_true(IS_SHIFTED_BIT_MASK(bitmask64_shift63, 63));
zassert_true(IS_SHIFTED_BIT_MASK(0xfffffffeUL, 1));
zassert_true(IS_SHIFTED_BIT_MASK(0xfffffffffffffffeULL, 1));
zassert_true(IS_SHIFTED_BIT_MASK(0x80000000UL, 31));
zassert_true(IS_SHIFTED_BIT_MASK(0x8000000000000000ULL, 63));
}