mirror of
				https://github.com/riscv-software-src/opensbi
				synced 2025-11-04 05:50:22 +00:00 
			
		
		
		
	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>
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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);
 |