Refactored assert macros

This commit is contained in:
Snaipe 2015-03-11 03:36:54 +01:00
parent 54af217d74
commit e7dc892c42

View file

@ -53,45 +53,55 @@ enum criterion_assert_kind {
return; \
} while (0)
// Common asserts
# define assert(Condition, ...) assert_impl(FATAL, (Condition), ## __VA_ARGS__)
# define expect(Condition, ...) assert_impl(NORMAL, (Condition), ## __VA_ARGS__)
# define assert_arrays_equal(A, B, Size, ...) \
assert(!memcmp((A), (B), (Size)), ## __VA_ARGS__)
# define expect_arrays_equal(A, B, Size, ...) \
expect(!memcmp((A), (B), (Size)), ## __VA_ARGS__)
# define assert_not(Condition, ...) assert(!(Condition), ## __VA_ARGS__)
# define expect_not(Condition, ...) expect(!(Condition), ## __VA_ARGS__)
// Native asserts
# define assert_equal(Actual, Expected, ...) \
assert((Actual) == (Expected), ## __VA_ARGS__)
# define expect_equal(Actual, Expected, ...) \
expect((Actual) == (Expected), ## __VA_ARGS__)
# define assert_not_equal(Actual, Expected, ...) \
assert((Actual) != (Expected), ## __VA_ARGS__)
# define expectNotEqual(Actual, Expected, ...) \
expect((Actual) != (Expected), ## __VA_ARGS__)
// Floating-point asserts
# define assert_float_equal(Actual, Expected, Epsilon, ...) \
assert((Expected) - (Actual) < (Epsilon) && (Actual) - (Expected) < (Epsilon), ## __VA_ARGS__)
# define expect_float_equal(Actual, Expected, Epsilon, ...) \
expect((Expected) - (Actual) < (Epsilon) && (Actual) - (Expected) < (Epsilon), ## __VA_ARGS__)
// String asserts
# define assert_strings_equal(Actual, Expected, ...) \
assert(!strcmp((Actual), (Expected)), ## __VA_ARGS__)
# define expect_strings_equal(Actual, Expected, ...) \
expect(!strcmp((Actual), (Expected)), ## __VA_ARGS__)
# define assert_not(Condition, ...) assert(!(Condition), ## __VA_ARGS__)
# define expect_not(Condition, ...) expect(!(Condition), ## __VA_ARGS__)
# define assert_strings_not_equal(Actual, Expected, ...) \
assert(strcmp((Actual), (Expected)), ## __VA_ARGS__)
# define expect_strings_not_equal(Actual, Expected, ...) \
expect(strcmp((Actual), (Expected)), ## __VA_ARGS__)
# define assert_not_equal(Actual, Expected, ...) \
assert((Actual) != (Expected), ## __VA_ARGS__)
# define expectNotEqual(Actual, Expected, ...) \
expect((Actual) != (Expected), ## __VA_ARGS__)
// Array asserts
# define assert_arrays_equal(A, B, Size, ...) \
assert(!memcmp((A), (B), (Size)), ## __VA_ARGS__)
# define expect_arrays_equal(A, B, Size, ...) \
expect(!memcmp((A), (B), (Size)), ## __VA_ARGS__)
# define assert_arrays_not_equal(A, B, Size, ...) \
assert(memcmp((A), (B), (Size)), ## __VA_ARGS__)
# define expect_arrays_not_equal(A, B, Size, ...) \
expect(memcmp((A), (B), (Size)), ## __VA_ARGS__)
# define assert_strings_not_equal(Actual, Expected, ...) \
assert(strcmp((Actual), (Expected)), ## __VA_ARGS__)
# define expect_strings_not_equal(Actual, Expected, ...) \
expect(strcmp((Actual), (Expected)), ## __VA_ARGS__)
#endif /* !CRITERION_ASSERT_H_ */