diff options
-rw-r--r-- | source4/torture/nbt/winsreplication.c | 451 |
1 files changed, 113 insertions, 338 deletions
diff --git a/source4/torture/nbt/winsreplication.c b/source4/torture/nbt/winsreplication.c index a987890e07..6e47861c6c 100644 --- a/source4/torture/nbt/winsreplication.c +++ b/source4/torture/nbt/winsreplication.c @@ -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 */ { @@ -1849,60 +1786,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 */ @@ -2080,60 +1963,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 */ @@ -2311,60 +2140,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 */ |