From 0f51313a2d295adda5a28204d0d20035ebddf0de Mon Sep 17 00:00:00 2001 From: Snaipe Date: Sat, 7 Feb 2015 02:14:59 +0100 Subject: [PATCH 1/2] [Issue #3] Added a bunch of asserts --- include/criterion/assert.h | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/include/criterion/assert.h b/include/criterion/assert.h index d6b4a9e..5d3ec24 100644 --- a/include/criterion/assert.h +++ b/include/criterion/assert.h @@ -24,6 +24,7 @@ #ifndef CRITERION_ASSERT_H_ # define CRITERION_ASSERT_H_ +# include # include # include # include "criterion.h" @@ -40,7 +41,7 @@ enum criterion_assert_kind { do { \ int passed = !!(Condition); \ struct criterion_assert_stats stat = { \ - .kind = Kind, \ + .kind = (Kind), \ .condition = #Condition, \ .message = "" __VA_ARGS__, \ .passed = passed, \ @@ -48,16 +49,39 @@ enum criterion_assert_kind { .line = __LINE__, \ }; \ send_event(ASSERT, &stat, sizeof (stat)); \ - if (!passed && Kind == FATAL) \ + if (!passed && (Kind) == FATAL) \ return; \ } while (0) -# define expect(Condition, ...) assertImpl(NORMAL, Condition, __VA_ARGS__) -# define assert(Condition, ...) assertImpl(FATAL, Condition, __VA_ARGS__) +# define assert(Condition, ...) assertImpl(FATAL, (Condition), __VA_ARGS__) +# define expect(Condition, ...) assertImpl(NORMAL, (Condition), __VA_ARGS__) # define assertArrayEquals(A, B, Size, ...) \ - assertImpl(NORMAL, !memcmp((A), (B), Size), __VA_ARGS__) + assert(!memcmp((A), (B), (Size)), __VA_ARGS__) # define expectArrayEquals(A, B, Size, ...) \ - assertImpl(FATAL, !memcmp((A), (B), Size), __VA_ARGS__) + expect(!memcmp((A), (B), (Size)), __VA_ARGS__) + +# define assertEquals(Actual, Expected, ...) \ + assert((Actual) == (Expected), __VA_ARGS__) +# define expectEquals(Actual, Expected, ...) \ + expect((Actual) == (Expected), __VA_ARGS__) + +# define assertEquals(Actual, Expected, ...) \ + assert((Actual) == (Expected), __VA_ARGS__) +# define expectEquals(Actual, Expected, ...) \ + expect((Actual) == (Expected), __VA_ARGS__) + +# define assertNot(Condition, ...) assert(!(Condition), __VA_ARGS__) +# define expectNot(Condition, ...) expect(!(Condition), __VA_ARGS__) + +# define assertNotEquals(Actual, Expected, ...) \ + assert((Actual) != (Expected), __VA_ARGS__) +# define expectNotEquals(Actual, Expected, ...) \ + expect((Actual) != (Expected), __VA_ARGS__) + +# define assertArrayNotEquals(A, B, Size, ...) \ + assert(memcmp((A), (B), (Size)), __VA_ARGS__) +# define expectArrayNotEquals(A, B, Size, ...) \ + expect(memcmp((A), (B), (Size)), __VA_ARGS__) #endif /* !CRITERION_ASSERT_H_ */ From 3b1e8c144b0f54f3a7c81494a25559cd15d4dce9 Mon Sep 17 00:00:00 2001 From: Snaipe Date: Sat, 7 Feb 2015 12:40:51 +0100 Subject: [PATCH 2/2] [Issue #3] Added string asserts, fixed __VA_ARG__ dispatch --- include/criterion/assert.h | 53 +++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/include/criterion/assert.h b/include/criterion/assert.h index 5d3ec24..e832ca3 100644 --- a/include/criterion/assert.h +++ b/include/criterion/assert.h @@ -53,35 +53,40 @@ enum criterion_assert_kind { return; \ } while (0) -# define assert(Condition, ...) assertImpl(FATAL, (Condition), __VA_ARGS__) -# define expect(Condition, ...) assertImpl(NORMAL, (Condition), __VA_ARGS__) +# define assert(Condition, ...) assertImpl(FATAL, (Condition), ## __VA_ARGS__) +# define expect(Condition, ...) assertImpl(NORMAL, (Condition), ## __VA_ARGS__) -# define assertArrayEquals(A, B, Size, ...) \ - assert(!memcmp((A), (B), (Size)), __VA_ARGS__) -# define expectArrayEquals(A, B, Size, ...) \ - expect(!memcmp((A), (B), (Size)), __VA_ARGS__) +# define assertArraysEqual(A, B, Size, ...) \ + assert(!memcmp((A), (B), (Size)), ## __VA_ARGS__) +# define expectArraysEqual(A, B, Size, ...) \ + expect(!memcmp((A), (B), (Size)), ## __VA_ARGS__) -# define assertEquals(Actual, Expected, ...) \ - assert((Actual) == (Expected), __VA_ARGS__) -# define expectEquals(Actual, Expected, ...) \ - expect((Actual) == (Expected), __VA_ARGS__) +# define assertEqual(Actual, Expected, ...) \ + assert((Actual) == (Expected), ## __VA_ARGS__) +# define expectEqual(Actual, Expected, ...) \ + expect((Actual) == (Expected), ## __VA_ARGS__) -# define assertEquals(Actual, Expected, ...) \ - assert((Actual) == (Expected), __VA_ARGS__) -# define expectEquals(Actual, Expected, ...) \ - expect((Actual) == (Expected), __VA_ARGS__) +# define assertStringsEqual(Actual, Expected, ...) \ + assert(!strcmp((Actual), (Expected)), ## __VA_ARGS__) +# define expectStringsEqual(Actual, Expected, ...) \ + expect(!strcmp((Actual), (Expected)), ## __VA_ARGS__) -# define assertNot(Condition, ...) assert(!(Condition), __VA_ARGS__) -# define expectNot(Condition, ...) expect(!(Condition), __VA_ARGS__) +# define assertNot(Condition, ...) assert(!(Condition), ## __VA_ARGS__) +# define expectNot(Condition, ...) expect(!(Condition), ## __VA_ARGS__) -# define assertNotEquals(Actual, Expected, ...) \ - assert((Actual) != (Expected), __VA_ARGS__) -# define expectNotEquals(Actual, Expected, ...) \ - expect((Actual) != (Expected), __VA_ARGS__) +# define assertNotEqual(Actual, Expected, ...) \ + assert((Actual) != (Expected), ## __VA_ARGS__) +# define expectNotEqual(Actual, Expected, ...) \ + expect((Actual) != (Expected), ## __VA_ARGS__) -# define assertArrayNotEquals(A, B, Size, ...) \ - assert(memcmp((A), (B), (Size)), __VA_ARGS__) -# define expectArrayNotEquals(A, B, Size, ...) \ - expect(memcmp((A), (B), (Size)), __VA_ARGS__) +# define assertArraysNotEqual(A, B, Size, ...) \ + assert(memcmp((A), (B), (Size)), ## __VA_ARGS__) +# define expectArraysNotEqual(A, B, Size, ...) \ + expect(memcmp((A), (B), (Size)), ## __VA_ARGS__) + +# define assertStringsNotEqual(Actual, Expected, ...) \ + assert(strcmp((Actual), (Expected)), ## __VA_ARGS__) +# define expectStringsNotEqual(Actual, Expected, ...) \ + expect(strcmp((Actual), (Expected)), ## __VA_ARGS__) #endif /* !CRITERION_ASSERT_H_ */