[Arb] the number of members in initial_member_list can be odd number
This commit is contained in:
@ -128,21 +128,24 @@ TEST_F(TestLogConfigMgr, test_set_initial_member_list)
|
||||
LogConfigVersion config_version;
|
||||
init_test_log_config_env(addr1, default_config_info, cm);
|
||||
// arb_member is self
|
||||
EXPECT_EQ(OB_NOT_SUPPORTED, cm.set_initial_member_list(init_member_list, ObMember(addr1, 0), 3, learner_list, 1, config_version));
|
||||
EXPECT_EQ(OB_NOT_SUPPORTED, cm.set_initial_member_list(init_member_list, ObMember(addr1, 0), 2, learner_list, 1, config_version));
|
||||
// arb_member overlaps with member_list
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, cm.set_initial_member_list(init_member_list, ObMember(addr2, 0), 3, learner_list, 1, config_version));
|
||||
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, cm.set_initial_member_list(init_member_list, ObMember(addr2, 0), 2, learner_list, 1, config_version));
|
||||
// invalid replica_num
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, cm.set_initial_member_list(init_member_list, ObMember(addr3, 0), 3, learner_list, 1, config_version));
|
||||
// arb_member overlaps with learners
|
||||
learner_list.add_learner(ObMember(addr4, 0));
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, cm.set_initial_member_list(init_member_list, ObMember(addr4, 0), 3, learner_list, 1, config_version));
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, cm.set_initial_member_list(init_member_list, ObMember(addr4, 0), 2, learner_list, 1, config_version));
|
||||
// do not reach majority
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, cm.set_initial_member_list(init_member_list, ObMember(addr5, 0), 4, learner_list, 1, config_version));
|
||||
// learners overlap with member_list
|
||||
init_member_list.add_server(addr4);
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, cm.set_initial_member_list(init_member_list, ObMember(addr5, 0), 3, learner_list, 1, config_version));
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, cm.set_initial_member_list(init_member_list, ObMember(addr5, 0), 4, learner_list, 1, config_version));
|
||||
|
||||
init_member_list.add_server(addr3);
|
||||
learner_list.reset();
|
||||
// do not reach majority
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, cm.set_initial_member_list(init_member_list, ObMember(addr5, 0), 3, learner_list, 1, config_version));
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, cm.set_initial_member_list(init_member_list, ObMember(addr5, 0), 2, learner_list, 1, config_version));
|
||||
EXPECT_EQ(OB_SUCCESS, cm.set_initial_member_list(init_member_list, ObMember(addr5, 0), 4, learner_list, 1, config_version));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user