From d946eeba71660b68d77f4a2d2bcf3609d472c2c7 Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Tue, 1 Jan 2019 09:18:12 -0500 Subject: basic testing of NDEBUG and assert() --- assert.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 assert.c diff --git a/assert.c b/assert.c new file mode 100644 index 0000000..9b4f0ae --- /dev/null +++ b/assert.c @@ -0,0 +1,41 @@ +#include +#include "test.h" + +void test_assert(void) +{ + int n = 0; + + testing_header("assert.h"); + +#define NDEBUG +#include + testing_comment("Expression with side-effect should be removed by preprocessor"); + test_void(assert(n = 1)); + test_int_equals(n, 0); + +#undef NDEBUG +#include + testing_comment("Expression with side-effect should execute"); + test_void(assert(n = 1)); + test_int_equals(n, 1); + +#define NDEBUG +#include + testing_comment("Successful assertion should be removed by preprocessor"); + test_void(assert(n == 1)); + +#undef NDEBUG +#include + testing_comment("Successful assertion should execute"); + test_void(assert(n == 1)); + +#define NDEBUG +#include + testing_comment("Unsuccessful assertion should be removed by preprocessor"); + test_void(assert(n == 0)); + +#undef NDEBUG +#include + testing_comment("Unsuccessful assertion should execute"); + test_void(assert(n == 0)); +} -- cgit v1.2.1