r11177: move unique vs * and normal group vs * into this form
authorStefan Metzmacher <metze@samba.org>
Wed, 19 Oct 2005 07:47:29 +0000 (07:47 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:44:56 +0000 (13:44 -0500)
ACTIVE vs ACTIVE
ACTIVE   vs TOMBSTONE
RELEASED vs ACTIVE
RELEASED vs TOMBSTONE
TOMBSTONE vs ACTIVE
TOMBSTONE vs TOMBSTONE

as it seems that is all we need to test,
and w2k3 only decides between ACTIVE and NON-ACTIVE (REALEASED or TOMBSTONE)
when it gets new replica objects

also I have removed all the extra test, we only test the worst cases now,
and this will make the algorithms more clear when you look at the output
of the NBT-WINSREPLICATION torture test

metze

source/torture/nbt/winsreplication.c

index a987890e072106629f74615bb2e5fcdea1cc6455..6e47861c6c287feac7ace251a14685449b327b7f 100644 (file)
@@ -812,13 +812,12 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
  * unique vs unique section
  */
        /* 
-        * unique,active vs. unique,active the same ip
+        * unique,active vs. unique,active
         * => should be replaced
         */
        {
                .line   = __location__,
                .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
-               .extra  = True,
                .r1     = {
                        .owner          = &ctx->a,
                        .type           = WREPL_TYPE_UNIQUE,
@@ -835,14 +834,14 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                        .state          = WREPL_STATE_ACTIVE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_A_1),
-                       .ips            = addresses_A_1,
+                       .num_ips        = ARRAY_SIZE(addresses_B_1),
+                       .ips            = addresses_B_1,
                        .apply_expected = True
                }
        },
 
        /* 
-        * unique,active vs. unique,tombstone the same ips
+        * unique,active vs. unique,tombstone
         * => should NOT be replaced
         */
        {
@@ -865,29 +864,28 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                        .state          = WREPL_STATE_TOMBSTONE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
+                       .num_ips        = ARRAY_SIZE(addresses_A_1),
+                       .ips            = addresses_A_1,
                        .apply_expected = False
                }
        },
 
        /* 
-        * unique,tombstone vs. unique,active the same ips
-        * => should NOT be replaced
+        * unique,released vs. unique,active
+        * => should be replaced
         */
        {
                .line   = __location__,
                .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
-               .extra  = True,
                .r1     = {
                        .owner          = &ctx->b,
                        .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_TOMBSTONE,
+                       .state          = WREPL_STATE_RELEASED,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
                        .num_ips        = ARRAY_SIZE(addresses_B_1),
                        .ips            = addresses_B_1,
-                       .apply_expected = True
+                       .apply_expected = False
                },
                .r2     = {
                        .owner          = &ctx->a,
@@ -895,36 +893,6 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                        .state          = WREPL_STATE_ACTIVE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
-                       .apply_expected = True
-               }
-       },
-
-       /* 
-        * unique,tombstone vs. unique,tombstone the same ips
-        * => should be replaced
-        */
-       {
-               .line   = __location__,
-               .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
-               .extra  = True,
-               .r1     = {
-                       .owner          = &ctx->a,
-                       .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_TOMBSTONE,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_A_1),
-                       .ips            = addresses_A_1,
-                       .apply_expected = True
-               },
-               .r2     = {
-                       .owner          = &ctx->b,
-                       .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_TOMBSTONE,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
                        .num_ips        = ARRAY_SIZE(addresses_A_1),
                        .ips            = addresses_A_1,
                        .apply_expected = True
@@ -932,7 +900,7 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
        },
 
        /* 
-        * unique,active vs. unique,active the different ips
+        * unique,released vs. unique,tombstone
         * => should be replaced
         */
        {
@@ -941,57 +909,27 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                .r1     = {
                        .owner          = &ctx->a,
                        .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_ACTIVE,
+                       .state          = WREPL_STATE_RELEASED,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
                        .num_ips        = ARRAY_SIZE(addresses_A_1),
                        .ips            = addresses_A_1,
-                       .apply_expected = True
+                       .apply_expected = False
                },
                .r2     = {
                        .owner          = &ctx->b,
                        .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_ACTIVE,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
-                       .apply_expected = True
-               }
-       },
-
-       /* 
-        * unique,active vs. unique,tombstone the different ips
-        * => should NOT be replaced
-        */
-       {
-               .line   = __location__,
-               .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
-               .extra  = True,
-               .r1     = {
-                       .owner          = &ctx->b,
-                       .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_ACTIVE,
+                       .state          = WREPL_STATE_TOMBSTONE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
                        .num_ips        = ARRAY_SIZE(addresses_B_1),
                        .ips            = addresses_B_1,
                        .apply_expected = True
-               },
-               .r2     = {
-                       .owner          = &ctx->a,
-                       .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_TOMBSTONE,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_A_1),
-                       .ips            = addresses_A_1,
-                       .apply_expected = False
                }
        },
 
        /* 
-        * unique,tombstone vs. unique,active the different ips
+        * unique,tombstone vs. unique,active
         * => should be replaced
         */
        {
@@ -1020,7 +958,7 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
        },
 
        /* 
-        * unique,tombstone vs. unique,tombstone the different ips
+        * unique,tombstone vs. unique,tombstone
         * => should be replaced
         */
        {
@@ -1048,6 +986,7 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                }
        },
 
+
 /*
  * unique vs normal groups section,
  */
@@ -1081,7 +1020,7 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
        },
 
        /* 
-        * unique,active vs. group,tombstone same ip
+        * unique,active vs. group,tombstone
         * => should NOT be replaced
         */
        {
@@ -1110,61 +1049,60 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
        },
 
        /* 
-        * unique,active vs. group,tombstone different ip
-        * => should NOT be replaced
+        * unique,released vs. group,active
+        * => should be replaced
         */
        {
                .line   = __location__,
                .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
-               .extra  = True,
                .r1     = {
                        .owner          = &ctx->a,
                        .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_ACTIVE,
+                       .state          = WREPL_STATE_RELEASED,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
                        .num_ips        = ARRAY_SIZE(addresses_A_1),
                        .ips            = addresses_A_1,
-                       .apply_expected = True
+                       .apply_expected = False
                },
                .r2     = {
                        .owner          = &ctx->b,
                        .type           = WREPL_TYPE_GROUP,
-                       .state          = WREPL_STATE_TOMBSTONE,
+                       .state          = WREPL_STATE_ACTIVE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
                        .num_ips        = ARRAY_SIZE(addresses_B_1),
                        .ips            = addresses_B_1,
-                       .apply_expected = False
+                       .apply_expected = True
                }
        },
 
        /* 
-        * unique,active vs. group,released
-        * => should NOT be replaced
+        * unique,released vs. group,tombstone
+        * => should be replaced
         */
        {
                .line   = __location__,
                .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
                .r1     = {
-                       .owner          = &ctx->a,
+                       .owner          = &ctx->b,
                        .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_ACTIVE,
+                       .state          = WREPL_STATE_RELEASED,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_A_1),
-                       .ips            = addresses_A_1,
-                       .apply_expected = True
+                       .num_ips        = ARRAY_SIZE(addresses_B_1),
+                       .ips            = addresses_B_1,
+                       .apply_expected = False
                },
                .r2     = {
-                       .owner          = &ctx->b,
+                       .owner          = &ctx->a,
                        .type           = WREPL_TYPE_GROUP,
-                       .state          = WREPL_STATE_RELEASED,
+                       .state          = WREPL_STATE_TOMBSTONE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
                        .num_ips        = ARRAY_SIZE(addresses_A_1),
                        .ips            = addresses_A_1,
-                       .apply_expected = False
+                       .apply_expected = True
                }
        },
 
@@ -1226,9 +1164,12 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                }
        },
 
+/*
+ * unique vs special groups section,
+ */
        /* 
-        * unique,tombstone vs. group,released
-        * => should be replaced
+        * unique,active vs. sgroup,active
+        * => should NOT be replaced
         */
        {
                .line   = __location__,
@@ -1236,7 +1177,7 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                .r1     = {
                        .owner          = &ctx->a,
                        .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_TOMBSTONE,
+                       .state          = WREPL_STATE_ACTIVE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
                        .num_ips        = ARRAY_SIZE(addresses_A_1),
@@ -1245,79 +1186,48 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                },
                .r2     = {
                        .owner          = &ctx->b,
-                       .type           = WREPL_TYPE_GROUP,
-                       .state          = WREPL_STATE_RELEASED,
+                       .type           = WREPL_TYPE_SGROUP,
+                       .state          = WREPL_STATE_ACTIVE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
-                       .apply_expected = True
+                       .num_ips        = ARRAY_SIZE(addresses_A_1),
+                       .ips            = addresses_A_1,
+                       .apply_expected = False
                }
        },
 
        /* 
-        * unique,released vs. group,released
-        * => should be replaced
-        *
-        * here we need a 2nd round to make sure
-        * released vs. released is handled correct
+        * unique,active vs. sgroup,tombstone
+        * => should NOT be replaced
         */
        {
                .line   = __location__,
                .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
                .r1     = {
-                       .owner          = &ctx->b,
-                       .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_RELEASED,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
-                       .apply_expected = False
-               },
-               .r2     = {
                        .owner          = &ctx->a,
-                       .type           = WREPL_TYPE_GROUP,
-                       .state          = WREPL_STATE_RELEASED,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_A_1),
-                       .ips            = addresses_A_1,
-                       .apply_expected = True
-               }
-       },
-       {
-               .line   = __location__,
-               .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
-               .cleanup= True,
-               .r1     = {
-                       .owner          = &ctx->b,
                        .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_TOMBSTONE,
+                       .state          = WREPL_STATE_ACTIVE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
                        .num_ips        = ARRAY_SIZE(addresses_A_1),
                        .ips            = addresses_A_1,
-                       .apply_expected = False /* this should conflict with the group.released above */
+                       .apply_expected = True
                },
                .r2     = {
-                       .owner          = &ctx->a,
-                       .type           = WREPL_TYPE_GROUP,
+                       .owner          = &ctx->b,
+                       .type           = WREPL_TYPE_SGROUP,
                        .state          = WREPL_STATE_TOMBSTONE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
                        .num_ips        = ARRAY_SIZE(addresses_A_1),
                        .ips            = addresses_A_1,
-                       .apply_expected = True
+                       .apply_expected = False
                }
        },
 
-/*
- * unique vs special groups section,
- */
        /* 
-        * unique,active vs. sgroup,active
-        * => should NOT be replaced
+        * unique,released vs. sgroup,active
+        * => should be replaced
         */
        {
                .line   = __location__,
@@ -1325,12 +1235,12 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                .r1     = {
                        .owner          = &ctx->a,
                        .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_ACTIVE,
+                       .state          = WREPL_STATE_RELEASED,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
                        .num_ips        = ARRAY_SIZE(addresses_A_1),
                        .ips            = addresses_A_1,
-                       .apply_expected = True
+                       .apply_expected = False
                },
                .r2     = {
                        .owner          = &ctx->b,
@@ -1338,38 +1248,38 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                        .state          = WREPL_STATE_ACTIVE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_A_1),
-                       .ips            = addresses_A_1,
-                       .apply_expected = False
+                       .num_ips        = ARRAY_SIZE(addresses_B_3_4),
+                       .ips            = addresses_B_3_4,
+                       .apply_expected = True
                }
        },
 
        /* 
-        * unique,active vs. sgroup,tombstone
-        * => should NOT be replaced
+        * unique,released vs. sgroup,tombstone
+        * => should be replaced
         */
        {
                .line   = __location__,
                .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
                .r1     = {
-                       .owner          = &ctx->a,
+                       .owner          = &ctx->b,
                        .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_ACTIVE,
+                       .state          = WREPL_STATE_RELEASED,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_A_1),
-                       .ips            = addresses_A_1,
-                       .apply_expected = True
+                       .num_ips        = ARRAY_SIZE(addresses_B_1),
+                       .ips            = addresses_B_1,
+                       .apply_expected = False
                },
                .r2     = {
-                       .owner          = &ctx->b,
+                       .owner          = &ctx->a,
                        .type           = WREPL_TYPE_SGROUP,
                        .state          = WREPL_STATE_TOMBSTONE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_A_1),
-                       .ips            = addresses_A_1,
-                       .apply_expected = False
+                       .num_ips        = ARRAY_SIZE(addresses_A_3_4),
+                       .ips            = addresses_A_3_4,
+                       .apply_expected = True
                }
        },
 
@@ -1431,12 +1341,11 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                }
        },
 
-
 /*
  * unique vs multi homed section,
  */
        /* 
-        * unique,active vs. mhomed,active with different ips
+        * unique,active vs. mhomed,active
         * => should be replaced
         */
        {
@@ -1465,21 +1374,20 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
        },
 
        /* 
-        * unique,active vs. mhomed,tombstone with different ips
+        * unique,active vs. mhomed,tombstone
         * => should NOT be replaced
         */
        {
                .line   = __location__,
                .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
-               .extra  = True,
                .r1     = {
                        .owner          = &ctx->b,
                        .type           = WREPL_TYPE_UNIQUE,
                        .state          = WREPL_STATE_ACTIVE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
+                       .num_ips        = ARRAY_SIZE(addresses_B_3_4),
+                       .ips            = addresses_B_3_4,
                        .apply_expected = True
                },
                .r2     = {
@@ -1488,15 +1396,15 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                        .state          = WREPL_STATE_TOMBSTONE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_A_3_4),
-                       .ips            = addresses_A_3_4,
+                       .num_ips        = ARRAY_SIZE(addresses_B_3_4),
+                       .ips            = addresses_B_3_4,
                        .apply_expected = False
                }
        },
 
        /* 
-        * unique,active vs. mhomed,tombstone with same ips
-        * => should NOT be replaced
+        * unique,released vs. mhomed,active
+        * => should be replaced
         */
        {
                .line   = __location__,
@@ -1504,27 +1412,56 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                .r1     = {
                        .owner          = &ctx->b,
                        .type           = WREPL_TYPE_UNIQUE,
+                       .state          = WREPL_STATE_RELEASED,
+                       .node           = WREPL_NODE_B,
+                       .is_static      = False,
+                       .num_ips        = ARRAY_SIZE(addresses_B_1),
+                       .ips            = addresses_B_1,
+                       .apply_expected = False
+               },
+               .r2     = {
+                       .owner          = &ctx->a,
+                       .type           = WREPL_TYPE_MHOMED,
                        .state          = WREPL_STATE_ACTIVE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_3_4),
-                       .ips            = addresses_B_3_4,
+                       .num_ips        = ARRAY_SIZE(addresses_A_3_4),
+                       .ips            = addresses_A_3_4,
                        .apply_expected = True
+               }
+       },
+
+       /* 
+        * unique,released vs. mhomed,tombstone
+        * => should be replaced
+        */
+       {
+               .line   = __location__,
+               .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
+               .r1     = {
+                       .owner          = &ctx->a,
+                       .type           = WREPL_TYPE_UNIQUE,
+                       .state          = WREPL_STATE_RELEASED,
+                       .node           = WREPL_NODE_B,
+                       .is_static      = False,
+                       .num_ips        = ARRAY_SIZE(addresses_A_1),
+                       .ips            = addresses_A_1,
+                       .apply_expected = False
                },
                .r2     = {
-                       .owner          = &ctx->a,
+                       .owner          = &ctx->b,
                        .type           = WREPL_TYPE_MHOMED,
                        .state          = WREPL_STATE_TOMBSTONE,
                        .node           = WREPL_NODE_B,
                        .is_static      = False,
                        .num_ips        = ARRAY_SIZE(addresses_B_3_4),
                        .ips            = addresses_B_3_4,
-                       .apply_expected = False
+                       .apply_expected = True
                }
        },
 
        /* 
-        * unique,tombstone vs. mhomed,active with different ips
+        * unique,tombstone vs. mhomed,active
         * => should be replaced
         */
        {
@@ -1553,7 +1490,7 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
        },
 
        /* 
-        * unique,tombstone vs. mhomed,tombstone with different ips
+        * unique,tombstone vs. mhomed,tombstone
         * => should be replaced
         */
        {
@@ -1848,60 +1785,6 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                }
        },
 
-       /* 
-        * group,released vs. group,released
-        * => should be replaced
-        */
-       {
-               .line   = __location__,
-               .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
-               .r1     = {
-                       .owner          = &ctx->b,
-                       .type           = WREPL_TYPE_GROUP,
-                       .state          = WREPL_STATE_RELEASED,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
-                       .apply_expected = False
-               },
-               .r2     = {
-                       .owner          = &ctx->a,
-                       .type           = WREPL_TYPE_GROUP,
-                       .state          = WREPL_STATE_RELEASED,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_A_1),
-                       .ips            = addresses_A_1,
-                       .apply_expected = True
-               }
-       },
-       {
-               .line   = __location__,
-               .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
-               .cleanup= True,
-               .r1     = {
-                       .owner          = &ctx->b,
-                       .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_TOMBSTONE,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
-                       .apply_expected = False
-               },
-               .r2     = {
-                       .owner          = &ctx->a,
-                       .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_TOMBSTONE,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_A_1),
-                       .ips            = addresses_A_1,
-                       .apply_expected = True
-               }
-       },
-
        /* 
         * group,released vs. group,tombstone
         * => should be replaced
@@ -2079,60 +1962,6 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                }
        },
 
-       /* 
-        * group,released vs. sgroup,released
-        * => should NOT be replaced
-        */
-       {
-               .line   = __location__,
-               .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
-               .r1     = {
-                       .owner          = &ctx->b,
-                       .type           = WREPL_TYPE_GROUP,
-                       .state          = WREPL_STATE_RELEASED,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
-                       .apply_expected = False
-               },
-               .r2     = {
-                       .owner          = &ctx->a,
-                       .type           = WREPL_TYPE_SGROUP,
-                       .state          = WREPL_STATE_RELEASED,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
-                       .apply_expected = False
-               }
-       },
-       {
-               .line   = __location__,
-               .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
-               .cleanup= True,
-               .r1     = {
-                       .owner          = &ctx->a,
-                       .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_TOMBSTONE,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_A_1),
-                       .ips            = addresses_A_1,
-                       .apply_expected = False
-               },
-               .r2     = {
-                       .owner          = &ctx->b,
-                       .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_TOMBSTONE,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
-                       .apply_expected = True
-               }
-       },
-
        /* 
         * group,released vs. sgroup,tombstone
         * => should NOT be replaced
@@ -2310,60 +2139,6 @@ static BOOL test_conflict_different_owner(struct test_wrepl_conflict_conn *ctx)
                }
        },
 
-       /* 
-        * group,released vs. mhomed,released
-        * => should NOT be replaced
-        */
-       {
-               .line   = __location__,
-               .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
-               .r1     = {
-                       .owner          = &ctx->b,
-                       .type           = WREPL_TYPE_GROUP,
-                       .state          = WREPL_STATE_RELEASED,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
-                       .apply_expected = False
-               },
-               .r2     = {
-                       .owner          = &ctx->a,
-                       .type           = WREPL_TYPE_MHOMED,
-                       .state          = WREPL_STATE_RELEASED,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
-                       .apply_expected = False
-               }
-       },
-       {
-               .line   = __location__,
-               .name   = _NBT_NAME("_DIFF_OWNER", 0x00, NULL),
-               .cleanup= True,
-               .r1     = {
-                       .owner          = &ctx->a,
-                       .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_TOMBSTONE,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_A_1),
-                       .ips            = addresses_A_1,
-                       .apply_expected = False
-               },
-               .r2     = {
-                       .owner          = &ctx->b,
-                       .type           = WREPL_TYPE_UNIQUE,
-                       .state          = WREPL_STATE_TOMBSTONE,
-                       .node           = WREPL_NODE_B,
-                       .is_static      = False,
-                       .num_ips        = ARRAY_SIZE(addresses_B_1),
-                       .ips            = addresses_B_1,
-                       .apply_expected = True
-               }
-       },
-
        /* 
         * group,released vs. mhomed,tombstone
         * => should NOT be replaced