Author: gd
Date: 2007-10-18 21:23:25 +0000 (Thu, 18 Oct 2007)
New Revision: 25699

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25699

Log:
Add ForceReplication test.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
   branches/SAMBA_4_0/source/torture/rpc/frsapi.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/frsapi.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/frsapi.idl     2007-10-18 19:25:58 UTC 
(rev 25698)
+++ branches/SAMBA_4_0/source/librpc/idl/frsapi.idl     2007-10-18 21:23:25 UTC 
(rev 25699)
@@ -94,8 +94,8 @@
        /* Function 0x0a */
        /* not supported before w2k3 sp2 */
        WERROR frsapi_ForceReplication(
-               [in] uint32 unknown1,
-               [in] uint32 unknown2,
+               [in,unique] GUID *guid1,
+               [in,unique] GUID *guid2,
                [in,unique] [charset(UTF16),string] uint16 *replica_set,
                [in,unique] [charset(UTF16),string] uint16 *partner_name
        );

Modified: branches/SAMBA_4_0/source/torture/rpc/frsapi.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/frsapi.c      2007-10-18 19:25:58 UTC 
(rev 25698)
+++ branches/SAMBA_4_0/source/torture/rpc/frsapi.c      2007-10-18 21:23:25 UTC 
(rev 25699)
@@ -24,6 +24,7 @@
 #include "torture/rpc/rpc.h"
 #include "librpc/gen_ndr/ndr_frsapi_c.h"
 #include "torture/util.h"
+#include "param/param.h"
 
 static bool test_GetDsPollingIntervalW(struct torture_context *tctx,
                                       struct dcerpc_pipe *p,
@@ -150,16 +151,17 @@
                FRSAPI_REPLICA_SET_TYPE_DOMAIN,
                FRSAPI_REPLICA_SET_TYPE_DFS };
        int i;
+       bool ret = true;
 
        if (!test_IsPathReplicated_err(tctx, p, NULL, 0,
                                       WERR_FRS_INVALID_SERVICE_PARAMETER)) {
-               return false;
+               ret = false;
        }
 
        for (i=0; i<ARRAY_SIZE(lvls); i++) {
                if (!_test_IsPathReplicated(tctx, p, dcerpc_server_name(p),
                                            lvls[i])) {
-                       return false;
+                       ret = false;
                }
        }
 
@@ -167,7 +169,7 @@
                const char *path = talloc_asprintf(tctx, "\\\\%s\\SYSVOL",
                                                   dcerpc_server_name(p));
                if (!_test_IsPathReplicated(tctx, p, path, lvls[i])) {
-                       return false;
+                       ret = false;
                }
        }
 
@@ -175,10 +177,33 @@
                if (!_test_IsPathReplicated(tctx, p,
                                            "C:\\windows\\sysvol\\domain",
                                            lvls[i])) {
-                       return false;
+                       ret = false;
                }
        }
 
+       return ret;
+}
+
+static bool test_ForceReplication(struct torture_context *tctx,
+                                 struct dcerpc_pipe *p)
+{
+       struct frsapi_ForceReplication r;
+
+       ZERO_STRUCT(r);
+
+       r.in.guid1 = NULL;
+       r.in.guid2 = NULL;
+       r.in.replica_set = talloc_asprintf(tctx, "%s",
+                                          lp_realm(global_loadparm));
+       r.in.partner_name = dcerpc_server_name(p);
+
+       torture_assert_ntstatus_ok(tctx,
+               dcerpc_frsapi_ForceReplication(p, tctx, &r),
+               "ForceReplication failed");
+
+       torture_assert_werr_ok(tctx, r.out.result,
+                              "ForceReplication failed");
+
        return true;
 }
 
@@ -197,5 +222,9 @@
        test = torture_rpc_tcase_add_test(tcase, "IsPathReplicated",
                                          test_IsPathReplicated);
 
+       test = torture_rpc_tcase_add_test(tcase, "ForceReplication",
+                                         test_ForceReplication);
+
+
        return suite;
 }

Reply via email to