diff options
author | Daniel Stenberg <daniel@haxx.se> | 2020-12-29 17:21:24 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2020-12-29 17:21:24 +0100 |
commit | b12cf5503b4dd143a0c08a3d15e3ce0e5ae1791e (patch) | |
tree | 6d296fc63e3db17b459e9eaea84d5b9faa89ebb2 | |
parent | 52b0f9bea270d858e7e8d14399dd1425e09ffbc4 (diff) | |
download | curl-bagder/clang-extra-semi-stmt.tar.gz |
tests/unit: fix empty statements with no effectbagder/clang-extra-semi-stmt
... by making macros use "do {} while(0)"
-rw-r--r-- | tests/unit/curlcheck.h | 84 |
1 files changed, 47 insertions, 37 deletions
diff --git a/tests/unit/curlcheck.h b/tests/unit/curlcheck.h index 88bbdcb52..3651551b3 100644 --- a/tests/unit/curlcheck.h +++ b/tests/unit/curlcheck.h @@ -22,29 +22,35 @@ #include "test.h" /* The fail macros mark the current test step as failed, and continue */ -#define fail_if(expr, msg) \ - if(expr) { \ - fprintf(stderr, "%s:%d Assertion '%s' met: %s\n", \ - __FILE__, __LINE__, #expr, msg); \ - unitfail++; \ - } +#define fail_if(expr, msg) \ + do { \ + if(expr) { \ + fprintf(stderr, "%s:%d Assertion '%s' met: %s\n", \ + __FILE__, __LINE__, #expr, msg); \ + unitfail++; \ + } \ + } while(0) -#define fail_unless(expr, msg) \ - if(!(expr)) { \ - fprintf(stderr, "%s:%d Assertion '%s' failed: %s\n", \ - __FILE__, __LINE__, #expr, msg); \ - unitfail++; \ - } +#define fail_unless(expr, msg) \ + do { \ + if(!(expr)) { \ + fprintf(stderr, "%s:%d Assertion '%s' failed: %s\n", \ + __FILE__, __LINE__, #expr, msg); \ + unitfail++; \ + } \ + } while(0) -#define verify_memory(dynamic, check, len) \ - if(dynamic && memcmp(dynamic, check, len)) { \ - fprintf(stderr, "%s:%d Memory buffer mismatch size %d. '%s' is not\n", \ - __FILE__, __LINE__, len, \ - hexdump((const unsigned char *)check, len)); \ - fprintf(stderr, "%s:%d the same as '%s'\n", __FILE__, __LINE__, \ - hexdump((const unsigned char *)dynamic, len)); \ - unitfail++; \ - } +#define verify_memory(dynamic, check, len) \ + do { \ + if(dynamic && memcmp(dynamic, check, len)) { \ + fprintf(stderr, "%s:%d Memory buffer mismatch size %d. '%s' is not\n", \ + __FILE__, __LINE__, len, \ + hexdump((const unsigned char *)check, len)); \ + fprintf(stderr, "%s:%d the same as '%s'\n", __FILE__, __LINE__, \ + hexdump((const unsigned char *)dynamic, len)); \ + unitfail++; \ + } \ + } while(0) /* fail() is for when the test case figured out by itself that a check proved a failure */ @@ -56,23 +62,28 @@ /* The abort macros mark the current test step as failed, and exit the test */ -#define abort_if(expr, msg) \ - if(expr) { \ - fprintf(stderr, "%s:%d Abort assertion '%s' met: %s\n", \ - __FILE__, __LINE__, #expr, msg); \ - unitfail++; \ - goto unit_test_abort; \ - } +#define abort_if(expr, msg) \ + do { \ + if(expr) { \ + fprintf(stderr, "%s:%d Abort assertion '%s' met: %s\n", \ + __FILE__, __LINE__, #expr, msg); \ + unitfail++; \ + goto unit_test_abort; \ + } \ + } while(0) -#define abort_unless(expr, msg) \ - if(!(expr)) { \ - fprintf(stderr, "%s:%d Abort assertion '%s' failed: %s\n", \ - __FILE__, __LINE__, #expr, msg); \ - unitfail++; \ - goto unit_test_abort; \ - } +#define abort_unless(expr, msg) \ + do { \ + if(!(expr)) { \ + fprintf(stderr, "%s:%d Abort assertion '%s' failed: %s\n", \ + __FILE__, __LINE__, #expr, msg); \ + unitfail++; \ + goto unit_test_abort; \ + } \ + } while(0) -#define abort_test(msg) do { \ +#define abort_test(msg) \ + do { \ fprintf(stderr, "%s:%d test aborted: '%s'\n", \ __FILE__, __LINE__, msg); \ unitfail++; \ @@ -80,7 +91,6 @@ } while(0) - extern int unitfail; #define UNITTEST_START \ |