summaryrefslogtreecommitdiff
path: root/source4/torture/ui.h
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2006-05-22 18:59:29 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:08:27 -0500
commitf76eafe7d77bb1c3bf6d93a01324d5cf4913c0b7 (patch)
tree97b92b70b9be638c175bbd9939f32300f692d764 /source4/torture/ui.h
parent20532d7c495d75e35453ce22c383fe24925e8f00 (diff)
downloadsamba-f76eafe7d77bb1c3bf6d93a01324d5cf4913c0b7.tar.gz
samba-f76eafe7d77bb1c3bf6d93a01324d5cf4913c0b7.tar.bz2
samba-f76eafe7d77bb1c3bf6d93a01324d5cf4913c0b7.zip
r15818: Improve UI utilities: allow format strings and add some convenience macros.
(This used to be commit f0a4547b76bdc04c4dd32fccbb1a37a040868588)
Diffstat (limited to 'source4/torture/ui.h')
-rw-r--r--source4/torture/ui.h39
1 files changed, 38 insertions, 1 deletions
diff --git a/source4/torture/ui.h b/source4/torture/ui.h
index bf9ff80eb2..f115291bcd 100644
--- a/source4/torture/ui.h
+++ b/source4/torture/ui.h
@@ -32,7 +32,8 @@ struct torture_ui_ops
{
void (*comment) (struct torture_test *, const char *);
void (*test_start) (struct torture_test *);
- void (*test_result) (struct torture_test *, enum torture_result);
+ void (*test_result) (struct torture_test *, enum torture_result,
+ const char *reason);
};
struct torture_test
@@ -55,3 +56,39 @@ struct torture_context
int success;
int failed;
};
+
+#define torture_assert(ctx,expr,string) \
+ if (!(expr)) { \
+ torture_fail(ctx, "%s:%d (%s): %s", __FILE__, __LINE__, string, \
+ __STRING(expr)); \
+ return False; \
+ }
+
+#define torture_assert_werr_equal(ctx,got,expected,string) \
+ if (!W_ERROR_EQUAL(got, expected)) { \
+ torture_fail(ctx, "%s:%d (%s): got %s, expected %s", __FILE__, \
+ __LINE__, string, win_errstr(got), win_errstr(expected)); \
+ return False; \
+ }
+
+#define torture_assert_ntstatus_equal(ctx,got,expected,string) \
+ if (!NT_STATUS_EQUAL(got, expected)) { \
+ torture_fail(ctx, "%s:%d (%s): got %s, expected %s", __FILE__, \
+ __LINE__, string, nt_errstr(got), nt_errstr(expected)); \
+ return False; \
+ }
+
+/* Convenience macros */
+
+#define torture_assert_ntstatus_ok(ctx,expr,string) \
+ torture_assert_ntstatus_equal(ctx,expr,NT_STATUS_OK,string)
+
+#define torture_assert_werr_ok(ctx,expr,string) \
+ torture_assert_werr_equal(ctx,expr,WERR_OK,string)
+
+struct torture_test *torture_test(struct torture_context *ctx, const char *name, const char *description);
+struct torture_test *torture_subtest(struct torture_test *parent, const char *name, const char *description);
+void torture_comment(struct torture_test *test, const char *comment, ...) _PRINTF_ATTRIBUTE(2,3);
+void torture_ok(struct torture_test *test);
+void torture_fail(struct torture_test *test, const char *reason, ...) _PRINTF_ATTRIBUTE(2,3);;
+void torture_skip(struct torture_test *test, const char *reason, ...) _PRINTF_ATTRIBUTE(2,3);