mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-02-05 15:23:03 +08:00
utest/msh: supports autocomplete of utest cases for utest_run (#10701)
* utest/msh: supports autocomplete of utest cases for utest_run * docs/utest: explanation of adding the automatic completion function for utest_run * fix[utest]: Improvement of annotation description * remove outdated code
This commit is contained in:
@@ -216,6 +216,13 @@ config RT_USING_UTEST
|
||||
default n
|
||||
help
|
||||
If enable this option, the test cases will be run automatically when board boot up.
|
||||
|
||||
if FINSH_USING_OPTION_COMPLETION
|
||||
config RT_UTEST_MAX_OPTIONS
|
||||
int "Maximum number of utest cases for auto-completion"
|
||||
default 64
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
config RT_USING_VAR_EXPORT
|
||||
|
||||
@@ -73,6 +73,34 @@ void utest_log_lv_set(rt_uint8_t lv)
|
||||
}
|
||||
}
|
||||
|
||||
static struct msh_cmd_opt utest_testcase_run_msh_options[RT_UTEST_MAX_OPTIONS];
|
||||
static void utest_build_options(void);
|
||||
static void utest_build_options(void)
|
||||
{
|
||||
rt_size_t i;
|
||||
rt_size_t option_index = 0;
|
||||
|
||||
if (tc_num >= RT_UTEST_MAX_OPTIONS - 1)
|
||||
{
|
||||
LOG_W("The current number of test cases is (%d). Please expand RT_UTEST_MAX_OPTIONS's size to at least (%d).", tc_num, tc_num + 1);
|
||||
}
|
||||
|
||||
rt_memset(utest_testcase_run_msh_options, 0, sizeof(utest_testcase_run_msh_options));
|
||||
|
||||
rt_size_t max_cases = (tc_num < RT_UTEST_MAX_OPTIONS - 1) ? tc_num : RT_UTEST_MAX_OPTIONS - 1;
|
||||
for (i = 0; i < max_cases; i++)
|
||||
{
|
||||
utest_testcase_run_msh_options[option_index].id = i + 1;
|
||||
utest_testcase_run_msh_options[option_index].name = tc_table[i].name;
|
||||
utest_testcase_run_msh_options[option_index].des = tc_table[i].name;
|
||||
option_index++;
|
||||
}
|
||||
|
||||
utest_testcase_run_msh_options[option_index].id = 0;
|
||||
utest_testcase_run_msh_options[option_index].name = RT_NULL;
|
||||
utest_testcase_run_msh_options[option_index].des = RT_NULL;
|
||||
}
|
||||
|
||||
int utest_init(void)
|
||||
{
|
||||
/* initialize the utest commands table.*/
|
||||
@@ -123,6 +151,9 @@ int utest_init(void)
|
||||
LOG_E("no memory, tc_fail_list init failed!");
|
||||
}
|
||||
}
|
||||
|
||||
utest_build_options();
|
||||
|
||||
return tc_num;
|
||||
}
|
||||
INIT_COMPONENT_EXPORT(utest_init);
|
||||
@@ -379,7 +410,7 @@ int utest_testcase_run(int argc, char** argv)
|
||||
|
||||
return RT_EOK;
|
||||
}
|
||||
MSH_CMD_EXPORT_ALIAS(utest_testcase_run, utest_run, utest_run [-thread or -help] [testcase name] [loop num]);
|
||||
MSH_CMD_EXPORT_ALIAS(utest_testcase_run, utest_run, utest_run [-thread or -help] [testcase name] [loop num], optenable);
|
||||
|
||||
utest_t utest_handle_get(void)
|
||||
{
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
@@ -290,7 +290,13 @@ As shown in the figure above, the log of the test case run is divided into four
|
||||
From the above flow chart you can get the following:
|
||||
|
||||
* The utest framework is a sequential execution of all **test units** in the *testcase* function
|
||||
* Assert of the previous UTEST_UNIT_RUN macro has occurred, and all subsequent UTEST_UNIT_RUN will skip execution.
|
||||
* Assert of the previous UTEST_UNIT_RUN macro has occurred, and all subsequent UTEST_UNIT_RUN will skip executio
|
||||
|
||||
## utest_run auto-completion Function
|
||||
|
||||
The utest_run tool now supports dynamic auto-completion for test case names. After entering the utest_run command in the terminal, users can press the TAB key to activate the auto-completion feature. The system will then dynamically match and suggest available test case names in real time.
|
||||
|
||||

|
||||
|
||||
# NOTE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user