|
@@ -82,6 +82,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
|
|
|
*
|
|
@@ -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)) { \
|