From 74997901401df476d4b73b34ea3de945916a904f Mon Sep 17 00:00:00 2001 From: Chen Wang Date: Sat, 11 Oct 2025 16:07:08 +0800 Subject: [PATCH] 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 --- Kconfig.utestcases | 1 - examples/utest/testcases/perf/Kconfig | 24 ------------------- src/utest/Kconfig | 2 ++ src/utest/perf/Kconfig | 15 ++++++++++++ .../testcases => src/utest}/perf/README.md | 0 .../testcases => src/utest}/perf/SConscript | 2 +- .../utest}/perf/context_switch_tc.c | 2 +- .../utest}/perf/irq_latency_tc.c | 6 ++--- .../testcases => src/utest}/perf/perf_tc.c | 8 +++---- .../testcases => src/utest}/perf/perf_tc.h | 0 .../utest}/perf/thread_event_tc.c | 4 ++-- .../utest}/perf/thread_mbox_tc.c | 4 ++-- .../utest}/perf/thread_mq_tc.c | 4 ++-- .../utest}/perf/thread_sem_tc.c | 4 ++-- 14 files changed, 34 insertions(+), 42 deletions(-) delete mode 100644 examples/utest/testcases/perf/Kconfig create mode 100644 src/utest/perf/Kconfig rename {examples/utest/testcases => src/utest}/perf/README.md (100%) rename {examples/utest/testcases => src/utest}/perf/SConscript (58%) rename {examples/utest/testcases => src/utest}/perf/context_switch_tc.c (97%) rename {examples/utest/testcases => src/utest}/perf/irq_latency_tc.c (93%) rename {examples/utest/testcases => src/utest}/perf/perf_tc.c (95%) rename {examples/utest/testcases => src/utest}/perf/perf_tc.h (100%) rename {examples/utest/testcases => src/utest}/perf/thread_event_tc.c (96%) rename {examples/utest/testcases => src/utest}/perf/thread_mbox_tc.c (96%) rename {examples/utest/testcases => src/utest}/perf/thread_mq_tc.c (96%) rename {examples/utest/testcases => src/utest}/perf/thread_sem_tc.c (96%) diff --git a/Kconfig.utestcases b/Kconfig.utestcases index 2221228b4b..29980bed84 100644 --- a/Kconfig.utestcases +++ b/Kconfig.utestcases @@ -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" diff --git a/examples/utest/testcases/perf/Kconfig b/examples/utest/testcases/perf/Kconfig deleted file mode 100644 index e25b919df2..0000000000 --- a/examples/utest/testcases/perf/Kconfig +++ /dev/null @@ -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 diff --git a/src/utest/Kconfig b/src/utest/Kconfig index 58f275bc2a..c9580f099f 100644 --- a/src/utest/Kconfig +++ b/src/utest/Kconfig @@ -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 diff --git a/src/utest/perf/Kconfig b/src/utest/perf/Kconfig new file mode 100644 index 0000000000..fe6ee640ce --- /dev/null +++ b/src/utest/perf/Kconfig @@ -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). diff --git a/examples/utest/testcases/perf/README.md b/src/utest/perf/README.md similarity index 100% rename from examples/utest/testcases/perf/README.md rename to src/utest/perf/README.md diff --git a/examples/utest/testcases/perf/SConscript b/src/utest/perf/SConscript similarity index 58% rename from examples/utest/testcases/perf/SConscript rename to src/utest/perf/SConscript index c1ac0cff98..22b74b9b5d 100644 --- a/examples/utest/testcases/perf/SConscript +++ b/src/utest/perf/SConscript @@ -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') diff --git a/examples/utest/testcases/perf/context_switch_tc.c b/src/utest/perf/context_switch_tc.c similarity index 97% rename from examples/utest/testcases/perf/context_switch_tc.c rename to src/utest/perf/context_switch_tc.c index 074447303f..ee42bc554c 100644 --- a/examples/utest/testcases/perf/context_switch_tc.c +++ b/src/utest/perf/context_switch_tc.c @@ -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); diff --git a/examples/utest/testcases/perf/irq_latency_tc.c b/src/utest/perf/irq_latency_tc.c similarity index 93% rename from examples/utest/testcases/perf/irq_latency_tc.c rename to src/utest/perf/irq_latency_tc.c index 20d2c2d01a..785151fc66 100644 --- a/examples/utest/testcases/perf/irq_latency_tc.c +++ b/src/utest/perf/irq_latency_tc.c @@ -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; } diff --git a/examples/utest/testcases/perf/perf_tc.c b/src/utest/perf/perf_tc.c similarity index 95% rename from examples/utest/testcases/perf/perf_tc.c rename to src/utest/perf/perf_tc.c index 489624e5c7..56b3b8dfa6 100644 --- a/examples/utest/testcases/perf/perf_tc.c +++ b/src/utest/perf/perf_tc.c @@ -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); diff --git a/examples/utest/testcases/perf/perf_tc.h b/src/utest/perf/perf_tc.h similarity index 100% rename from examples/utest/testcases/perf/perf_tc.h rename to src/utest/perf/perf_tc.h diff --git a/examples/utest/testcases/perf/thread_event_tc.c b/src/utest/perf/thread_event_tc.c similarity index 96% rename from examples/utest/testcases/perf/thread_event_tc.c rename to src/utest/perf/thread_event_tc.c index bff7bd919c..2d9b0ef932 100644 --- a/examples/utest/testcases/perf/thread_event_tc.c +++ b/src/utest/perf/thread_event_tc.c @@ -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; diff --git a/examples/utest/testcases/perf/thread_mbox_tc.c b/src/utest/perf/thread_mbox_tc.c similarity index 96% rename from examples/utest/testcases/perf/thread_mbox_tc.c rename to src/utest/perf/thread_mbox_tc.c index 4ea58bce2e..f07dab21d4 100644 --- a/examples/utest/testcases/perf/thread_mbox_tc.c +++ b/src/utest/perf/thread_mbox_tc.c @@ -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; diff --git a/examples/utest/testcases/perf/thread_mq_tc.c b/src/utest/perf/thread_mq_tc.c similarity index 96% rename from examples/utest/testcases/perf/thread_mq_tc.c rename to src/utest/perf/thread_mq_tc.c index 6258ee72bc..df4ac1ca2b 100644 --- a/examples/utest/testcases/perf/thread_mq_tc.c +++ b/src/utest/perf/thread_mq_tc.c @@ -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; diff --git a/examples/utest/testcases/perf/thread_sem_tc.c b/src/utest/perf/thread_sem_tc.c similarity index 96% rename from examples/utest/testcases/perf/thread_sem_tc.c rename to src/utest/perf/thread_sem_tc.c index c120631be0..e05430c257 100644 --- a/examples/utest/testcases/perf/thread_sem_tc.c +++ b/src/utest/perf/thread_sem_tc.c @@ -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;