diff options
author | Günther Deschner <gd@samba.org> | 2015-06-26 16:45:21 +0200 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2015-07-03 02:00:27 +0200 |
commit | 6d3f7620d2ed0cdc7183d01eff8a0ac2fb55e788 (patch) | |
tree | 496c45c6902ec38a09b043dbc59f2dc4ee446362 /source4/torture/ndr | |
parent | c82aed878ef5fe0994999ada4ee6f37e98027f31 (diff) | |
download | samba-6d3f7620d2ed0cdc7183d01eff8a0ac2fb55e788.tar.gz |
s4-torture: add torture_ndr_push_struct_blob_flags() in order to manipulate push flags.
Guenther
Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source4/torture/ndr')
-rw-r--r-- | source4/torture/ndr/ndr.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/source4/torture/ndr/ndr.c b/source4/torture/ndr/ndr.c index 3ca74767ddb..fe3070579be 100644 --- a/source4/torture/ndr/ndr.c +++ b/source4/torture/ndr/ndr.c @@ -34,6 +34,23 @@ struct ndr_pull_test_data { int flags; }; +static enum ndr_err_code torture_ndr_push_struct_blob_flags(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, uint32_t flags, uint32_t ndr_flags, const void *p, ndr_push_flags_fn_t fn) +{ + struct ndr_push *ndr; + ndr = ndr_push_init_ctx(mem_ctx); + NDR_ERR_HAVE_NO_MEMORY(ndr); + + ndr->flags |= ndr_flags; + + NDR_CHECK(fn(ndr, flags, p)); + + *blob = ndr_push_blob(ndr); + talloc_steal(mem_ctx, blob->data); + talloc_free(ndr); + + return NDR_ERR_SUCCESS; +} + static bool wrap_ndr_pullpush_test(struct torture_context *tctx, struct torture_tcase *tcase, struct torture_test *test) @@ -70,7 +87,7 @@ static bool wrap_ndr_pullpush_test(struct torture_context *tctx, if (data->push_fn != NULL) { DATA_BLOB outblob; - torture_assert_ndr_success(tctx, ndr_push_struct_blob(&outblob, ndr, ds, data->push_fn), "pushing"); + torture_assert_ndr_success(tctx, torture_ndr_push_struct_blob_flags(&outblob, ndr, data->ndr_flags, ndr->flags, ds, data->push_fn), "pushing"); torture_assert_data_blob_equal(tctx, outblob, data->data, "ndr push compare"); } |