1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00

s4/tort: RPC-DRSUAPI test case refactored to match torture architecture

This commit is contained in:
Kamen Mazdrashki 2009-09-11 01:39:19 +03:00 committed by Andrew Bartlett
parent b24203fcb8
commit bb6fda8a9a
2 changed files with 74 additions and 68 deletions

View File

@ -50,11 +50,11 @@ bool test_DsBind(struct dcerpc_pipe *p,
return true;
}
static bool test_DsGetDomainControllerInfo(struct dcerpc_pipe *p,
struct torture_context *tctx,
static bool test_DsGetDomainControllerInfo(struct torture_context *tctx,
struct DsPrivate *priv)
{
NTSTATUS status;
struct dcerpc_pipe *p = priv->pipe;
struct drsuapi_DsGetDomainControllerInfo r;
union drsuapi_DsGetDCInfoCtr ctr;
int32_t level_out = 0;
@ -184,11 +184,11 @@ static bool test_DsGetDomainControllerInfo(struct dcerpc_pipe *p,
return true;
}
static bool test_DsWriteAccountSpn(struct dcerpc_pipe *p,
struct torture_context *tctx,
static bool test_DsWriteAccountSpn(struct torture_context *tctx,
struct DsPrivate *priv)
{
NTSTATUS status;
struct dcerpc_pipe *p = priv->pipe;
struct drsuapi_DsWriteAccountSpn r;
union drsuapi_DsWriteAccountSpnRequest req;
struct drsuapi_DsNameString names[2];
@ -224,11 +224,11 @@ static bool test_DsWriteAccountSpn(struct dcerpc_pipe *p,
return true;
}
static bool test_DsReplicaGetInfo(struct dcerpc_pipe *p,
struct torture_context *tctx,
static bool test_DsReplicaGetInfo(struct torture_context *tctx,
struct DsPrivate *priv)
{
NTSTATUS status;
struct dcerpc_pipe *p = priv->pipe;
struct drsuapi_DsReplicaGetInfo r;
union drsuapi_DsReplicaGetInfoRequest req;
union drsuapi_DsReplicaInfo info;
@ -353,11 +353,11 @@ static bool test_DsReplicaGetInfo(struct dcerpc_pipe *p,
return true;
}
static bool test_DsReplicaSync(struct dcerpc_pipe *p,
struct torture_context *tctx,
static bool test_DsReplicaSync(struct torture_context *tctx,
struct DsPrivate *priv)
{
NTSTATUS status;
struct dcerpc_pipe *p = priv->pipe;
int i;
struct drsuapi_DsReplicaSync r;
struct drsuapi_DsReplicaObjectIdentifier nc;
@ -411,11 +411,11 @@ static bool test_DsReplicaSync(struct dcerpc_pipe *p,
return true;
}
static bool test_DsReplicaUpdateRefs(struct dcerpc_pipe *p,
struct torture_context *tctx,
static bool test_DsReplicaUpdateRefs(struct torture_context *tctx,
struct DsPrivate *priv)
{
NTSTATUS status;
struct dcerpc_pipe *p = priv->pipe;
int i;
struct drsuapi_DsReplicaUpdateRefs r;
struct drsuapi_DsReplicaObjectIdentifier nc;
@ -465,11 +465,11 @@ static bool test_DsReplicaUpdateRefs(struct dcerpc_pipe *p,
return true;
}
static bool test_DsGetNCChanges(struct dcerpc_pipe *p,
struct torture_context *tctx,
static bool test_DsGetNCChanges(struct torture_context *tctx,
struct DsPrivate *priv)
{
NTSTATUS status;
struct dcerpc_pipe *p = priv->pipe;
int i;
struct drsuapi_DsGetNCChanges r;
union drsuapi_DsGetNCChangesRequest req;
@ -575,11 +575,11 @@ static bool test_DsGetNCChanges(struct dcerpc_pipe *p,
return true;
}
bool test_QuerySitesByCost(struct dcerpc_pipe *p,
struct torture_context *tctx,
bool test_QuerySitesByCost(struct torture_context *tctx,
struct DsPrivate *priv)
{
NTSTATUS status;
struct dcerpc_pipe *p = priv->pipe;
struct drsuapi_QuerySitesByCost r;
union drsuapi_QuerySitesByCostRequest req;
@ -640,59 +640,6 @@ bool test_DsUnbind(struct dcerpc_pipe *p,
return true;
}
bool torture_rpc_drsuapi(struct torture_context *torture)
{
NTSTATUS status;
struct dcerpc_pipe *p;
bool ret = true;
struct DsPrivate *priv;
struct cli_credentials *machine_credentials;
priv = talloc_zero(torture, struct DsPrivate);
priv->join = torture_join_domain(torture, TEST_MACHINE_NAME, ACB_SVRTRUST,
&machine_credentials);
if (!priv->join) {
torture_fail(torture, "Failed to join as BDC");
}
status = torture_rpc_connection(torture,
&p,
&ndr_table_drsuapi);
if (!NT_STATUS_IS_OK(status)) {
torture_leave_domain(torture, priv->join);
torture_fail(torture, "Unable to connect to DRSUAPI pipe");
}
/* cache pipe handle */
priv->pipe = p;
ret &= test_DsBind(p, torture, priv);
#if 0
ret &= test_QuerySitesByCost(p, torture, priv);
#endif
ret &= test_DsGetDomainControllerInfo(p, torture, priv);
ret &= test_DsCrackNames(torture, priv);
ret &= test_DsWriteAccountSpn(p, torture, priv);
ret &= test_DsReplicaGetInfo(p, torture, priv);
ret &= test_DsReplicaSync(p, torture, priv);
ret &= test_DsReplicaUpdateRefs(p, torture, priv);
ret &= test_DsGetNCChanges(p, torture, priv);
ret &= test_DsUnbind(p, torture, priv);
torture_leave_domain(torture, priv->join);
talloc_free(priv);
return ret;
}
/**
* Helper func to collect DC information for testing purposes.
@ -789,3 +736,62 @@ bool torture_drsuapi_tcase_teardown_common(struct torture_context *tctx, struct
return true;
}
/**
* Test case setup for DRSUAPI test case
*/
static bool torture_drsuapi_tcase_setup(struct torture_context *tctx, void **data)
{
struct DsPrivate *priv;
*data = priv = talloc_zero(tctx, struct DsPrivate);
return torture_drsuapi_tcase_setup_common(tctx, priv);
}
/**
* Test case tear-down for DRSUAPI test case
*/
static bool torture_drsuapi_tcase_teardown(struct torture_context *tctx, void *data)
{
bool ret;
struct DsPrivate *priv = talloc_get_type(data, struct DsPrivate);
ret = torture_drsuapi_tcase_teardown_common(tctx, priv);
talloc_free(priv);
return ret;
}
/**
* DRSUAPI test case implementation
*/
void torture_rpc_drsuapi_tcase(struct torture_suite *suite)
{
typedef bool (*run_func) (struct torture_context *test, void *tcase_data);
struct torture_test *test;
struct torture_tcase *tcase = torture_suite_add_tcase(suite, "DRSUAPI");
torture_tcase_set_fixture(tcase,
torture_drsuapi_tcase_setup,
torture_drsuapi_tcase_teardown);
#if 0
test = torture_tcase_add_simple_test(tcase, "QuerySitesByCost", (run_func)test_QuerySitesByCost);
#endif
test = torture_tcase_add_simple_test(tcase, "DsGetDomainControllerInfo", (run_func)test_DsGetDomainControllerInfo);
test = torture_tcase_add_simple_test(tcase, "DsCrackNames", (run_func)test_DsCrackNames);
test = torture_tcase_add_simple_test(tcase, "DsWriteAccountSpn", (run_func)test_DsWriteAccountSpn);
test = torture_tcase_add_simple_test(tcase, "DsReplicaGetInfo", (run_func)test_DsReplicaGetInfo);
test = torture_tcase_add_simple_test(tcase, "DsReplicaSync", (run_func)test_DsReplicaSync);
test = torture_tcase_add_simple_test(tcase, "DsReplicaUpdateRefs", (run_func)test_DsReplicaUpdateRefs);
test = torture_tcase_add_simple_test(tcase, "DsGetNCChanges", (run_func)test_DsGetNCChanges);
}

View File

@ -489,7 +489,7 @@ NTSTATUS torture_rpc_init(void)
torture_suite_add_simple_test(suite, "SAMBA3-SPOOLSS", torture_samba3_rpc_spoolss);
torture_suite_add_simple_test(suite, "SAMBA3-WKSSVC", torture_samba3_rpc_wkssvc);
torture_suite_add_simple_test(suite, "SAMBA3-WINREG", torture_samba3_rpc_winreg);
torture_suite_add_simple_test(suite, "DRSUAPI", torture_rpc_drsuapi);
torture_rpc_drsuapi_tcase(suite);
torture_rpc_drsuapi_cracknames_tcase(suite);
torture_suite_add_suite(suite, torture_rpc_dssetup(suite));
torture_suite_add_suite(suite, torture_rpc_browser(suite));