unit-tests: Add a ck_assert_chunk_eq() convenience macro

This commit is contained in:
Martin Willi
2014-04-30 17:22:48 +02:00
parent 0456aa616f
commit 20924ae28f
+18
View File
@@ -269,6 +269,23 @@ void test_fail_msg(const char *file, int line, char *fmt, ...);
} \
})
/**
* Check if two chunks are equal, fail test if not
*
* @param a first chunk
* @param b second chunk
*/
#define test_chunk_eq(a, b) \
({ \
chunk_t _a = (chunk_t)a; \
chunk_t _b = (chunk_t)b; \
if (_a.len != _b.len || !memeq(a.ptr, b.ptr, a.len)) \
{ \
test_fail_msg(__FILE__, __LINE__, \
#a " != " #b " (\"%#B\" != \"%#B\")", &_a, &_b); \
} \
})
/**
* Check if a statement evaluates to TRUE, fail test if not
*
@@ -306,6 +323,7 @@ void test_fail_msg(const char *file, int line, char *fmt, ...);
#define ck_assert test_assert
#define ck_assert_msg test_assert_msg
#define ck_assert_str_eq test_str_eq
#define ck_assert_chunk_eq test_chunk_eq
#define fail(fmt, ...) test_fail_msg(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define fail_if(x, fmt, ...) \
({ \