@@ -185,29 +185,39 @@ const char *cl_fixture_basename(const char *fixture_name);
185185
186186#define cl_assert_compare_i_ (i1 , i2 , cmp , error , ...) clar__assert_compare_i(CLAR_CURRENT_FILE, CLAR_CURRENT_FUNC, CLAR_CURRENT_LINE, 1, cmp, \
187187 (i1), (i2), "Expected comparison to hold: " error, __VA_ARGS__)
188+ #define cl_assert_compare_i (i1 , i2 , cmp , error , fmt ) do { \
189+ intmax_t v1 = (i1), v2 = (i2); \
190+ clar__assert_compare_i(CLAR_CURRENT_FILE, CLAR_CURRENT_FUNC, CLAR_CURRENT_LINE, 1, cmp, \
191+ v1, v2, "Expected comparison to hold: " error, fmt, v1, v2); \
192+ } while (0)
188193#define cl_assert_eq_i_ (i1 , i2 , ...) cl_assert_compare_i_(i1, i2, CLAR_COMPARISON_EQ, #i1 " == " #i2, __VA_ARGS__)
189- #define cl_assert_eq_i (i1 ,i2 ) cl_assert_eq_i_ (i1,i2," %"PRIdMAX " != %"PRIdMAX,(intmax_t)(i1),(intmax_t)(i2) )
194+ #define cl_assert_eq_i (i1 , i2 ) cl_assert_compare_i (i1, i2, CLAR_COMPARISON_EQ, #i1 " == " #i2, " %"PRIdMAX " != %"PRIdMAX)
190195#define cl_assert_lt_i_ (i1 , i2 , ...) cl_assert_compare_i_(i1, i2, CLAR_COMPARISON_LT, #i1 " < " #i2, __VA_ARGS__)
191- #define cl_assert_lt_i (i1 ,i2 ) cl_assert_lt_i_ (i1,i2," %"PRIdMAX " >= %"PRIdMAX,(intmax_t)(i1),(intmax_t)(i2) )
196+ #define cl_assert_lt_i (i1 , i2 ) cl_assert_compare_i (i1, i2, CLAR_COMPARISON_LT, #i1 " < " #i2, " %"PRIdMAX " >= %"PRIdMAX)
192197#define cl_assert_le_i_ (i1 , i2 , ...) cl_assert_compare_i_(i1, i2, CLAR_COMPARISON_LE, #i1 " <= " #i2, __VA_ARGS__)
193- #define cl_assert_le_i (i1 ,i2 ) cl_assert_le_i_ (i1,i2," %"PRIdMAX " > %"PRIdMAX,(intmax_t)(i1),(intmax_t)(i2) )
198+ #define cl_assert_le_i (i1 , i2 ) cl_assert_compare_i (i1, i2, CLAR_COMPARISON_LE, #i1 " <= " #i2, " %"PRIdMAX " > %"PRIdMAX)
194199#define cl_assert_gt_i_ (i1 , i2 , ...) cl_assert_compare_i_(i1, i2, CLAR_COMPARISON_GT, #i1 " > " #i2, __VA_ARGS__)
195- #define cl_assert_gt_i (i1 ,i2 ) cl_assert_gt_i_ (i1,i2," %"PRIdMAX " <= %"PRIdMAX,(intmax_t)(i1),(intmax_t)(i2) )
200+ #define cl_assert_gt_i (i1 , i2 ) cl_assert_compare_i (i1, i2, CLAR_COMPARISON_GT, #i1 " > " #i2, " %"PRIdMAX " <= %"PRIdMAX)
196201#define cl_assert_ge_i_ (i1 , i2 , ...) cl_assert_compare_i_(i1, i2, CLAR_COMPARISON_GE, #i1 " >= " #i2, __VA_ARGS__)
197- #define cl_assert_ge_i (i1 ,i2 ) cl_assert_ge_i_ (i1,i2," %"PRIdMAX " < %"PRIdMAX,(intmax_t)(i1),(intmax_t)(i2) )
202+ #define cl_assert_ge_i (i1 , i2 ) cl_assert_compare_i (i1, i2, CLAR_COMPARISON_GE, #i1 " >= " #i2, " %"PRIdMAX " < %"PRIdMAX)
198203
199204#define cl_assert_compare_u_ (u1 , u2 , cmp , error , ...) clar__assert_compare_u(CLAR_CURRENT_FILE, CLAR_CURRENT_FUNC, CLAR_CURRENT_LINE, 1, cmp, \
200205 (u1), (u2), "Expected comparison to hold: " error, __VA_ARGS__)
206+ #define cl_assert_compare_u (u1 , u2 , cmp , error , fmt ) do { \
207+ uintmax_t v1 = (u1), v2 = (u2); \
208+ clar__assert_compare_u(CLAR_CURRENT_FILE, CLAR_CURRENT_FUNC, CLAR_CURRENT_LINE, 1, cmp, \
209+ v1, v2, "Expected comparison to hold: " error, fmt, v1, v2); \
210+ } while (0)
201211#define cl_assert_eq_u_ (u1 , u2 , ...) cl_assert_compare_u_(u1, u2, CLAR_COMPARISON_EQ, #u1 " == " #u2, __VA_ARGS__)
202- #define cl_assert_eq_u (u1 ,u2 ) cl_assert_eq_u_ (u1,u2," %"PRIuMAX " != %"PRIuMAX,(uintmax_t)(u1),(uintmax_t)(u2) )
212+ #define cl_assert_eq_u (u1 , u2 ) cl_assert_compare_u (u1, u2, CLAR_COMPARISON_EQ, #u1 " == " #u2, " %"PRIuMAX " != %"PRIuMAX)
203213#define cl_assert_lt_u_ (u1 , u2 , ...) cl_assert_compare_u_(u1, u2, CLAR_COMPARISON_LT, #u1 " < " #u2, __VA_ARGS__)
204- #define cl_assert_lt_u (u1 ,u2 ) cl_assert_lt_u_ (u1,u2," %"PRIuMAX " >= %"PRIuMAX,(uintmax_t)(u1),(uintmax_t)(u2) )
214+ #define cl_assert_lt_u (u1 , u2 ) cl_assert_compare_u (u1, u2, CLAR_COMPARISON_LT, #u1 " < " #u2, " %"PRIuMAX " >= %"PRIuMAX)
205215#define cl_assert_le_u_ (u1 , u2 , ...) cl_assert_compare_u_(u1, u2, CLAR_COMPARISON_LE, #u1 " <= " #u2, __VA_ARGS__)
206- #define cl_assert_le_u (u1 ,u2 ) cl_assert_le_u_ (u1,u2," %"PRIuMAX " > %"PRIuMAX,(uintmax_t)(u1),(uintmax_t)(u2) )
216+ #define cl_assert_le_u (u1 , u2 ) cl_assert_compare_u (u1, u2, CLAR_COMPARISON_LE, #u1 " <= " #u2, " %"PRIuMAX " > %"PRIuMAX)
207217#define cl_assert_gt_u_ (u1 , u2 , ...) cl_assert_compare_u_(u1, u2, CLAR_COMPARISON_GT, #u1 " > " #u2, __VA_ARGS__)
208- #define cl_assert_gt_u (u1 ,u2 ) cl_assert_gt_u_ (u1,u2," %"PRIuMAX " <= %"PRIuMAX,(uintmax_t)(u1),(uintmax_t)(u2) )
218+ #define cl_assert_gt_u (u1 , u2 ) cl_assert_compare_u (u1, u2, CLAR_COMPARISON_GT, #u1 " > " #u2, " %"PRIuMAX " <= %"PRIuMAX)
209219#define cl_assert_ge_u_ (u1 , u2 , ...) cl_assert_compare_u_(u1, u2, CLAR_COMPARISON_GE, #u1 " >= " #u2, __VA_ARGS__)
210- #define cl_assert_ge_u (u1 ,u2 ) cl_assert_ge_u_ (u1,u2," %"PRIuMAX " < %"PRIuMAX,(uintmax_t)(u1),(uintmax_t)(u2) )
220+ #define cl_assert_ge_u (u1 , u2 ) cl_assert_compare_u (u1, u2, CLAR_COMPARISON_GE, #u1 " >= " #u2, " %"PRIuMAX " < %"PRIuMAX)
211221
212222#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))
213223
0 commit comments