The asserts are sometimes called from the context of the test command
itself so make sure that a return that happens as a result of a failure
is compatible with that command return. When called within a test, the
return value is ignored.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
#define ut_assert(cond) \
if (!(cond)) { \
ut_fail(uts, __FILE__, __LINE__, __func__, #cond); \
#define ut_assert(cond) \
if (!(cond)) { \
ut_fail(uts, __FILE__, __LINE__, __func__, #cond); \
+ return CMD_RET_FAILURE; \
}
/* Assert that a condition is non-zero, with printf() string */
}
/* Assert that a condition is non-zero, with printf() string */
if (!(cond)) { \
ut_failf(uts, __FILE__, __LINE__, __func__, #cond, \
fmt, ##args); \
if (!(cond)) { \
ut_failf(uts, __FILE__, __LINE__, __func__, #cond, \
fmt, ##args); \
+ return CMD_RET_FAILURE; \
}
/* Assert that two int expressions are equal */
}
/* Assert that two int expressions are equal */
ut_failf(uts, __FILE__, __LINE__, __func__, \
#expr1 " == " #expr2, \
"Expected %d, got %d", val1, val2); \
ut_failf(uts, __FILE__, __LINE__, __func__, \
#expr1 " == " #expr2, \
"Expected %d, got %d", val1, val2); \
+ return CMD_RET_FAILURE; \
ut_failf(uts, __FILE__, __LINE__, __func__, \
#expr1 " = " #expr2, \
"Expected \"%s\", got \"%s\"", val1, val2); \
ut_failf(uts, __FILE__, __LINE__, __func__, \
#expr1 " = " #expr2, \
"Expected \"%s\", got \"%s\"", val1, val2); \
+ return CMD_RET_FAILURE; \
ut_failf(uts, __FILE__, __LINE__, __func__, \
#expr1 " = " #expr2, \
"Expected %p, got %p", val1, val2); \
ut_failf(uts, __FILE__, __LINE__, __func__, \
#expr1 " = " #expr2, \
"Expected %p, got %p", val1, val2); \
+ return CMD_RET_FAILURE; \
ut_failf(uts, __FILE__, __LINE__, __func__, \
#expr " = NULL", \
"Expected non-null, got NULL"); \
ut_failf(uts, __FILE__, __LINE__, __func__, \
#expr " = NULL", \
"Expected non-null, got NULL"); \
+ return CMD_RET_FAILURE; \