Hi Simon, Thank you for the patch.
On sam., août 10, 2024 at 14:51, Simon Glass <s...@chromium.org> wrote: > The existing implementation of ut_assert_nextline_empty() cannot > distinguish between an empty line and no line at all. It can in fact be > called at the end of the recorded output and will happily return > success. > > Adjust the logic so that this condition is detected. Show a failure > message in this case. > > Fix the one test which falls foul of this fix. > > Signed-off-by: Simon Glass <s...@chromium.org> > Fixes: 400175b0a7d ("test: Add a way to check each line of console...") Reviewed-by: Mattijs Korpershoek <mkorpersh...@baylibre.com> > --- > > common/console.c | 2 ++ > include/console.h | 2 +- > test/boot/bootflow.c | 2 -- > test/ut.c | 8 +++++--- > 4 files changed, 8 insertions(+), 6 deletions(-) > > diff --git a/common/console.c b/common/console.c > index 63f78004fdb..85f627297ed 100644 > --- a/common/console.c > +++ b/common/console.c > @@ -845,6 +845,8 @@ int console_record_readline(char *str, int maxlen) > { > if (gd->flags & GD_FLG_RECORD_OVF) > return -ENOSPC; > + if (console_record_isempty()) > + return -ENOENT; > > return membuff_readline((struct membuff *)&gd->console_out, str, > maxlen, '\0', false); > diff --git a/include/console.h b/include/console.h > index 2617e160073..6b6d0f9de73 100644 > --- a/include/console.h > +++ b/include/console.h > @@ -73,7 +73,7 @@ int console_record_reset_enable(void); > * @str: Place to put string > * @maxlen: Maximum length of @str including nul terminator > * Return: length of string returned, or -ENOSPC if the console buffer was > - * overflowed by the output > + * overflowed by the output, or -ENOENT if there was nothing to read > */ > int console_record_readline(char *str, int maxlen); > > diff --git a/test/boot/bootflow.c b/test/boot/bootflow.c > index 8b46256fa48..8bfc2a1b9b4 100644 > --- a/test/boot/bootflow.c > +++ b/test/boot/bootflow.c > @@ -1151,8 +1151,6 @@ static int bootflow_cmdline(struct unit_test_state *uts) > > ut_asserteq(0, run_command("bootflow cmdline set mary abc", 0)); > ut_asserteq(0, run_command("bootflow cmdline set mary", 0)); > - ut_assert_nextline_empty(); > - > ut_assert_console_end(); > > return 0; > diff --git a/test/ut.c b/test/ut.c > index ae99831ac8f..7454da3e001 100644 > --- a/test/ut.c > +++ b/test/ut.c > @@ -59,9 +59,11 @@ static int readline_check(struct unit_test_state *uts) > ut_fail(uts, __FILE__, __LINE__, __func__, > "Console record buffer too small - increase > CONFIG_CONSOLE_RECORD_OUT_SIZE"); > return ret; > + } else if (ret == -ENOENT) { > + strcpy(uts->actual_str, "<no-more-output>"); > } > > - return 0; > + return ret; > } > > int ut_check_console_line(struct unit_test_state *uts, const char *fmt, ...) > @@ -79,8 +81,8 @@ int ut_check_console_line(struct unit_test_state *uts, > const char *fmt, ...) > return -EOVERFLOW; > } > ret = readline_check(uts); > - if (ret < 0) > - return ret; > + if (ret == -ENOENT) > + return 1; > > return strcmp(uts->expect_str, uts->actual_str); > } > -- > 2.34.1