[PATCH v2 7/9] console: allow to record console output before ready
Simon Glass
sjg at chromium.org
Mon Nov 30 21:12:13 CET 2020
Hi Patrick,
On Fri, 27 Nov 2020 at 03:21, Patrick Delaunay <patrick.delaunay at st.com> wrote:
>
> 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 at st.com>
> ---
>
> Changes in v2:
> - Record all messages in console, even when dropped (NEW)
>
> common/console.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/common/console.c b/common/console.c
> index 70579af042..c3d552bb3e 100644
> --- a/common/console.c
> +++ b/common/console.c
> @@ -519,6 +519,10 @@ void putc(const char c)
> {
> if (!gd)
> return;
> +#ifdef CONFIG_CONSOLE_RECORD
Can we use CONFIG_IS_ENABLED() here and avoid the #ifdef? We might
need to add some inline functions for the case where console_out is
not available. See global_data.h for some examples.
> + 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))
> --
> 2.17.1
>
Regards,
Simon
More information about the U-Boot
mailing list