test: Avoid assuming sandbox board for bloblist test
authorSimon Glass <sjg@chromium.org>
Mon, 9 Nov 2020 04:08:43 +0000 (21:08 -0700)
committerTom Rini <trini@konsulko.com>
Sat, 16 Jan 2021 19:49:09 +0000 (14:49 -0500)
This tests assumes it is running on sandbox. Add a few functions to handle
silencing the console on any board and use those instead.

Reported-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
include/test/ut.h
test/bloblist.c
test/ut.c

index 3f2ee75..17400c7 100644 (file)
@@ -338,4 +338,22 @@ ulong ut_check_free(void);
  */
 long ut_check_delta(ulong last);
 
+/**
+ * ut_silence_console() - Silence the console if requested by the user
+ *
+ * This stops test output from appear on the console. It is the default on
+ * sandbox, unless the -v flag is given. For other boards, this does nothing.
+ *
+ * @uts: Test state (in case in future we want to keep state here)
+ */
+void ut_silence_console(struct unit_test_state *uts);
+
+/**
+ * ut_unsilence_console() - Unsilence the console after a test
+ *
+ * This restarts console output again and turns off console recording. This
+ * happens on all boards, including sandbox.
+ */
+void ut_unsilence_console(struct unit_test_state *uts);
+
 #endif
index 0bb9e2d..900299d 100644 (file)
@@ -7,7 +7,6 @@
 #include <bloblist.h>
 #include <log.h>
 #include <mapmem.h>
-#include <asm/state.h>
 #include <test/suites.h>
 #include <test/test.h>
 #include <test/ut.h>
@@ -240,7 +239,6 @@ BLOBLIST_TEST(bloblist_test_checksum, 0);
 /* Test the 'bloblist info' command */
 static int bloblist_test_cmd_info(struct unit_test_state *uts)
 {
-       struct sandbox_state *state = state_get_current();
        struct bloblist_hdr *hdr;
        char *data, *data2;
 
@@ -250,8 +248,7 @@ static int bloblist_test_cmd_info(struct unit_test_state *uts)
        data2 = bloblist_ensure(TEST_TAG2, TEST_SIZE2);
 
        console_record_reset_enable();
-       if (!state->show_test_output)
-               gd->flags |= GD_FLG_SILENT;
+       ut_silence_console(uts);
        console_record_reset();
        run_command("bloblist info", 0);
        ut_assert_nextline("base:     %lx", (ulong)map_to_sysmem(hdr));
@@ -259,7 +256,7 @@ static int bloblist_test_cmd_info(struct unit_test_state *uts)
        ut_assert_nextline("alloced:  70     112 Bytes");
        ut_assert_nextline("free:     390    912 Bytes");
        ut_assert_console_end();
-       gd->flags &= ~(GD_FLG_SILENT | GD_FLG_RECORD);
+       ut_unsilence_console(uts);
 
        return 0;
 }
@@ -268,7 +265,6 @@ BLOBLIST_TEST(bloblist_test_cmd_info, 0);
 /* Test the 'bloblist list' command */
 static int bloblist_test_cmd_list(struct unit_test_state *uts)
 {
-       struct sandbox_state *state = state_get_current();
        struct bloblist_hdr *hdr;
        char *data, *data2;
 
@@ -278,8 +274,7 @@ static int bloblist_test_cmd_list(struct unit_test_state *uts)
        data2 = bloblist_ensure(TEST_TAG2, TEST_SIZE2);
 
        console_record_reset_enable();
-       if (!state->show_test_output)
-               gd->flags |= GD_FLG_SILENT;
+       ut_silence_console(uts);
        console_record_reset();
        run_command("bloblist list", 0);
        ut_assert_nextline("Address       Size  Tag Name");
@@ -288,7 +283,7 @@ static int bloblist_test_cmd_list(struct unit_test_state *uts)
        ut_assert_nextline("%08lx  %8x    2 SPL hand-off",
                           (ulong)map_to_sysmem(data2), TEST_SIZE2);
        ut_assert_console_end();
-       gd->flags &= ~(GD_FLG_SILENT | GD_FLG_RECORD);
+       ut_unsilence_console(uts);
 
        return 0;
 }
index 95bdd66..44ed1ba 100644 (file)
--- a/test/ut.c
+++ b/test/ut.c
@@ -8,6 +8,9 @@
 #include <common.h>
 #include <console.h>
 #include <malloc.h>
+#ifdef CONFIG_SANDBOX
+#include <asm/state.h>
+#endif
 #include <test/test.h>
 #include <test/ut.h>
 
@@ -114,3 +117,18 @@ int ut_check_console_dump(struct unit_test_state *uts, int total_bytes)
 
        return upto == total_bytes ? 0 : 1;
 }
+
+void ut_silence_console(struct unit_test_state *uts)
+{
+#ifdef CONFIG_SANDBOX
+       struct sandbox_state *state = state_get_current();
+
+       if (!state->show_test_output)
+               gd->flags |= GD_FLG_SILENT;
+#endif
+}
+
+void ut_unsilence_console(struct unit_test_state *uts)
+{
+       gd->flags &= ~(GD_FLG_SILENT | GD_FLG_RECORD);
+}