torture: add torture_assert_goto() convenience macro
authorKamen Mazdrashki <kamenim@samba.org>
Sat, 27 Mar 2010 01:04:09 +0000 (03:04 +0200)
committerKamen Mazdrashki <kamenim@samba.org>
Fri, 9 Apr 2010 09:21:26 +0000 (12:21 +0300)
lib/torture/torture.h

index cb2c02ba3e0e5de1ec86f8f4280be643e5243336..af61ac189f8dfffb62c2381ed2c7d543daffa253 100644 (file)
@@ -238,6 +238,13 @@ void torture_result(struct torture_context *test,
                return false; \
        }
 
+#define torture_assert_goto(torture_ctx,expr,ret,label,cmt) \
+       if (!(expr)) { \
+               torture_result(torture_ctx, TORTURE_FAIL, __location__": Expression `%s' failed: %s", __STRING(expr), cmt); \
+               ret = false; \
+               goto label; \
+       }
+
 #define torture_assert_werr_equal(torture_ctx, got, expected, cmt) \
        do { WERROR __got = got, __expected = expected; \
        if (!W_ERROR_EQUAL(__got, __expected)) { \