diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/torture/nbt/winsreplication.c | 321 |
1 files changed, 321 insertions, 0 deletions
diff --git a/source4/torture/nbt/winsreplication.c b/source4/torture/nbt/winsreplication.c index 1a72a18116..fb09c50f65 100644 --- a/source4/torture/nbt/winsreplication.c +++ b/source4/torture/nbt/winsreplication.c @@ -6463,6 +6463,327 @@ static BOOL test_conflict_owned_active_vs_replica(struct test_wrepl_conflict_con .apply_expected = False }, }, +/* + * special group vs. unique section + */ + /* + * sgroup,active vs. unique,active with same ip(s), unchecked + */ + { + .line = __location__, + .name = _NBT_NAME("_SA_UA_SI_U", 0x1C, NULL), + .wins = { + .nb_flags = NBT_NM_GROUP, + .mhomed = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = True + }, + .defend = { + .timeout = 0, + }, + .replica= { + .type = WREPL_TYPE_UNIQUE, + .state = WREPL_STATE_ACTIVE, + .node = WREPL_NODE_B, + .is_static = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = False + }, + }, + /* + * sgroup,active vs. unique,active with different ip(s), unchecked + */ + { + .line = __location__, + .name = _NBT_NAME("_SA_UA_DI_U", 0x1C, NULL), + .wins = { + .nb_flags = NBT_NM_GROUP, + .mhomed = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = True + }, + .defend = { + .timeout = 0, + }, + .replica= { + .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 = False + }, + }, + /* + * sgroup,active vs. unique,tombstone with same ip(s), unchecked + */ + { + .line = __location__, + .name = _NBT_NAME("_SA_UT_SI_U", 0x1C, NULL), + .wins = { + .nb_flags = NBT_NM_GROUP, + .mhomed = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = True + }, + .defend = { + .timeout = 0, + }, + .replica= { + .type = WREPL_TYPE_UNIQUE, + .state = WREPL_STATE_TOMBSTONE, + .node = WREPL_NODE_B, + .is_static = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = False + }, + }, + /* + * sgroup,active vs. unique,tombstone with different ip(s), unchecked + */ + { + .line = __location__, + .name = _NBT_NAME("_SA_UT_DI_U", 0x1C, NULL), + .wins = { + .nb_flags = NBT_NM_GROUP, + .mhomed = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = True + }, + .defend = { + .timeout = 0, + }, + .replica= { + .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 + }, + }, +/* + * special group vs. normal group section + */ + /* + * sgroup,active vs. group,active with same ip(s), unchecked + */ + { + .line = __location__, + .name = _NBT_NAME("_SA_GA_SI_U", 0x1C, NULL), + .wins = { + .nb_flags = NBT_NM_GROUP, + .mhomed = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = True + }, + .defend = { + .timeout = 0, + }, + .replica= { + .type = WREPL_TYPE_GROUP, + .state = WREPL_STATE_ACTIVE, + .node = WREPL_NODE_B, + .is_static = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = False + }, + }, + /* + * sgroup,active vs. group,active with different ip(s), unchecked + */ + { + .line = __location__, + .name = _NBT_NAME("_SA_GA_DI_U", 0x1C, NULL), + .wins = { + .nb_flags = NBT_NM_GROUP, + .mhomed = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = True + }, + .defend = { + .timeout = 0, + }, + .replica= { + .type = WREPL_TYPE_GROUP, + .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 + }, + }, + /* + * sgroup,active vs. group,tombstone with same ip(s), unchecked + */ + { + .line = __location__, + .name = _NBT_NAME("_SA_GT_SI_U", 0x1C, NULL), + .wins = { + .nb_flags = NBT_NM_GROUP, + .mhomed = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = True + }, + .defend = { + .timeout = 0, + }, + .replica= { + .type = WREPL_TYPE_GROUP, + .state = WREPL_STATE_TOMBSTONE, + .node = WREPL_NODE_B, + .is_static = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = False + }, + }, + /* + * sgroup,active vs. group,tombstone with different ip(s), unchecked + */ + { + .line = __location__, + .name = _NBT_NAME("_SA_GT_DI_U", 0x1C, NULL), + .wins = { + .nb_flags = NBT_NM_GROUP, + .mhomed = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = True + }, + .defend = { + .timeout = 0, + }, + .replica= { + .type = WREPL_TYPE_GROUP, + .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 + }, + }, +/* + * special group vs. multi homed section + */ + /* + * sgroup,active vs. mhomed,active with same ip(s), unchecked + */ + { + .line = __location__, + .name = _NBT_NAME("_SA_MA_SI_U", 0x1C, NULL), + .wins = { + .nb_flags = NBT_NM_GROUP, + .mhomed = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = True + }, + .defend = { + .timeout = 0, + }, + .replica= { + .type = WREPL_TYPE_MHOMED, + .state = WREPL_STATE_ACTIVE, + .node = WREPL_NODE_B, + .is_static = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = False + }, + }, + /* + * sgroup,active vs. mhomed,active with different ip(s), unchecked + */ + { + .line = __location__, + .name = _NBT_NAME("_SA_MA_DI_U", 0x1C, NULL), + .wins = { + .nb_flags = NBT_NM_GROUP, + .mhomed = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = True + }, + .defend = { + .timeout = 0, + }, + .replica= { + .type = WREPL_TYPE_MHOMED, + .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 + }, + }, + /* + * sgroup,active vs. mhomed,tombstone with same ip(s), unchecked + */ + { + .line = __location__, + .name = _NBT_NAME("_SA_MT_SI_U", 0x1C, NULL), + .wins = { + .nb_flags = NBT_NM_GROUP, + .mhomed = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = True + }, + .defend = { + .timeout = 0, + }, + .replica= { + .type = WREPL_TYPE_MHOMED, + .state = WREPL_STATE_TOMBSTONE, + .node = WREPL_NODE_B, + .is_static = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = False + }, + }, + /* + * sgroup,active vs. mhomed,tombstone with different ip(s), unchecked + */ + { + .line = __location__, + .name = _NBT_NAME("_SA_MT_DI_U", 0x1C, NULL), + .wins = { + .nb_flags = NBT_NM_GROUP, + .mhomed = False, + .num_ips = ctx->addresses_1_num, + .ips = ctx->addresses_1, + .apply_expected = True + }, + .defend = { + .timeout = 0, + }, + .replica= { + .type = WREPL_TYPE_MHOMED, + .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 + }, + }, }; if (!ctx) return False; |