test: Allow showing basic information about tests
authorSimon Glass <sjg@chromium.org>
Sun, 30 Oct 2022 01:47:12 +0000 (19:47 -0600)
committerSimon Glass <sjg@chromium.org>
Mon, 7 Nov 2022 23:24:30 +0000 (16:24 -0700)
Add a 'ut info' command to show the number of suites and tests. This is
useful to get a feel for the scale of the tests.

Signed-off-by: Simon Glass <sjg@chromium.org>
doc/usage/cmd/ut.rst
test/cmd_ut.c

index 9f602ea..11c64a1 100644 (file)
@@ -100,3 +100,9 @@ Run just a single test in a suite::
     => ut bloblist bloblist_test_grow
     Test: bloblist_test_grow: bloblist.c
     Failures: 0
+
+Show information about tests::
+
+    => ut info
+    Test suites: 21
+    Total tests: 642
index 8333eac..76e37f3 100644 (file)
@@ -14,6 +14,9 @@
 static int do_ut_all(struct cmd_tbl *cmdtp, int flag, int argc,
                     char *const argv[]);
 
+static int do_ut_info(struct cmd_tbl *cmdtp, int flag, int argc,
+                     char *const argv[]);
+
 int cmd_ut_category(const char *name, const char *prefix,
                    struct unit_test *tests, int n_ents,
                    int argc, char *const argv[])
@@ -45,6 +48,7 @@ int cmd_ut_category(const char *name, const char *prefix,
 
 static struct cmd_tbl cmd_ut_sub[] = {
        U_BOOT_CMD_MKENT(all, CONFIG_SYS_MAXARGS, 1, do_ut_all, "", ""),
+       U_BOOT_CMD_MKENT(info, 1, 1, do_ut_info, "", ""),
 #ifdef CONFIG_BOOTSTD
        U_BOOT_CMD_MKENT(bootstd, CONFIG_SYS_MAXARGS, 1, do_ut_bootstd,
                         "", ""),
@@ -119,6 +123,15 @@ static int do_ut_all(struct cmd_tbl *cmdtp, int flag, int argc,
        return any_fail;
 }
 
+static int do_ut_info(struct cmd_tbl *cmdtp, int flag, int argc,
+                     char *const argv[])
+{
+       printf("Test suites: %d\n", (int)ARRAY_SIZE(cmd_ut_sub));
+       printf("Total tests: %d\n", (int)UNIT_TEST_ALL_COUNT());
+
+       return 0;
+}
+
 static int do_ut(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        struct cmd_tbl *cp;
@@ -145,8 +158,9 @@ static char ut_help_text[] =
        "   -f         Force 'manual' tests to run as well\n"
        "   <suite>    Test suite to run, or all\n"
        "\n"
-       "Suites:"
+       "\nOptions for <suite>:"
        "\nall - execute all enabled tests"
+       "\ninfo - show info about tests"
 #ifdef CONFIG_CMD_ADDRMAP
        "\naddrmap - very basic test of addrmap command"
 #endif