Files
opensbi/lib/sbi/tests/sbi_math_test.c
Dongdong Zhang b7e7e66026 lib: tests: add math test suite
This patch introduces a new math test suite to the SBI unit
tests. The changes include:

* Updating lib/sbi/tests/objects.mk to include
  math_test_suite and sbi_math_test.o.
* Adding a new file lib/sbi/tests/sbi_math_test.c which
  contains tests for log2roundup function using various cases.

The addition of this test suite ensures that mathematical
functions are verified and work as expected.

Signed-off-by: Dongdong Zhang <zhangdongdong@eswincomputing.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
2024-07-23 10:17:51 +05:30

47 lines
1.0 KiB
C

/*
* SPDX-License-Identifier: BSD-2-Clause
*
* Copyright 2024 Beijing ESWIN Computing Technology Co., Ltd.
*
* Author: Dongdong Zhang <zhangdongdong@eswincomputing.com>
*/
#include <sbi/sbi_math.h>
#include <sbi/sbi_unit_test.h>
static void log2roundup_test(struct sbiunit_test_case *test)
{
struct {
unsigned long input;
unsigned long expected;
} cases[] = {
{1, 0},
{2, 1},
{3, 2},
{4, 2},
{5, 3},
{8, 3},
{9, 4},
{15, 4},
{16, 4},
{17, 5},
{31, 5},
{32, 5},
{33, 6},
{63, 6},
{64, 6},
{65, 7},
};
for (int i = 0; i < sizeof(cases)/sizeof(cases[0]); i++) {
unsigned long result = log2roundup(cases[i].input);
SBIUNIT_EXPECT_EQ(test, result, cases[i].expected);
}
}
static struct sbiunit_test_case math_test_cases[] = {
SBIUNIT_TEST_CASE(log2roundup_test),
SBIUNIT_END_CASE,
};
SBIUNIT_TEST_SUITE(math_test_suite, math_test_cases);