]> granicus.if.org Git - curl/commitdiff
Added abort_* unit test macros
authorDan Fandrich <dan@coneharvesters.com>
Fri, 4 Mar 2011 21:53:15 +0000 (13:53 -0800)
committerDan Fandrich <dan@coneharvesters.com>
Fri, 4 Mar 2011 21:53:15 +0000 (13:53 -0800)
These are for when a test failure makes it impossible to continue
running further tests.

tests/unit/curlcheck.h

index 9d738430cff4dd53f2af20be5efc90ab84757498..9525dd6fb511e2ff395ad000f7bffb8ae2fa8b67 100644 (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" ,  \
   } 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;                              \