22 #define DO_NOTHING do {} while (0) 23 #define ASSERT_VALID(c) DO_NOTHING 24 #define ASSERT_EQUAL(a,b) DO_NOTHING 25 #define ASSERT_NOT_EQUAL(a,b) DO_NOTHING 26 #define ASSERT_LOWER_EQ(a,b) DO_NOTHING 27 #define ASSERT_GREATER_EQ(a,b) DO_NOTHING 28 #define ASSERT_BETWEEN(a,b,c) DO_NOTHING 29 #define ASSERT_IPC_OK(i) DO_NOTHING 30 #define ASSERT_OK(e) do { (void)e; } while (0) 31 #define ASSERT_NOT_NULL(p) DO_NOTHING 33 #define assert(cond) DO_NOTHING 40 #define ASSERT_PRINTF printf 44 #define ASSERT_ASSERT(x) assert(x) 47 #define ASSERT_VALID(cap) \ 49 typeof(cap) _cap = cap; \ 50 if (l4_is_invalid_cap(_cap)) { \ 51 ASSERT_PRINTF("%s: Cap invalid.\n", __func__); \ 52 ASSERT_ASSERT(!l4_is_invalid_cap(_cap)); \ 57 #define ASSERT_EQUAL(a, b) \ 62 ASSERT_PRINTF("%s:\n", __func__); \ 63 ASSERT_PRINTF(" "#a" (%lx) != "#b" (%lx)\n", (unsigned long)_a, (unsigned long)_b); \ 64 ASSERT_ASSERT(_a == _b); \ 69 #define ASSERT_NOT_EQUAL(a, b) \ 74 ASSERT_PRINTF("%s:\n", __func__); \ 75 ASSERT_PRINTF(" "#a" (%lx) == "#b" (%lx)\n", (unsigned long)_a, (unsigned long)_b); \ 76 ASSERT_ASSERT(_a != _b); \ 81 #define ASSERT_LOWER_EQ(val, max) \ 83 typeof(val) _val = val; \ 84 typeof(max) _max = max; \ 86 ASSERT_PRINTF("%s:\n", __func__); \ 87 ASSERT_PRINTF(" "#val" (%lx) > "#max" (%lx)\n", (unsigned long)_val, (unsigned long)_max); \ 88 ASSERT_ASSERT(_val <= _max); \ 93 #define ASSERT_GREATER_EQ(val, min) \ 95 typeof(val) _val = val; \ 96 typeof(min) _min = min; \ 98 ASSERT_PRINTF("%s:\n", __func__); \ 99 ASSERT_PRINTF(" "#val" (%lx) < "#min" (%lx)\n", (unsigned long)_val, (unsigned long)_min); \ 100 ASSERT_ASSERT(_val >= _min); \ 105 #define ASSERT_BETWEEN(val, min, max) \ 106 ASSERT_LOWER_EQ((val), (max)); \ 107 ASSERT_GREATER_EQ((val), (min)); 110 #define ASSERT_IPC_OK(msgtag) \ 112 int _r = l4_ipc_error(msgtag, l4_utcb()); \ 114 ASSERT_PRINTF("%s: IPC Error: %lx\n", __func__, _r); \ 115 ASSERT_ASSERT(_r == 0); \ 119 #define ASSERT_OK(val) ASSERT_EQUAL((val), 0) 120 #define ASSERT_NOT_NULL(ptr) ASSERT_NOT_EQUAL((ptr), (void *)0) Some useful assert-style macros.