console: allow to record console output before ready
authorPatrick Delaunay <patrick.delaunay@st.com>
Fri, 27 Nov 2020 10:20:57 +0000 (11:20 +0100)
committerTom Rini <trini@konsulko.com>
Fri, 15 Jan 2021 19:36:11 +0000 (14:36 -0500)
Allow to record the console output before before U-Boot
has a console ready.

This patch allows to test the console output in sandbox test
based on console record.

It is possible because GD_FLG_RECORD and GD_FLG_SERIAL_READY
are 2 independent flags.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
common/console.c

index 70579af..c3d552b 100644 (file)
@@ -519,6 +519,10 @@ void putc(const char c)
 {
        if (!gd)
                return;
+#ifdef CONFIG_CONSOLE_RECORD
+       if ((gd->flags & GD_FLG_RECORD) && gd->console_out.start)
+               membuff_putbyte((struct membuff *)&gd->console_out, c);
+#endif
 #ifdef CONFIG_SANDBOX
        /* sandbox can send characters to stdout before it has a console */
        if (!(gd->flags & GD_FLG_SERIAL_READY)) {
@@ -533,10 +537,6 @@ void putc(const char c)
                return;
        }
 #endif
-#ifdef CONFIG_CONSOLE_RECORD
-       if ((gd->flags & GD_FLG_RECORD) && gd->console_out.start)
-               membuff_putbyte((struct membuff *)&gd->console_out, c);
-#endif
 #ifdef CONFIG_SILENT_CONSOLE
        if (gd->flags & GD_FLG_SILENT) {
                if (!(gd->flags & GD_FLG_DEVINIT))
@@ -567,6 +567,10 @@ void puts(const char *s)
 {
        if (!gd)
                return;
+#ifdef CONFIG_CONSOLE_RECORD
+       if ((gd->flags & GD_FLG_RECORD) && gd->console_out.start)
+               membuff_put((struct membuff *)&gd->console_out, s, strlen(s));
+#endif
 #ifdef CONFIG_SANDBOX
        /* sandbox can send characters to stdout before it has a console */
        if (!(gd->flags & GD_FLG_SERIAL_READY)) {
@@ -584,10 +588,6 @@ void puts(const char *s)
                return;
        }
 #endif
-#ifdef CONFIG_CONSOLE_RECORD
-       if ((gd->flags & GD_FLG_RECORD) && gd->console_out.start)
-               membuff_put((struct membuff *)&gd->console_out, s, strlen(s));
-#endif
 #ifdef CONFIG_SILENT_CONSOLE
        if (gd->flags & GD_FLG_SILENT) {
                if (!(gd->flags & GD_FLG_DEVINIT))