aboutsummaryrefslogtreecommitdiff
path: root/include/test/ut.h
diff options
context:
space:
mode:
authorMario Six2018-09-27 09:19:32 +0200
committerAnatolij Gustschin2018-09-28 18:27:01 +0200
commit41f67e3bf343e7d8408956574f83ef7c13d2d0b4 (patch)
tree5917b588bddc131d82a4fb10660e386b99bc3942 /include/test/ut.h
parent4eea531859edc7e23fcffadee47757a0c6e0959f (diff)
test: Add ut_asserteq_mem
Add a unit test assert-method, which compares two given memory areas for byte-wise equality. Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/test/ut.h')
-rw-r--r--include/test/ut.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/test/ut.h b/include/test/ut.h
index fce75fd12a0..19bcb8c3748 100644
--- a/include/test/ut.h
+++ b/include/test/ut.h
@@ -78,6 +78,24 @@ void ut_failf(struct unit_test_state *uts, const char *fname, int line,
} \
}
+/* Assert that two memory areas are equal */
+#define ut_asserteq_mem(expr1, expr2, len) { \
+ const u8 *val1 = (u8 *)(expr1), *val2 = (u8 *)(expr2); \
+ const uint __len = len; \
+ \
+ if (memcmp(val1, val2, __len)) { \
+ char __buf1[64 + 1] = "\0"; \
+ char __buf2[64 + 1] = "\0"; \
+ bin2hex(__buf1, val1, min(__len, (uint)32)); \
+ bin2hex(__buf2, val2, min(__len, (uint)32)); \
+ ut_failf(uts, __FILE__, __LINE__, __func__, \
+ #expr1 " = " #expr2, \
+ "Expected \"%s\", got \"%s\"", \
+ __buf1, __buf2); \
+ return CMD_RET_FAILURE; \
+ } \
+}
+
/* Assert that two pointers are equal */
#define ut_asserteq_ptr(expr1, expr2) { \
const void *val1 = (expr1), *val2 = (expr2); \