svn commit: samba r15818 - in branches/SAMBA_4_0/source/torture: .

jelmer at samba.org jelmer at samba.org
Mon May 22 18:59:30 GMT 2006


Author: jelmer
Date: 2006-05-22 18:59:29 +0000 (Mon, 22 May 2006)
New Revision: 15818

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15818

Log:
Improve UI utilities: allow format strings and add some convenience macros.

Modified:
   branches/SAMBA_4_0/source/torture/ui.c
   branches/SAMBA_4_0/source/torture/ui.h


Changeset:
Modified: branches/SAMBA_4_0/source/torture/ui.c
===================================================================
--- branches/SAMBA_4_0/source/torture/ui.c	2006-05-22 18:52:54 UTC (rev 15817)
+++ branches/SAMBA_4_0/source/torture/ui.c	2006-05-22 18:59:29 UTC (rev 15818)
@@ -62,18 +62,31 @@
 
 void torture_ok(struct torture_test *test)
 {
-	test->context->ui_ops->test_result(test, TORTURE_OK);
+	test->context->ui_ops->test_result(test, TORTURE_OK, NULL);
 	test->context->success++;
 }
 
-void torture_fail(struct torture_test *test)
+void torture_fail(struct torture_test *test, const char *fmt, ...) _PRINTF_ATTRIBUTE(2,3)
 {
-	test->context->ui_ops->test_result(test, TORTURE_FAIL);
+	va_list ap;
+	char *reason;
+	va_start(ap, fmt);
+	reason = talloc_vasprintf(test, fmt, ap);
+	va_end(ap);
+	test->context->ui_ops->test_result(test, TORTURE_FAIL, reason);
+	talloc_free(reason);
+
 	test->context->failed++;
 }
 
-void torture_skip(struct torture_test *test)
+void torture_skip(struct torture_test *test, const char *fmt, ...) _PRINTF_ATTRIBUTE(2,3)
 {
-	test->context->ui_ops->test_result(test, TORTURE_SKIP);
+	va_list ap;
+	char *reason;
+	va_start(ap, fmt);
+	reason = talloc_vasprintf(test, fmt, ap);
+	va_end(ap);
+	test->context->ui_ops->test_result(test, TORTURE_SKIP, reason);
+	talloc_free(reason);
 	test->context->skipped++;
 }

Modified: branches/SAMBA_4_0/source/torture/ui.h
===================================================================
--- branches/SAMBA_4_0/source/torture/ui.h	2006-05-22 18:52:54 UTC (rev 15817)
+++ branches/SAMBA_4_0/source/torture/ui.h	2006-05-22 18:59:29 UTC (rev 15818)
@@ -32,7 +32,8 @@
 {
 	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 @@
 	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);



More information about the samba-cvs mailing list