@@ -172,30 +172,40 @@ const char *cl_fixture_basename(const char *fixture_name);
172172
173173#define cl_assert_compare_i_ (i1 , i2 , cmp , error , ...) clar__assert_compare_i(CLAR_CURRENT_FILE, CLAR_CURRENT_FUNC, CLAR_CURRENT_LINE, 1, cmp, \
174174 (i1), (i2), "Expected comparison to hold: " error, __VA_ARGS__)
175+ #define cl_assert_compare_i (i1 , i2 , cmp , error , fmt ) do { \
176+ intmax_t v1 = (i1), v2 = (i2); \
177+ clar__assert_compare_i(CLAR_CURRENT_FILE, CLAR_CURRENT_FUNC, CLAR_CURRENT_LINE, 1, cmp, \
178+ v1, v2, "Expected comparison to hold: " error, fmt, v1, v2); \
179+ } while (0)
175180#define cl_assert_equal_i_ (i1 , i2 , ...) cl_assert_compare_i_(i1, i2, CLAR_COMPARISON_EQ, #i1 " == " #i2, __VA_ARGS__)
176- #define cl_assert_equal_i (i1 ,i2 ) cl_assert_equal_i_ (i1,i2," %"PRIdMAX " != %"PRIdMAX,(intmax_t)(i1),(intmax_t)(i2) )
181+ #define cl_assert_equal_i (i1 , i2 ) cl_assert_compare_i (i1, i2, CLAR_COMPARISON_EQ, #i1 " == " #i2, " %"PRIdMAX " != %"PRIdMAX)
177182#define cl_assert_equal_i_fmt (i1 , i2 , fmt ) cl_assert_compare_i_(i1, i2, CLAR_COMPARISON_EQ, #i1 " == " #i2, fmt " != " fmt, (int)(i1), (int)(i2))
178183#define cl_assert_lt_i_ (i1 , i2 , ...) cl_assert_compare_i_(i1, i2, CLAR_COMPARISON_LT, #i1 " < " #i2, __VA_ARGS__)
179- #define cl_assert_lt_i (i1 ,i2 ) cl_assert_lt_i_ (i1,i2," %"PRIdMAX " >= %"PRIdMAX,(intmax_t)(i1),(intmax_t)(i2) )
184+ #define cl_assert_lt_i (i1 , i2 ) cl_assert_compare_i (i1, i2, CLAR_COMPARISON_LT, #i1 " < " #i2, " %"PRIdMAX " >= %"PRIdMAX)
180185#define cl_assert_le_i_ (i1 , i2 , ...) cl_assert_compare_i_(i1, i2, CLAR_COMPARISON_LE, #i1 " <= " #i2, __VA_ARGS__)
181- #define cl_assert_le_i (i1 ,i2 ) cl_assert_le_i_ (i1,i2," %"PRIdMAX " > %"PRIdMAX,(intmax_t)(i1),(intmax_t)(i2) )
186+ #define cl_assert_le_i (i1 , i2 ) cl_assert_compare_i (i1, i2, CLAR_COMPARISON_LE, #i1 " <= " #i2, " %"PRIdMAX " > %"PRIdMAX)
182187#define cl_assert_gt_i_ (i1 , i2 , ...) cl_assert_compare_i_(i1, i2, CLAR_COMPARISON_GT, #i1 " > " #i2, __VA_ARGS__)
183- #define cl_assert_gt_i (i1 ,i2 ) cl_assert_gt_i_ (i1,i2," %"PRIdMAX " <= %"PRIdMAX,(intmax_t)(i1),(intmax_t)(i2) )
188+ #define cl_assert_gt_i (i1 , i2 ) cl_assert_compare_i (i1, i2, CLAR_COMPARISON_GT, #i1 " > " #i2, " %"PRIdMAX " <= %"PRIdMAX)
184189#define cl_assert_ge_i_ (i1 , i2 , ...) cl_assert_compare_i_(i1, i2, CLAR_COMPARISON_GE, #i1 " >= " #i2, __VA_ARGS__)
185- #define cl_assert_ge_i (i1 ,i2 ) cl_assert_ge_i_ (i1,i2," %"PRIdMAX " < %"PRIdMAX,(intmax_t)(i1),(intmax_t)(i2) )
190+ #define cl_assert_ge_i (i1 , i2 ) cl_assert_compare_i (i1, i2, CLAR_COMPARISON_GE, #i1 " >= " #i2, " %"PRIdMAX " < %"PRIdMAX)
186191
187192#define cl_assert_compare_u_ (u1 , u2 , cmp , error , ...) clar__assert_compare_u(CLAR_CURRENT_FILE, CLAR_CURRENT_FUNC, CLAR_CURRENT_LINE, 1, cmp, \
188193 (u1), (u2), "Expected comparison to hold: " error, __VA_ARGS__)
194+ #define cl_assert_compare_u (u1 , u2 , cmp , error , fmt ) do { \
195+ uintmax_t v1 = (u1), v2 = (u2); \
196+ clar__assert_compare_u(CLAR_CURRENT_FILE, CLAR_CURRENT_FUNC, CLAR_CURRENT_LINE, 1, cmp, \
197+ v1, v2, "Expected comparison to hold: " error, fmt, v1, v2); \
198+ } while (0)
189199#define cl_assert_equal_u_ (u1 , u2 , ...) cl_assert_compare_u_(u1, u2, CLAR_COMPARISON_EQ, #u1 " == " #u2, __VA_ARGS__)
190- #define cl_assert_equal_u (u1 ,u2 ) cl_assert_equal_u_ (u1,u2," %"PRIuMAX " != %"PRIuMAX,(uintmax_t)(u1),(uintmax_t)(u2) )
200+ #define cl_assert_equal_u (u1 , u2 ) cl_assert_compare_u (u1, u2, CLAR_COMPARISON_EQ, #u1 " == " #u2, " %"PRIuMAX " != %"PRIuMAX)
191201#define cl_assert_lt_u_ (u1 , u2 , ...) cl_assert_compare_u_(u1, u2, CLAR_COMPARISON_LT, #u1 " < " #u2, __VA_ARGS__)
192- #define cl_assert_lt_u (u1 ,u2 ) cl_assert_lt_u_ (u1,u2," %"PRIuMAX " >= %"PRIuMAX,(uintmax_t)(u1),(uintmax_t)(u2) )
202+ #define cl_assert_lt_u (u1 , u2 ) cl_assert_compare_u (u1, u2, CLAR_COMPARISON_LT, #u1 " < " #u2, " %"PRIuMAX " >= %"PRIuMAX)
193203#define cl_assert_le_u_ (u1 , u2 , ...) cl_assert_compare_u_(u1, u2, CLAR_COMPARISON_LE, #u1 " <= " #u2, __VA_ARGS__)
194- #define cl_assert_le_u (u1 ,u2 ) cl_assert_le_u_ (u1,u2," %"PRIuMAX " > %"PRIuMAX,(uintmax_t)(u1),(uintmax_t)(u2) )
204+ #define cl_assert_le_u (u1 , u2 ) cl_assert_compare_u (u1, u2, CLAR_COMPARISON_LE, #u1 " <= " #u2, " %"PRIuMAX " > %"PRIuMAX)
195205#define cl_assert_gt_u_ (u1 , u2 , ...) cl_assert_compare_u_(u1, u2, CLAR_COMPARISON_GT, #u1 " > " #u2, __VA_ARGS__)
196- #define cl_assert_gt_u (u1 ,u2 ) cl_assert_gt_u_ (u1,u2," %"PRIuMAX " <= %"PRIuMAX,(uintmax_t)(u1),(uintmax_t)(u2) )
206+ #define cl_assert_gt_u (u1 , u2 ) cl_assert_compare_u (u1, u2, CLAR_COMPARISON_GT, #u1 " > " #u2, " %"PRIuMAX " <= %"PRIuMAX)
197207#define cl_assert_ge_u_ (u1 , u2 , ...) cl_assert_compare_u_(u1, u2, CLAR_COMPARISON_GE, #u1 " >= " #u2, __VA_ARGS__)
198- #define cl_assert_ge_u (u1 ,u2 ) cl_assert_ge_u_ (u1,u2," %"PRIuMAX " < %"PRIuMAX,(uintmax_t)(u1),(uintmax_t)(u2) )
208+ #define cl_assert_ge_u (u1 , u2 ) cl_assert_compare_u (u1, u2, CLAR_COMPARISON_GE, #u1 " >= " #u2, " %"PRIuMAX " < %"PRIuMAX)
199209
200210#define cl_assert_equal_b (b1 ,b2 ) clar__assert_equal(CLAR_CURRENT_FILE,CLAR_CURRENT_FUNC,CLAR_CURRENT_LINE,#b1 " != " #b2, 1, "%d", (int)((b1) != 0),(int)((b2) != 0))
201211
0 commit comments