From f76eafe7d77bb1c3bf6d93a01324d5cf4913c0b7 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 22 May 2006 18:59:29 +0000 Subject: r15818: Improve UI utilities: allow format strings and add some convenience macros. (This used to be commit f0a4547b76bdc04c4dd32fccbb1a37a040868588) --- source4/torture/ui.h | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) (limited to 'source4/torture/ui.h') 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); -- cgit