tort: Implement 'setup' and 'teardown' for DRSUAPI test cases.
authorKamen Mazdrashki <kamen.mazdrashki@postpath.com>
Fri, 28 Aug 2009 12:42:48 +0000 (15:42 +0300)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 8 Sep 2009 12:44:48 +0000 (22:44 +1000)
source4/torture/rpc/drsuapi.c
source4/torture/rpc/drsuapi.h

index da6ce2b5f5e83a92d5260137cc21f7c32d331c9f..ac16dc6e63b3692f48aa59f868f09224248e4514 100644 (file)
@@ -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;
index 98438cc9b7a770a64c20bb4868fab41835f3ffe0..e9a7dd5ad149245094b593d0a1335755e9928088 100644 (file)
@@ -24,6 +24,7 @@
 #include "librpc/gen_ndr/drsuapi.h"
 
 struct DsPrivate {
+       struct dcerpc_pipe *pipe;
        struct policy_handle bind_handle;
        struct GUID bind_guid;
        const char *domain_obj_dn;