From: Ion Agorria <i...@agorria.com> Separate record overflow logic and add console_record_isempty as available calls don't serve to know output has been read fully with readline's.
Signed-off-by: Ion Agorria <i...@agorria.com> Signed-off-by: Svyatoslav Ryhel <clamo...@gmail.com> --- common/console.c | 15 ++++++++++++--- include/console.h | 14 ++++++++++++++ test/ut.c | 9 ++++----- 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/common/console.c b/common/console.c index 98c3ee6ca6..8a869b137e 100644 --- a/common/console.c +++ b/common/console.c @@ -818,6 +818,8 @@ int console_record_init(void) ret = membuff_new((struct membuff *)&gd->console_in, CONFIG_CONSOLE_RECORD_IN_SIZE); + gd->flags |= GD_FLG_RECORD; + return ret; } @@ -836,11 +838,13 @@ int console_record_reset_enable(void) return 0; } -int console_record_readline(char *str, int maxlen) +bool console_record_overflow(void) { - if (gd->flags & GD_FLG_RECORD_OVF) - return -ENOSPC; + return gd->flags & GD_FLG_RECORD_OVF ? true : false; +} +int console_record_readline(char *str, int maxlen) +{ return membuff_readline((struct membuff *)&gd->console_out, str, maxlen, '\0'); } @@ -850,6 +854,11 @@ int console_record_avail(void) return membuff_avail((struct membuff *)&gd->console_out); } +bool console_record_isempty(void) +{ + return membuff_isempty((struct membuff *)&gd->console_out); +} + int console_in_puts(const char *str) { return membuff_put((struct membuff *)&gd->console_in, str, strlen(str)); diff --git a/include/console.h b/include/console.h index ceb733b5cb..c053bc9ba8 100644 --- a/include/console.h +++ b/include/console.h @@ -64,6 +64,13 @@ void console_record_reset(void); */ int console_record_reset_enable(void); +/** + * console_record_overflow() - returns state of buffers overflow + * + * Return: true if the console buffer was overflowed + */ +bool console_record_overflow(void); + /** * console_record_readline() - Read a line from the console output * @@ -84,6 +91,13 @@ int console_record_readline(char *str, int maxlen); */ int console_record_avail(void); +/** + * console_record_isempty() - Returns if console output is empty + * + * Return: true if empty + */ +bool console_record_isempty(void); + /** * console_in_puts() - Write a string to the console input buffer * diff --git a/test/ut.c b/test/ut.c index 28da417686..d202644a15 100644 --- a/test/ut.c +++ b/test/ut.c @@ -53,15 +53,14 @@ long ut_check_delta(ulong last) static int readline_check(struct unit_test_state *uts) { - int ret; - - ret = console_record_readline(uts->actual_str, sizeof(uts->actual_str)); - if (ret == -ENOSPC) { + if (console_record_overflow()) { ut_fail(uts, __FILE__, __LINE__, __func__, "Console record buffer too small - increase CONFIG_CONSOLE_RECORD_OUT_SIZE"); - return ret; + return -ENOSPC; } + console_record_readline(uts->actual_str, sizeof(uts->actual_str)); + return 0; } -- 2.40.1