From: Günther Deschner Date: Wed, 18 Sep 2019 17:48:40 +0000 (+0200) Subject: torture: add torture_suite_add_ndr_pull_io_test_flags() X-Git-Tag: talloc-2.3.1~751 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fda5b839c705725301fc17562d08a927751b890b;p=thirdparty%2Fsamba.git torture: add torture_suite_add_ndr_pull_io_test_flags() Guenther Signed-off-by: Guenther Deschner Reviewed-by: Stefan Metzmacher --- diff --git a/source4/torture/ndr/ndr.c b/source4/torture/ndr/ndr.c index 683b24ac68c..08236acb281 100644 --- a/source4/torture/ndr/ndr.c +++ b/source4/torture/ndr/ndr.c @@ -152,6 +152,7 @@ static bool wrap_ndr_inout_pull_test(struct torture_context *tctx, ndr = ndr_pull_init_blob(&(data->data_context), tctx); torture_assert(tctx, ndr, "ndr init failed"); + ndr->flags |= data->flags; ndr->flags |= LIBNDR_FLAG_REF_ALLOC; torture_assert_ndr_success(tctx, @@ -174,6 +175,7 @@ static bool wrap_ndr_inout_pull_test(struct torture_context *tctx, ndr = ndr_pull_init_blob(&(data->data), tctx); torture_assert(tctx, ndr, "ndr init failed"); + ndr->flags |= data->flags; ndr->flags |= LIBNDR_FLAG_REF_ALLOC; torture_assert_ndr_success(tctx, @@ -204,6 +206,7 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pull_inout_test( DATA_BLOB db_in, DATA_BLOB db_out, size_t struct_size, + int flags, bool (*check_fn) (struct torture_context *ctx, void *data)) { struct torture_test *test; @@ -221,6 +224,7 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pull_inout_test( data->data = db_out; data->data_context = db_in; data->ndr_flags = 0; + data->flags = flags; data->struct_size = struct_size; data->pull_fn = pull_fn; test->data = data; diff --git a/source4/torture/ndr/ndr.h b/source4/torture/ndr/ndr.h index 5c9808d79a8..53b64e08813 100644 --- a/source4/torture/ndr/ndr.h +++ b/source4/torture/ndr/ndr.h @@ -41,6 +41,7 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pull_inout_test( DATA_BLOB db_in, DATA_BLOB db_out, size_t struct_size, + int flags, bool (*check_fn) (struct torture_context *ctx, void *data)); #define torture_suite_add_ndr_pull_test(suite,name,data,check_fn) \ @@ -112,6 +113,15 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pull_inout_test( data_blob_const(data_in, sizeof(data_in)), \ data_blob_const(data_out, sizeof(data_out)), \ sizeof(struct name), \ + 0, \ (bool (*) (struct torture_context *, void *)) check_fn_out); +#define torture_suite_add_ndr_pull_io_test_flags(suite,name,data_in,data_out,flags,check_fn_out) \ + _torture_suite_add_ndr_pull_inout_test(suite, #name "_INOUT_" #flags, \ + (ndr_pull_flags_fn_t)ndr_pull_ ## name, \ + data_blob_const(data_in, sizeof(data_in)), \ + data_blob_const(data_out, sizeof(data_out)), \ + sizeof(struct name), \ + flags, \ + (bool (*) (struct torture_context *, void *)) check_fn_out); #endif /* __TORTURE_NDR_H__ */