utest: core: move perf testcase from example to src

Also:

- Add "RT_" prefix for the UTEST config options.
- Follow the naming rules to update the case name.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
This commit is contained in:
Chen Wang
2025-10-11 16:07:08 +08:00
committed by R b b666
parent 66448d9e96
commit 7499790140
14 changed files with 34 additions and 42 deletions

View File

@@ -14,7 +14,6 @@ rsource "examples/utest/testcases/drivers/ipc/Kconfig"
rsource "examples/utest/testcases/posix/Kconfig"
rsource "examples/utest/testcases/mm/Kconfig"
rsource "examples/utest/testcases/tmpfs/Kconfig"
rsource "examples/utest/testcases/perf/Kconfig"
rsource "src/klibc/utest/Kconfig"

View File

@@ -1,24 +0,0 @@
menu "SyStem Performance Testcase"
config UTEST_SYS_PERF_TC
bool "SyStem Performance test"
default n
config UTEST_SYS_PERF_TC_COUNT
int "Test the number of cycles"
default 1000
depends on UTEST_SYS_PERF_TC
config UTEST_HWTIMER_DEV_NAME
string "Hardware timer device name"
default "timer0"
depends on RT_USING_HWTIMER && UTEST_SYS_PERF_TC
help
Specify the hardware timer device name used for context switch testing (e.g., timer0).
config UTEST_SYS_IRQ_LATENCY
bool "SyStem IRQ LATENCY test"
default n
depends on RT_USING_HWTIMER && UTEST_SYS_PERF_TC
endmenu

View File

@@ -84,6 +84,8 @@ config UTEST_MEMPOOL_TC
default n
depends on RT_USING_MEMPOOL
rsource "perf/Kconfig"
if RT_USING_SMP
rsource "smp/Kconfig"
endif

15
src/utest/perf/Kconfig Normal file
View File

@@ -0,0 +1,15 @@
config RT_UTEST_SYS_PERF
bool "Performance Test"
default n
config RT_UTEST_SYS_PERF_TC_COUNT
int "PerfTest: Number of cycles"
default 1000
depends on RT_UTEST_SYS_PERF
config RT_UTEST_HWTIMER_DEV_NAME
string "PerfTest: Hardware timer device name"
default "timer0"
depends on RT_USING_HWTIMER && RT_UTEST_SYS_PERF
help
Specify the hardware timer device name used for context switch testing (e.g., timer0).

View File

@@ -5,6 +5,6 @@ cwd = GetCurrentDir()
src = Glob('*.c')
CPPPATH = [cwd]
group = DefineGroup('utestcases', src, depend = ['UTEST_SYS_PERF_TC'], CPPPATH = CPPPATH)
group = DefineGroup('utestcases', src, depend = ['RT_UTEST_SYS_PERF'], CPPPATH = CPPPATH)
Return('group')

View File

@@ -37,7 +37,7 @@ static void perf_thread_event2(void *parameter)
{
rt_perf_t *perf = (rt_perf_t *)parameter;
for (rt_uint32_t i = 0; i < UTEST_SYS_PERF_TC_COUNT; i++)
for (rt_uint32_t i = 0; i < RT_UTEST_SYS_PERF_TC_COUNT; i++)
{
perf->tmp_time = 0;
rt_perf_start(perf);

View File

@@ -28,7 +28,7 @@ static void modify_time(rt_perf_t *perf)
static rt_err_t timer_callback(rt_device_t dev, rt_size_t size)
{
rt_perf_stop(perf_local);
if (perf_local->count >= UTEST_SYS_PERF_TC_COUNT)
if (perf_local->count >= RT_UTEST_SYS_PERF_TC_COUNT)
{
rt_sem_release(complete_sem);
return RT_EOK;
@@ -48,11 +48,11 @@ rt_err_t rt_perf_irq_latency(rt_perf_t *perf)
rt_hwtimer_mode_t mode = HWTIMER_MODE_PERIOD;
perf_local = perf;
hw_dev = rt_device_find(UTEST_HWTIMER_DEV_NAME);
hw_dev = rt_device_find(RT_UTEST_HWTIMER_DEV_NAME);
if (hw_dev == RT_NULL)
{
ret = RT_ERROR;
LOG_E("hwtimer sample run failed! can't find %s device!", UTEST_HWTIMER_DEV_NAME);
LOG_E("hwtimer sample run failed! can't find %s device!", RT_UTEST_HWTIMER_DEV_NAME);
return ret;
}

View File

@@ -167,17 +167,17 @@ static rt_err_t utest_tc_init(void)
{
int ret = RT_EOK;
hw_dev = rt_device_find(UTEST_HWTIMER_DEV_NAME);
hw_dev = rt_device_find(RT_UTEST_HWTIMER_DEV_NAME);
if (hw_dev == RT_NULL)
{
ret = RT_ERROR;
LOG_E("hwtimer sample run failed! can't find %s device!", UTEST_HWTIMER_DEV_NAME);
LOG_E("hwtimer sample run failed! can't find %s device!", RT_UTEST_HWTIMER_DEV_NAME);
return ret;
}
ret = rt_device_open(hw_dev, RT_DEVICE_OFLAG_RDWR);
if (ret != RT_EOK)
{
LOG_E("open %s device failed!", UTEST_HWTIMER_DEV_NAME);
LOG_E("open %s device failed!", RT_UTEST_HWTIMER_DEV_NAME);
return ret;
}
@@ -198,5 +198,5 @@ static void testcase(void)
UTEST_UNIT_RUN(rt_perf_all_test);
}
UTEST_TC_EXPORT(testcase, "testcase.pref.all", utest_tc_init, utest_tc_cleanup, 10);
UTEST_TC_EXPORT(testcase, "core.pref_test", utest_tc_init, utest_tc_cleanup, 10);

View File

@@ -38,7 +38,7 @@ static void perf_thread_event1(void *parameter)
return;
}
if (perf->count >= UTEST_SYS_PERF_TC_COUNT)
if (perf->count >= RT_UTEST_SYS_PERF_TC_COUNT)
{
rt_event_delete(perf_thread_event);
rt_sem_delete(sem1);
@@ -53,7 +53,7 @@ static void perf_thread_event2(void *parameter)
rt_perf_t *perf = (rt_perf_t *)parameter;
while (1)
{
if (perf->count >= UTEST_SYS_PERF_TC_COUNT)
if (perf->count >= RT_UTEST_SYS_PERF_TC_COUNT)
{
rt_sem_release(complete_sem);
return;

View File

@@ -35,7 +35,7 @@ static void perf_thread_mbox1(void *parameter)
return;
}
if (perf->count >= UTEST_SYS_PERF_TC_COUNT)
if (perf->count >= RT_UTEST_SYS_PERF_TC_COUNT)
{
rt_mb_delete(perf_thread_mbox);
rt_sem_delete(sem1);
@@ -51,7 +51,7 @@ static void perf_thread_mbox2(void *parameter)
rt_err_t ret = RT_EOK;
while (1)
{
if (perf->count >= UTEST_SYS_PERF_TC_COUNT)
if (perf->count >= RT_UTEST_SYS_PERF_TC_COUNT)
{
rt_sem_release(complete_sem);
return;

View File

@@ -34,7 +34,7 @@ static void perf_thread_mq1(void *parameter)
return;
}
if (perf->count >= UTEST_SYS_PERF_TC_COUNT)
if (perf->count >= RT_UTEST_SYS_PERF_TC_COUNT)
{
rt_mq_delete(perf_thread_mq);
rt_sem_delete(sem1);
@@ -50,7 +50,7 @@ static void perf_thread_mq2(void *parameter)
char send = 'A';
while (1)
{
if (perf->count >= UTEST_SYS_PERF_TC_COUNT)
if (perf->count >= RT_UTEST_SYS_PERF_TC_COUNT)
{
rt_sem_release(complete_sem);
return;

View File

@@ -36,7 +36,7 @@ static void perf_thread_sem1(void *parameter)
return;
}
if (perf->count >= UTEST_SYS_PERF_TC_COUNT)
if (perf->count >= RT_UTEST_SYS_PERF_TC_COUNT)
{
rt_event_delete(perf_thread_event);
rt_sem_delete(perf_thread_sem);
@@ -53,7 +53,7 @@ static void perf_thread_sem2(void *parameter)
rt_uint32_t recv = 0;
while (1)
{
if (perf->count >= UTEST_SYS_PERF_TC_COUNT)
if (perf->count >= RT_UTEST_SYS_PERF_TC_COUNT)
{
rt_sem_release(complete_sem);
return;