13#ifndef ZEPHYR_TESTSUITE_ZTEST_ASSERT_H_
14#define ZEPHYR_TESTSUITE_ZTEST_ASSERT_H_
32#if CONFIG_ZTEST_ASSERT_VERBOSE == 0
34static inline bool z_zassert_(
bool cond,
const char *file,
int line)
45#define z_zassert(cond, default_msg, file, line, func, msg, ...) z_zassert_(cond, file, line)
47static inline bool z_zassume_(
bool cond,
const char *file,
int line)
58#define z_zassume(cond, default_msg, file, line, func, msg, ...) z_zassume_(cond, file, line)
60static inline bool z_zexpect_(
bool cond,
const char *file,
int line)
71#define z_zexpect(cond, default_msg, file, line, func, msg, ...) z_zexpect_(cond, file, line)
75static inline bool z_zassert(
bool cond,
const char *default_msg,
const char *file,
int line,
76 const char *func,
const char *msg, ...)
83 line, func, default_msg);
90#if CONFIG_ZTEST_ASSERT_VERBOSE == 2
99static inline bool z_zassume(
bool cond,
const char *default_msg,
const char *file,
int line,
100 const char *func,
const char *msg, ...)
105 va_start(vargs, msg);
107 line, func, default_msg);
114#if CONFIG_ZTEST_ASSERT_VERBOSE == 2
123static inline bool z_zexpect(
bool cond,
const char *default_msg,
const char *file,
int line,
124 const char *func,
const char *msg, ...)
129 va_start(vargs, msg);
131 line, func, default_msg);
138#if CONFIG_ZTEST_ASSERT_VERBOSE == 2
172#define _zassert_base(cond, default_msg, msg, ...) \
174 bool _msg = (msg != NULL); \
175 bool _ret = z_zassert(cond, _msg ? ("(" default_msg ")") : (default_msg), __FILE__,\
176 __LINE__, __func__, _msg ? msg : "", ##__VA_ARGS__); \
180 COND_CODE_1(KERNEL, (COND_CODE_1(CONFIG_MULTITHREADING, (), (return;))), \
185#define _zassert_va(cond, default_msg, msg, ...) \
186 _zassert_base(cond, default_msg, msg, ##__VA_ARGS__)
188#define zassert(cond, default_msg, ...) \
189 _zassert_va(cond, default_msg, COND_CODE_1(__VA_OPT__(1), (__VA_ARGS__), (NULL)))
209#define _zassume_base(cond, default_msg, msg, ...) \
211 bool _msg = (msg != NULL); \
212 bool _ret = z_zassume(cond, _msg ? ("(" default_msg ")") : (default_msg), __FILE__,\
213 __LINE__, __func__, _msg ? msg : "", ##__VA_ARGS__); \
217 COND_CODE_1(KERNEL, (COND_CODE_1(CONFIG_MULTITHREADING, (), (return;))), \
222#define _zassume_va(cond, default_msg, msg, ...) \
223 _zassume_base(cond, default_msg, msg, ##__VA_ARGS__)
225#define zassume(cond, default_msg, ...) \
226 _zassume_va(cond, default_msg, COND_CODE_1(__VA_OPT__(1), (__VA_ARGS__), (NULL)))
238#define _zexpect_base(cond, default_msg, msg, ...) \
240 bool _msg = (msg != NULL); \
242 z_zexpect(cond, _msg ? ("(" default_msg ")") : (default_msg), __FILE__, \
243 __LINE__, __func__, _msg ? msg : "", ##__VA_ARGS__); \
247 COND_CODE_1(KERNEL, (COND_CODE_1(CONFIG_MULTITHREADING, (), (return;))), \
252#define _zexpect_va(cond, default_msg, msg, ...) \
253 _zexpect_base(cond, default_msg, msg, ##__VA_ARGS__)
255#define zexpect(cond, default_msg, ...) \
256 _zexpect_va(cond, default_msg, COND_CODE_1(__VA_OPT__(1), (__VA_ARGS__), (NULL)))
262#define zassert_unreachable(...) zassert(0, "Reached unreachable code", ##__VA_ARGS__)
269#define zassert_true(cond, ...) zassert(cond, #cond " is false", ##__VA_ARGS__)
276#define zassert_false(cond, ...) zassert(!(cond), #cond " is true", ##__VA_ARGS__)
283#define zassert_ok(cond, ...) zassert(!(cond), #cond " is non-zero", ##__VA_ARGS__)
290#define zassert_not_ok(cond, ...) zassert(!!(cond), #cond " is zero", ##__VA_ARGS__)
297#define zassert_is_null(ptr, ...) zassert((ptr) == NULL, #ptr " is not NULL", ##__VA_ARGS__)
304#define zassert_not_null(ptr, ...) zassert((ptr) != NULL, #ptr " is NULL", ##__VA_ARGS__)
315#define zassert_equal(a, b, ...) zassert((a) == (b), #a " not equal to " #b, ##__VA_ARGS__)
326#define zassert_not_equal(a, b, ...) zassert((a) != (b), #a " equal to " #b, ##__VA_ARGS__)
337#define zassert_equal_ptr(a, b, ...) \
338 zassert((void *)(a) == (void *)(b), #a " not equal to " #b, ##__VA_ARGS__)
348#define zassert_within(a, b, d, ...) \
349 zassert(((a) >= ((b) - (d))) && ((a) <= ((b) + (d))), #a " not within " #b " +/- " #d, \
361#define zassert_between_inclusive(a, l, u, ...) \
362 zassert(((a) >= (l)) && ((a) <= (u)), #a " not between " #l " and " #u " inclusive", \
376#define zassert_mem_equal(...) zassert_mem_equal__(__VA_ARGS__)
389#define zassert_mem_equal__(buf, exp, size, ...) \
390 zassert(memcmp(buf, exp, size) == 0, #buf " not equal to " #exp, ##__VA_ARGS__)
413#define zassume_true(cond, ...) zassume(cond, #cond " is false", ##__VA_ARGS__)
423#define zassume_false(cond, ...) zassume(!(cond), #cond " is true", ##__VA_ARGS__)
433#define zassume_ok(cond, ...) zassume(!(cond), #cond " is non-zero", ##__VA_ARGS__)
443#define zassume_not_ok(cond, ...) zassume(!!(cond), #cond " is zero", ##__VA_ARGS__)
453#define zassume_is_null(ptr, ...) zassume((ptr) == NULL, #ptr " is not NULL", ##__VA_ARGS__)
463#define zassume_not_null(ptr, ...) zassume((ptr) != NULL, #ptr " is NULL", ##__VA_ARGS__)
475#define zassume_equal(a, b, ...) zassume((a) == (b), #a " not equal to " #b, ##__VA_ARGS__)
487#define zassume_not_equal(a, b, ...) zassume((a) != (b), #a " equal to " #b, ##__VA_ARGS__)
499#define zassume_equal_ptr(a, b, ...) \
500 zassume((void *)(a) == (void *)(b), #a " not equal to " #b, ##__VA_ARGS__)
512#define zassume_within(a, b, d, ...) \
513 zassume(((a) >= ((b) - (d))) && ((a) <= ((b) + (d))), #a " not within " #b " +/- " #d, \
527#define zassume_between_inclusive(a, l, u, ...) \
528 zassume(((a) >= (l)) && ((a) <= (u)), #a " not between " #l " and " #u " inclusive", \
542#define zassume_mem_equal(...) zassume_mem_equal__(__VA_ARGS__)
557#define zassume_mem_equal__(buf, exp, size, ...) \
558 zassume(memcmp(buf, exp, size) == 0, #buf " not equal to " #exp, ##__VA_ARGS__)
579#define zexpect_true(cond, ...) zexpect(cond, #cond " is false", ##__VA_ARGS__)
587#define zexpect_false(cond, ...) zexpect(!(cond), #cond " is true", ##__VA_ARGS__)
596#define zexpect_ok(cond, ...) zexpect(!(cond), #cond " is non-zero", ##__VA_ARGS__)
605#define zexpect_not_ok(cond, ...) zexpect(!!(cond), #cond " is zero", ##__VA_ARGS__)
613#define zexpect_is_null(ptr, ...) zexpect((ptr) == NULL, #ptr " is not NULL", ##__VA_ARGS__)
621#define zexpect_not_null(ptr, ...) zexpect((ptr) != NULL, #ptr " is NULL", ##__VA_ARGS__)
630#define zexpect_equal(a, b, ...) zexpect((a) == (b), #a " not equal to " #b, ##__VA_ARGS__)
642#define zexpect_not_equal(a, b, ...) zexpect((a) != (b), #a " equal to " #b, ##__VA_ARGS__)
653#define zexpect_equal_ptr(a, b, ...) \
654 zexpect((void *)(a) == (void *)(b), #a " not equal to " #b, ##__VA_ARGS__)
665#define zexpect_within(a, b, delta, ...) \
666 zexpect(((a) >= ((b) - (delta))) && ((a) <= ((b) + (delta))), \
667 #a " not within " #b " +/- " #delta, ##__VA_ARGS__)
678#define zexpect_between_inclusive(a, lower, upper, ...) \
679 zexpect(((a) >= (lower)) && ((a) <= (upper)), \
680 #a " not between " #lower " and " #upper " inclusive", ##__VA_ARGS__)
691#define zexpect_mem_equal(buf, exp, size, ...) \
692 zexpect(memcmp(buf, exp, size) == 0, #buf " not equal to " #exp, ##__VA_ARGS__)
static void vprintk(const char *fmt, va_list ap)
Definition: printk.h:56
static void printk(const char *fmt,...)
Print kernel debugging message.
Definition: printk.h:51
#define PRINT
Definition: ztest.h:39
const char * ztest_relative_filename(const char *file)
void ztest_skip_failed_assumption(void)
void ztest_test_expect_fail(void)
void ztest_test_fail(void)
void ztest_test_skip(void)