Enhance the ut command to accept a comma-separated list of test suites to run. Report the summary information for these at the end.
Signed-off-by: Simon Glass <s...@chromium.org> --- Changes in v2: - Use strsep() instead, in case tests use strtok() test/cmd_ut.c | 32 ++++++++++++++++++++------------ test/py/tests/test_suite.py | 5 +++++ test/test-main.c | 2 +- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/test/cmd_ut.c b/test/cmd_ut.c index b44e60d5a87..3925a391de1 100644 --- a/test/cmd_ut.c +++ b/test/cmd_ut.c @@ -218,7 +218,6 @@ static int do_ut_all(struct unit_test_state *uts, struct cmd_tbl *cmdtp, update_stats(uts, ste); } } - ut_report(&uts->total, uts->run_count); return any_fail; } @@ -282,7 +281,7 @@ static int do_ut(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { struct unit_test_state uts; struct suite *ste; - const char *name; + char *name; int ret; if (argc < 2) @@ -299,17 +298,26 @@ static int do_ut(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) } else if (!strcmp(name, "info")) { ret = do_ut_info(cmdtp, flag, argc, argv); } else { - ste = find_suite(argv[0]); - if (!ste) { - printf("Suite '%s' not found\n", argv[0]); - return CMD_RET_FAILURE; - } else if (!has_tests(ste)) { - /* perhaps a Kconfig option needs to be set? */ - printf("Suite '%s' is not enabled\n", argv[0]); - return CMD_RET_FAILURE; - } + int any_fail = 0; + const char *p; + + for (; p = strsep(&name, ","), p; name = NULL) { + ste = find_suite(p); + if (!ste) { + printf("Suite '%s' not found\n", p); + return CMD_RET_FAILURE; + } else if (!has_tests(ste)) { + /* perhaps a Kconfig option needs to be set? */ + printf("Suite '%s' is not enabled\n", p); + return CMD_RET_FAILURE; + } - ret = run_suite(&uts, ste, cmdtp, flag, argc, argv); + ret = run_suite(&uts, ste, cmdtp, flag, argc, argv); + if (!any_fail) + any_fail = ret; + update_stats(&uts, ste); + } + ret = any_fail; } show_stats(&uts); if (ret) diff --git a/test/py/tests/test_suite.py b/test/py/tests/test_suite.py index 1e02d67efe2..d0025a7ba30 100644 --- a/test/py/tests/test_suite.py +++ b/test/py/tests/test_suite.py @@ -187,3 +187,8 @@ def xtest_suite(u_boot_console, u_boot_config): assert suite_count == len(EXPECTED_SUITES) assert total_test_count == len(all_tests) + + # Run three suites + with cons.log.section('Check multiple suites'): + output = cons.run_command('ut bloblist,setexpr,mem') + assert 'Suites run: 3' in output diff --git a/test/test-main.c b/test/test-main.c index ee855bfe2ed..cabc736a524 100644 --- a/test/test-main.c +++ b/test/test-main.c @@ -683,7 +683,7 @@ static int ut_run_tests(struct unit_test_state *uts, const char *prefix, void ut_report(struct ut_stats *stats, int run_count) { if (run_count > 1) - printf("Total tests"); + printf("Suites run: %d, total tests", run_count); else printf("Tests"); printf(" run: %d, ", stats->test_count); -- 2.43.0