summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChen Wang <[email protected]>2025-06-10 17:42:01 +0800
committerRbb666 <[email protected]>2025-06-10 19:22:25 +0800
commit01ca3911ecc34548e45dd3a5f2f04ecbc10582b1 (patch)
treee9a485700383a007d1d0dc03f6ca7b6618a78cee
parentcec2dbd7e9fdd7e8e17377d7839e05d48231bc2c (diff)
componnets: utest: fix case-name matching problem
There is a problem with the matching of case names in the original code. Due to original code use memcmp with len, if the input case name and the existing case name have an inclusion relationship, for example, if the actual case name is "gpip_irq", and run `utest_run gpio` will also match successfully, but it's not expected. Modify the logic of exact matching and use strcmp instead. Keep the original wildcard logic, that is, `utest_run gpio*` can match both "gpio_irq" and "gpio". Signed-off-by: Chen Wang <[email protected]>
-rw-r--r--components/utilities/utest/utest.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/components/utilities/utest/utest.c b/components/utilities/utest/utest.c
index 5cb10e1af1..3d44a8b16a 100644
--- a/components/utilities/utest/utest.c
+++ b/components/utilities/utest/utest.c
@@ -217,8 +217,13 @@ static void utest_do_run(const char *utest_name)
if (utest_name[len - 1] == '*')
{
len -= 1;
+ if (rt_memcmp(tc_table[i].name, utest_name, len) != 0)
+ {
+ i++;
+ continue;
+ }
}
- if (rt_memcmp(tc_table[i].name, utest_name, len) != 0)
+ else if (rt_strcmp(tc_table[i].name, utest_name) != 0)
{
i++;
continue;