diff options
author | Simon Glass <sjg@chromium.org> | 2021-08-18 21:40:33 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-09-16 14:39:40 -0400 |
commit | 2e09008c3c938dac28440d948a27b1c4190f36d2 (patch) | |
tree | 13618b7abd3389e066642046463e61db576eb0c9 /include | |
parent | b9274095c2cd1ae42f232c823e9e9557696be91a (diff) | |
download | u-boot-2e09008c3c938dac28440d948a27b1c4190f36d2.tar.gz u-boot-2e09008c3c938dac28440d948a27b1c4190f36d2.tar.bz2 u-boot-2e09008c3c938dac28440d948a27b1c4190f36d2.zip |
test: Add a way to skip console checking until a string matches
Some tests produce a lot of output that does not need to be individually
checked by an assertion. Add a macro to handle this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/test/ut.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/include/test/ut.h b/include/test/ut.h index 656e25fe57..fb2e5fcff2 100644 --- a/include/test/ut.h +++ b/include/test/ut.h @@ -83,6 +83,21 @@ int ut_check_console_linen(struct unit_test_state *uts, const char *fmt, ...) int ut_check_skipline(struct unit_test_state *uts); /** + * ut_check_skip_to_line() - skip output until a line is found + * + * This creates a string and then checks it against the following lines of + * console output obtained with console_record_readline() until it is found. + * + * After the function returns, uts->expect_str holds the expected string and + * uts->actual_str holds the actual string read from the console. + * + * @uts: Test state + * @fmt: printf() format string to look for, followed by args + * @return 0 if OK, -ENOENT if not found, other value on error + */ +int ut_check_skip_to_line(struct unit_test_state *uts, const char *fmt, ...); + +/** * ut_check_console_end() - Check there is no more console output * * After the function returns, uts->actual_str holds the actual string read @@ -286,6 +301,15 @@ int ut_check_console_dump(struct unit_test_state *uts, int total_bytes); return CMD_RET_FAILURE; \ } \ +/* Assert that a following console output line matches */ +#define ut_assert_skip_to_line(fmt, args...) \ + if (ut_check_skip_to_line(uts, fmt, ##args)) { \ + ut_failf(uts, __FILE__, __LINE__, __func__, \ + "console", "\nExpected '%s',\n got to '%s'", \ + uts->expect_str, uts->actual_str); \ + return CMD_RET_FAILURE; \ + } \ + /* Assert that there is no more console output */ #define ut_assert_console_end() \ if (ut_check_console_end(uts)) { \ |