summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/lib/util/tests/file.c3
-rw-r--r--source4/torture/ui.c2
-rw-r--r--source4/torture/ui.h27
3 files changed, 29 insertions, 3 deletions
diff --git a/source4/lib/util/tests/file.c b/source4/lib/util/tests/file.c
index 66a3b81dca..0fe117a300 100644
--- a/source4/lib/util/tests/file.c
+++ b/source4/lib/util/tests/file.c
@@ -39,6 +39,9 @@ static bool test_file_load_save(struct torture_context *tctx)
torture_assert(tctx, file_save(TEST_FILENAME, TEST_DATA, strlen(TEST_DATA)),
"saving file");
+ torture_assert_file_contains_text(tctx, TEST_FILENAME, TEST_DATA,
+ "file contents");
+
data = file_load(TEST_FILENAME, &len, mem_ctx);
torture_assert(tctx, data, "loading file");
diff --git a/source4/torture/ui.c b/source4/torture/ui.c
index aa0e06d401..003582179e 100644
--- a/source4/torture/ui.c
+++ b/source4/torture/ui.c
@@ -56,7 +56,7 @@ void torture_warning(struct torture_context *context, const char *comment, ...)
}
void torture_result(struct torture_context *context,
- enum torture_result result, const char *fmt, ...)
+ enum torture_result result, const char *fmt, ...)
{
va_list ap;
diff --git a/source4/torture/ui.h b/source4/torture/ui.h
index fe35c8362c..4dd5e45300 100644
--- a/source4/torture/ui.h
+++ b/source4/torture/ui.h
@@ -235,12 +235,35 @@ void torture_result(struct torture_context *test,
} \
} while(0)
+#define torture_assert_file_contains_text(torture_ctx,filename,expected,cmt)\
+ do { \
+ char *__got; \
+ const char *__expected = (expected); \
+ size_t __size; \
+ __got = file_load(filename, &__size, torture_ctx); \
+ if (__got == NULL) { \
+ torture_result(torture_ctx, TORTURE_FAIL, \
+ __location__": unable to open %s: %s\n", \
+ filename, cmt); \
+ return false; \
+ } \
+ \
+ if (strcmp_safe(__got, __expected) != 0) { \
+ torture_result(torture_ctx, TORTURE_FAIL, \
+ __location__": %s contained:\n%sExpected: %s%s\n", \
+ filename, __got, __expected, cmt); \
+ talloc_free(__got); \
+ return false; \
+ } \
+ talloc_free(__got); \
+ } while(0)
+
#define torture_assert_int_equal(torture_ctx,got,expected,cmt)\
do { int __got = (got), __expected = (expected); \
if (__got != __expected) { \
torture_result(torture_ctx, TORTURE_FAIL, \
- __location__": "#got" was %d, expected %d: %s", \
- __got, __expected, cmt); \
+ __location__": "#got" was %d, expected %d: %s", \
+ __got, __expected, cmt); \
return false; \
} \
} while(0)