summaryrefslogtreecommitdiff
path: root/cpp/src/tests/InitialStatusMap.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2009-11-18 17:26:43 +0000
committerAlan Conway <aconway@apache.org>2009-11-18 17:26:43 +0000
commit1674d80b61862e1054140c96f5db9eb401b11f11 (patch)
tree1169853cb8f8376d7ebb078d28b2e76523302742 /cpp/src/tests/InitialStatusMap.cpp
parentbd3cae3b5691436369b4c37a570c766c1e8aafd2 (diff)
downloadqpid-python-1674d80b61862e1054140c96f5db9eb401b11f11.tar.gz
Added cluster option --cluster-size.
--cluster-size=N means that during start-up the cluster waits to have N members before accepting any clients. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@881839 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/InitialStatusMap.cpp')
-rw-r--r--cpp/src/tests/InitialStatusMap.cpp26
1 files changed, 20 insertions, 6 deletions
diff --git a/cpp/src/tests/InitialStatusMap.cpp b/cpp/src/tests/InitialStatusMap.cpp
index 70b077b695..c3587965e5 100644
--- a/cpp/src/tests/InitialStatusMap.cpp
+++ b/cpp/src/tests/InitialStatusMap.cpp
@@ -40,7 +40,7 @@ Status newcomerStatus(const Uuid& id=Uuid()) { return Status(ProtocolVersion(),
QPID_AUTO_TEST_CASE(testFirstInCluster) {
// Single member is first in cluster.
- InitialStatusMap map(MemberId(0));
+ InitialStatusMap map(MemberId(0), 1);
Uuid id(true);
BOOST_CHECK(!map.isComplete());
MemberSet members = list_of(MemberId(0));
@@ -56,7 +56,7 @@ QPID_AUTO_TEST_CASE(testFirstInCluster) {
QPID_AUTO_TEST_CASE(testJoinExistingCluster) {
// Single member 0 joins existing cluster 1,2
- InitialStatusMap map(MemberId(0));
+ InitialStatusMap map(MemberId(0), 1);
Uuid id(true);
MemberSet members = list_of(MemberId(0))(MemberId(1))(MemberId(2));
map.configChange(members);
@@ -79,7 +79,7 @@ QPID_AUTO_TEST_CASE(testJoinExistingCluster) {
QPID_AUTO_TEST_CASE(testMultipleFirstInCluster) {
// Multiple members 0,1,2 join at same time.
- InitialStatusMap map(MemberId(1)); // self is 1
+ InitialStatusMap map(MemberId(1), 1); // self is 1
Uuid id(true);
MemberSet members = list_of(MemberId(0))(MemberId(1))(MemberId(2));
map.configChange(members);
@@ -99,7 +99,7 @@ QPID_AUTO_TEST_CASE(testMultipleFirstInCluster) {
QPID_AUTO_TEST_CASE(testMultipleJoinExisting) {
// Multiple members 1,2,3 join existing cluster containing 0.
- InitialStatusMap map(MemberId(2)); // self is 2
+ InitialStatusMap map(MemberId(2), 1); // self is 2
Uuid id(true);
MemberSet members = list_of(MemberId(0))(MemberId(1))(MemberId(2))(MemberId(3));
map.configChange(members);
@@ -119,7 +119,7 @@ QPID_AUTO_TEST_CASE(testMultipleJoinExisting) {
QPID_AUTO_TEST_CASE(testMembersLeave) {
// Test that map completes if members leave rather than send status.
- InitialStatusMap map(MemberId(0));
+ InitialStatusMap map(MemberId(0), 1);
Uuid id(true);
map.configChange(list_of(MemberId(0))(MemberId(1))(MemberId(2)));
map.received(MemberId(0), newcomerStatus());
@@ -134,7 +134,7 @@ QPID_AUTO_TEST_CASE(testMembersLeave) {
QPID_AUTO_TEST_CASE(testInteveningConfig) {
// Multiple config changes arrives before we complete the map.
- InitialStatusMap map(MemberId(0));
+ InitialStatusMap map(MemberId(0), 1);
Uuid id(true);
map.configChange(list_of<MemberId>(0)(1));
@@ -159,6 +159,20 @@ QPID_AUTO_TEST_CASE(testInteveningConfig) {
BOOST_CHECK_EQUAL(map.getClusterId(), id);
}
+QPID_AUTO_TEST_CASE(testInitialSize) {
+ InitialStatusMap map(MemberId(0), 3);
+ map.configChange(list_of<MemberId>(0)(1));
+ map.received(MemberId(0), newcomerStatus());
+ map.received(MemberId(1), newcomerStatus());
+ BOOST_CHECK(!map.isComplete());
+
+ map.configChange(list_of<MemberId>(0)(1)(2));
+ map.received(MemberId(0), newcomerStatus());
+ map.received(MemberId(1), newcomerStatus());
+ map.received(MemberId(2), newcomerStatus());
+ BOOST_CHECK(map.isComplete());
+}
+
QPID_AUTO_TEST_SUITE_END()
}} // namespace qpid::tests