forked from Mirrors/opensbi
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>
This commit is contained in:

committed by
Anup Patel

parent
c5c1d04346
commit
b7e7e66026
@@ -12,3 +12,6 @@ libsbi-objs-$(CONFIG_SBIUNIT) += tests/riscv_atomic_test.o
|
||||
|
||||
carray-sbi_unit_tests-$(CONFIG_SBIUNIT) += locks_test_suite
|
||||
libsbi-objs-$(CONFIG_SBIUNIT) += tests/riscv_locks_test.o
|
||||
|
||||
carray-sbi_unit_tests-$(CONFIG_SBIUNIT) += math_test_suite
|
||||
libsbi-objs-$(CONFIG_SBIUNIT) += tests/sbi_math_test.o
|
46
lib/sbi/tests/sbi_math_test.c
Normal file
46
lib/sbi/tests/sbi_math_test.c
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* 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);
|
Reference in New Issue
Block a user