From 5da21cd19b0e5ec86a47b70d32eb1c189ae082c3 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Tue, 16 Oct 2007 14:33:34 +0200 Subject: r25670: Add torture test for frsapi_IsPathReplicated(). Guenther (This used to be commit e7fc3c1da9764a2e7c103e05f3d774b540334f75) --- source4/torture/rpc/frsapi.c | 80 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) (limited to 'source4/torture/rpc') diff --git a/source4/torture/rpc/frsapi.c b/source4/torture/rpc/frsapi.c index d65d551554..a382b1e415 100644 --- a/source4/torture/rpc/frsapi.c +++ b/source4/torture/rpc/frsapi.c @@ -105,6 +105,83 @@ static bool test_DsPollingIntervalW(struct torture_context *tctx, return true; } +static bool test_IsPathReplicated_err(struct torture_context *tctx, + struct dcerpc_pipe *p, + const char *path, + uint32_t type, + WERROR werr) +{ + struct frsapi_IsPathReplicated r; + struct GUID guid; + uint32_t unknown1, unknown2, unknown3 = 0; + + ZERO_STRUCT(r); + + r.in.path = path; + r.in.replica_set_type = type; + r.out.unknown1 = &unknown1; + r.out.unknown2 = &unknown2; + r.out.unknown3 = &unknown3; + r.out.replica_set_guid = &guid; + + torture_assert_ntstatus_ok(tctx, + dcerpc_frsapi_IsPathReplicated(p, tctx, &r), + "IsPathReplicated failed"); + + torture_assert_werr_equal(tctx, r.out.result, werr, + "GetDsPollingIntervalW failed"); + + return true; +} + +static bool _test_IsPathReplicated(struct torture_context *tctx, + struct dcerpc_pipe *p, + const char *path, + uint32_t type) +{ + return test_IsPathReplicated_err(tctx, p, path, type, WERR_OK); +} + +static bool test_IsPathReplicated(struct torture_context *tctx, + struct dcerpc_pipe *p) +{ + const uint32_t lvls[] = { + FRSAPI_REPLICA_SET_TYPE_0, + FRSAPI_REPLICA_SET_TYPE_DOMAIN, + FRSAPI_REPLICA_SET_TYPE_DFS }; + int i; + + if (!test_IsPathReplicated_err(tctx, p, NULL, 0, + WERR_FRS_INVALID_SERVICE_PARAMETER)) { + return false; + } + + for (i=0; i