1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-04 16:45:06 -05:00

Added abort_* unit test macros

These are for when a test failure makes it impossible to continue
running further tests.
This commit is contained in:
Dan Fandrich 2011-03-04 13:53:15 -08:00
parent 8511b6436c
commit 32aedf1d3d

View File

@ -9,6 +9,7 @@
#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" , \
@ -39,6 +40,31 @@
} while(0)
/* 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_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_test(msg) do { \
fprintf(stderr, "%s:%d test aborted: '%s'\n", \
__FILE__, __LINE__, msg); \
unitfail++; \
goto unit_test_abort; \
} while(0)
extern int unitfail;
@ -51,6 +77,8 @@ extern int unitfail;
} else {
#define UNITTEST_STOP \
goto unit_test_abort; /* avoid warning */ \
unit_test_abort: \
unit_stop(); \
} \
return unitfail; \