From: Simon Glass Date: Mon, 20 Jan 2025 21:26:02 +0000 (-0700) Subject: test: Record and show the totals for all test runs X-Git-Tag: v2025.04-rc1~11^2~4 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d97c98095a11ca104a8ea7a560469ae7e2c2bd0;p=pandora-u-boot.git test: Record and show the totals for all test runs With 'ut all' multiple test suites are run. Add a way to collect totals and show them at the end. Signed-off-by: Simon Glass --- diff --git a/include/test/test.h b/include/test/test.h index f7087ab4eea..bac43c81d63 100644 --- a/include/test/test.h +++ b/include/test/test.h @@ -27,6 +27,8 @@ struct ut_stats { * struct unit_test_state - Entire state of test system * * @cur: Statistics for the current run + * @total: Statistics for all test runs + * @run_count: Number of times ut_run_list() has been called * @start: Store the starting mallinfo when doing leak test * @of_live: true to use livetree if available, false to use flattree * @of_root: Record of the livetree root node (used for setting up tests) @@ -48,6 +50,8 @@ struct ut_stats { */ struct unit_test_state { struct ut_stats cur; + struct ut_stats total; + int run_count; struct mallinfo start; struct device_node *of_root; bool of_live; diff --git a/test/cmd_ut.c b/test/cmd_ut.c index 80df954694f..0b8bfe603b9 100644 --- a/test/cmd_ut.c +++ b/test/cmd_ut.c @@ -206,6 +206,7 @@ static int do_ut_all(struct unit_test_state *uts, struct cmd_tbl *cmdtp, any_fail = retval; } } + ut_report(&uts->total, uts->run_count); return any_fail; } diff --git a/test/test-main.c b/test/test-main.c index d02ab791b5a..22b9b46d9cd 100644 --- a/test/test-main.c +++ b/test/test-main.c @@ -694,6 +694,8 @@ int ut_run_list(struct unit_test_state *uts, const char *category, bool has_dm_tests = false; int ret; + memset(&uts->cur, '\0', sizeof(struct ut_stats)); + if (!CONFIG_IS_ENABLED(OF_PLATDATA) && ut_list_has_dm_tests(tests, count, prefix, select_name)) { has_dm_tests = true; @@ -734,5 +736,10 @@ int ut_run_list(struct unit_test_state *uts, const char *category, if (ret == -ENOENT) printf("Test '%s' not found\n", select_name); + uts->total.skip_count += uts->cur.skip_count; + uts->total.fail_count += uts->cur.fail_count; + uts->total.test_count += uts->cur.test_count; + uts->run_count++; + return ret; }