From 5e3759d122aac95fd3a99898e37f64d76e4eeee8 Mon Sep 17 00:00:00 2001 From: Kamen Mazdrashki Date: Fri, 28 Aug 2009 15:42:48 +0300 Subject: tort: Implement 'setup' and 'teardown' for DRSUAPI test cases. --- source4/torture/rpc/drsuapi.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'source4/torture/rpc/drsuapi.c') diff --git a/source4/torture/rpc/drsuapi.c b/source4/torture/rpc/drsuapi.c index da6ce2b5f5..ac16dc6e63 100644 --- a/source4/torture/rpc/drsuapi.c +++ b/source4/torture/rpc/drsuapi.c @@ -772,7 +772,50 @@ bool torture_rpc_drsuapi(struct torture_context *torture) return ret; } +bool torture_rpc_drsuapi_tcase_setup(struct torture_context *tctx, void **data) +{ + NTSTATUS status; + struct DsPrivate *priv; + struct cli_credentials *machine_credentials; + + *data = priv = talloc_zero(tctx, struct DsPrivate); + torture_assert(tctx, priv, "Not enough memory"); + + torture_comment(tctx, "Create DRSUAPI pipe"); + status = torture_rpc_connection(tctx, + &priv->pipe, + &ndr_table_drsuapi); + torture_assert(tctx, NT_STATUS_IS_OK(status), "Unable to connect to DRSUAPI pipe"); + + torture_comment(tctx, "Connected to DRSUAPI pipe\n"); + priv->join = torture_join_domain(tctx, TEST_MACHINE_NAME, ACB_SVRTRUST, + &machine_credentials); + torture_assert(tctx, priv->join, "Failed to join as BDC"); + + if (!test_DsBind(priv->pipe, tctx, priv)) { + /* clean up */ + torture_rpc_drsuapi_tcase_teardown(tctx, priv); + torture_fail(tctx, "Failed execute test_DsBind()"); + } + + return true; +} + +bool torture_rpc_drsuapi_tcase_teardown(struct torture_context *tctx, void *data) +{ + struct DsPrivate *priv = (struct DsPrivate *)data; + + if (priv->join) { + torture_leave_domain(tctx, priv->join); + } + + talloc_free(priv); + + return true; +} + +/* bool torture_rpc_drsuapi_cracknames(struct torture_context *torture) { NTSTATUS status; -- cgit