From 1f516287ef0cbd5efe8969899c5a90c36c80ceef Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnther=20Deschner?= Date: Wed, 1 Jul 2015 16:58:06 +0200 Subject: [PATCH] s4-torture: add more tests for clusapi_OpenResource(). MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Guenther Signed-off-by: Günther Deschner Reviewed-by: José A. Rivera --- source4/torture/rpc/clusapi.c | 44 ++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/source4/torture/rpc/clusapi.c b/source4/torture/rpc/clusapi.c index f6f3ff5b9b6..b3a7369b924 100644 --- a/source4/torture/rpc/clusapi.c +++ b/source4/torture/rpc/clusapi.c @@ -387,10 +387,12 @@ static bool test_SetQuorumResource(struct torture_context *tctx, return true; } -bool test_OpenResource_int(struct torture_context *tctx, - struct dcerpc_pipe *p, - const char *lpszResourceName, - struct policy_handle *hResource) +static bool test_OpenResource_int_exp(struct torture_context *tctx, + struct dcerpc_pipe *p, + const char *lpszResourceName, + struct policy_handle *hResource, + WERROR expected_Status, + WERROR expected_rpc_status) { struct dcerpc_binding_handle *b = p->binding_handle; struct clusapi_OpenResource r; @@ -405,13 +407,27 @@ bool test_OpenResource_int(struct torture_context *tctx, torture_assert_ntstatus_ok(tctx, dcerpc_clusapi_OpenResource_r(b, tctx, &r), "OpenResource failed"); - torture_assert_werr_ok(tctx, - *r.out.Status, + torture_assert_werr_equal(tctx, + *r.out.Status, expected_Status, + "OpenResource failed"); + torture_assert_werr_equal(tctx, + *r.out.rpc_status, expected_rpc_status, "OpenResource failed"); return true; } +bool test_OpenResource_int(struct torture_context *tctx, + struct dcerpc_pipe *p, + const char *lpszResourceName, + struct policy_handle *hResource) +{ + return test_OpenResource_int_exp(tctx, p, + lpszResourceName, + hResource, + WERR_OK, WERR_OK); +} + static bool test_OpenResourceEx_int(struct torture_context *tctx, struct dcerpc_pipe *p, const char *lpszResourceName, @@ -476,6 +492,22 @@ static bool test_OpenResource(struct torture_context *tctx, test_CloseResource_int(tctx, t->p, &hResource); + if (!test_OpenResource_int_exp(tctx, t->p, "", &hResource, WERR_RESOURCE_NOT_FOUND, WERR_OK)) { + return false; + } + + torture_assert(tctx, + ndr_policy_handle_empty(&hResource), + "expected empty policy handle"); + + if (!test_OpenResource_int_exp(tctx, t->p, "jfUF38fjSNcfn", &hResource, WERR_RESOURCE_NOT_FOUND, WERR_OK)) { + return false; + } + + torture_assert(tctx, + ndr_policy_handle_empty(&hResource), + "expected empty policy handle"); + return true; } -- 2.34.1