test: Detect when expect_str is too small
If a line of more than 256 bytes is generated, the test will fail but the reason is not clear. Add a check for this condition and print a helpful message. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
16
test/ut.c
16
test/ut.c
@@ -68,11 +68,17 @@ static int readline_check(struct unit_test_state *uts)
|
|||||||
int ut_check_console_line(struct unit_test_state *uts, const char *fmt, ...)
|
int ut_check_console_line(struct unit_test_state *uts, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
|
int len;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
vsnprintf(uts->expect_str, sizeof(uts->expect_str), fmt, args);
|
len = vsnprintf(uts->expect_str, sizeof(uts->expect_str), fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
if (len >= sizeof(uts->expect_str)) {
|
||||||
|
ut_fail(uts, __FILE__, __LINE__, __func__,
|
||||||
|
"unit_test_state->expect_str too small");
|
||||||
|
return -EOVERFLOW;
|
||||||
|
}
|
||||||
ret = readline_check(uts);
|
ret = readline_check(uts);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
@@ -83,11 +89,17 @@ int ut_check_console_line(struct unit_test_state *uts, const char *fmt, ...)
|
|||||||
int ut_check_console_linen(struct unit_test_state *uts, const char *fmt, ...)
|
int ut_check_console_linen(struct unit_test_state *uts, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
|
int len;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
vsnprintf(uts->expect_str, sizeof(uts->expect_str), fmt, args);
|
len = vsnprintf(uts->expect_str, sizeof(uts->expect_str), fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
if (len >= sizeof(uts->expect_str)) {
|
||||||
|
ut_fail(uts, __FILE__, __LINE__, __func__,
|
||||||
|
"unit_test_state->expect_str too small");
|
||||||
|
return -EOVERFLOW;
|
||||||
|
}
|
||||||
ret = readline_check(uts);
|
ret = readline_check(uts);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
Reference in New Issue
Block a user