diff options
author | Alan Conway <aconway@apache.org> | 2008-09-15 19:39:22 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2008-09-15 19:39:22 +0000 |
commit | fa79886b733eb0d17782e435c9eebebcc73ae608 (patch) | |
tree | 3c31521ce353b16ba3709963353b3c4e8885a695 /qpid/cpp/src/tests/ClusterMapTest.cpp | |
parent | e4b313f1120a520d353808ff48cc0d37d9e3728d (diff) | |
download | qpid-python-fa79886b733eb0d17782e435c9eebebcc73ae608.tar.gz |
Cluster member stalling, cluster map updates and unit tests.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@695593 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/tests/ClusterMapTest.cpp')
-rw-r--r-- | qpid/cpp/src/tests/ClusterMapTest.cpp | 74 |
1 files changed, 50 insertions, 24 deletions
diff --git a/qpid/cpp/src/tests/ClusterMapTest.cpp b/qpid/cpp/src/tests/ClusterMapTest.cpp index cce0efb69f..f8ac2e22e6 100644 --- a/qpid/cpp/src/tests/ClusterMapTest.cpp +++ b/qpid/cpp/src/tests/ClusterMapTest.cpp @@ -38,13 +38,13 @@ Url url(const char* host) { return Url(TcpAddress(host)); } QPID_AUTO_TEST_CASE(testNotice) { ClusterMap m; - BOOST_CHECK(!m.urlNotice(id(0), url("0-ready"))); // id(0) member, no dump. + m.ready(id(0), url("0-ready")); // id(0) member, no dump. BOOST_CHECK(m.isMember(id(0))); BOOST_CHECK_EQUAL(m.dumps(id(0)), 0); BOOST_CHECK_EQUAL(m.memberCount(), (unsigned)1); BOOST_CHECK_EQUAL(m.dumpeeCount(), (unsigned)0); - BOOST_CHECK_EQUAL(id(0), m.urlNotice(id(1), url("1-dump"))); // Newbie, needs dump + BOOST_CHECK_EQUAL(id(0), m.dumpRequest(id(1), url("1-dump"))); // Newbie, needs dump BOOST_CHECK(m.isMember(id(0))); BOOST_CHECK(m.isDumpee(id(1))); BOOST_CHECK_EQUAL(m.dumps(id(0)), 1); @@ -52,7 +52,7 @@ QPID_AUTO_TEST_CASE(testNotice) { BOOST_CHECK_EQUAL(m.memberCount(), (unsigned)1); BOOST_CHECK_EQUAL(m.dumpeeCount(), (unsigned)1); - BOOST_CHECK(!m.urlNotice(id(1), url("1-ready"))); // id(1) is ready. + m.ready(id(1), url("1-ready")); // id(1) is ready. BOOST_CHECK(m.isMember(id(0))); BOOST_CHECK(m.isMember(id(1))); BOOST_CHECK_EQUAL(m.dumps(id(0)), 0); @@ -60,25 +60,25 @@ QPID_AUTO_TEST_CASE(testNotice) { BOOST_CHECK_EQUAL(m.memberCount(), (unsigned)2); BOOST_CHECK_EQUAL(m.dumpeeCount(), (unsigned)0); - BOOST_CHECK_EQUAL(id(0), m.urlNotice(id(2), url("2-dump"))); // id(2) needs dump + BOOST_CHECK_EQUAL(id(0), m.dumpRequest(id(2), url("2-dump"))); // id(2) needs dump BOOST_CHECK(m.isDumpee(id(2))); BOOST_CHECK_EQUAL(m.dumps(id(0)), 1); BOOST_CHECK_EQUAL(m.dumpeeCount(), (unsigned)1); - BOOST_CHECK_EQUAL(id(1), m.urlNotice(id(3), url("3-dump"))); // 0 busy, dump to id(1). + BOOST_CHECK_EQUAL(id(1), m.dumpRequest(id(3), url("3-dump"))); // 0 busy, dump to id(1). BOOST_CHECK(m.isDumpee(id(3))); BOOST_CHECK_EQUAL(m.dumps(id(0)), 1); BOOST_CHECK_EQUAL(m.dumps(id(1)), 1); BOOST_CHECK_EQUAL(m.dumpeeCount(), (unsigned)2); - BOOST_CHECK_EQUAL(id(0), m.urlNotice(id(4), url("4-dump"))); // Equally busy, 0 is first on list. + BOOST_CHECK_EQUAL(id(0), m.dumpRequest(id(4), url("4-dump"))); // Equally busy, 0 is first on list. BOOST_CHECK_EQUAL(m.dumps(id(0)), 2); BOOST_CHECK_EQUAL(m.dumps(id(1)), 1); BOOST_CHECK_EQUAL(m.dumpeeCount(), (unsigned)3); // My dumpees both complete - BOOST_CHECK(!m.urlNotice(id(2), url("2-ready"))); - BOOST_CHECK(!m.urlNotice(id(4), url("4-ready"))); + m.ready(id(2), url("2-ready")); + m.ready(id(4), url("4-ready")); BOOST_CHECK(m.isMember(id(2))); BOOST_CHECK(m.isMember(id(4))); BOOST_CHECK_EQUAL(m.dumps(id(0)), 0); @@ -86,7 +86,7 @@ QPID_AUTO_TEST_CASE(testNotice) { BOOST_CHECK_EQUAL(m.dumpeeCount(), (unsigned)1); // Final dumpee completes. - BOOST_CHECK(!m.urlNotice(id(3), url("3-ready"))); + m.ready(id(3), url("3-ready")); BOOST_CHECK(m.isMember(id(3))); BOOST_CHECK_EQUAL(m.dumps(id(0)), 0); BOOST_CHECK_EQUAL(m.dumps(id(1)), 0); @@ -96,11 +96,11 @@ QPID_AUTO_TEST_CASE(testNotice) { QPID_AUTO_TEST_CASE(testLeave) { ClusterMap m; - BOOST_CHECK(!m.urlNotice(id(0), url("0-ready"))); - BOOST_CHECK_EQUAL(id(0), m.urlNotice(id(1), url("1-dump"))); - BOOST_CHECK(!m.urlNotice(id(1), url("1-ready"))); - BOOST_CHECK_EQUAL(id(0), m.urlNotice(id(2), url("2-dump"))); - BOOST_CHECK(!m.urlNotice(id(2), url("2-ready"))); + m.ready(id(0), url("0-ready")); + BOOST_CHECK_EQUAL(id(0), m.dumpRequest(id(1), url("1-dump"))); + m.ready(id(1), url("1-ready")); + BOOST_CHECK_EQUAL(id(0), m.dumpRequest(id(2), url("2-dump"))); + m.ready(id(2), url("2-ready")); BOOST_CHECK_EQUAL(m.memberCount(), (unsigned)3); BOOST_CHECK_EQUAL(m.dumpeeCount(), (unsigned)0); @@ -110,13 +110,13 @@ QPID_AUTO_TEST_CASE(testLeave) { BOOST_CHECK(m.isMember(id(0))); BOOST_CHECK(m.isMember(id(2))); - BOOST_CHECK_EQUAL(id(0), m.urlNotice(id(4), url("4-dump"))); + BOOST_CHECK_EQUAL(id(0), m.dumpRequest(id(4), url("4-dump"))); BOOST_CHECK_EQUAL(m.dumps(id(0)), 1); BOOST_CHECK(m.isDumpee(id(4))); BOOST_CHECK_EQUAL(m.memberCount(), (unsigned)2); BOOST_CHECK_EQUAL(m.dumpeeCount(), (unsigned)1); - m.dumpFailed(id(4)); // Dumper detected a failure. + m.dumpError(id(4)); // Dumper detected a failure. BOOST_CHECK_EQUAL(m.dumps(id(0)), 0); BOOST_CHECK(!m.isDumpee(id(4))); BOOST_CHECK(!m.isMember(id(4))); @@ -127,7 +127,7 @@ QPID_AUTO_TEST_CASE(testLeave) { BOOST_CHECK_EQUAL(m.memberCount(), (unsigned)2); BOOST_CHECK_EQUAL(m.dumpeeCount(), (unsigned)0); - BOOST_CHECK_EQUAL(id(0), m.urlNotice(id(5), url("5-dump"))); + BOOST_CHECK_EQUAL(id(0), m.dumpRequest(id(5), url("5-dump"))); BOOST_CHECK_EQUAL(m.dumps(id(0)), 1); BOOST_CHECK(m.isDumpee(id(5))); BOOST_CHECK_EQUAL(m.memberCount(), (unsigned)2); @@ -140,19 +140,19 @@ QPID_AUTO_TEST_CASE(testLeave) { BOOST_CHECK_EQUAL(m.memberCount(), (unsigned)2); BOOST_CHECK_EQUAL(m.dumpeeCount(), (unsigned)0); - m.dumpFailed(id(5)); // Dumper reports failure - no op, we already know. + m.dumpError(id(5)); // Dumper reports failure - no op, we already know. BOOST_CHECK_EQUAL(m.memberCount(), (unsigned)2); BOOST_CHECK_EQUAL(m.dumpeeCount(), (unsigned)0); } QPID_AUTO_TEST_CASE(testToControl) { ClusterMap m; - m.urlNotice(id(0), url("0")); - m.urlNotice(id(1), url("1dump")); - m.urlNotice(id(1), url("1")); - m.urlNotice(id(2), url("2dump")); - m.urlNotice(id(3), url("3dump")); - m.urlNotice(id(4), url("4dump")); + m.ready(id(0), url("0")); + m.dumpRequest(id(1), url("1dump")); + m.ready(id(1), url("1")); + m.dumpRequest(id(2), url("2dump")); + m.dumpRequest(id(3), url("3dump")); + m.dumpRequest(id(4), url("4dump")); BOOST_CHECK_EQUAL(m.memberCount(), (unsigned)2); BOOST_CHECK_EQUAL(m.dumpeeCount(), (unsigned)3); @@ -188,4 +188,30 @@ QPID_AUTO_TEST_CASE(testToControl) { BOOST_CHECK_EQUAL(s,s2); } +QPID_AUTO_TEST_CASE(testStall) { + ClusterMap m; + m.ready(id(0), url("0")); + BOOST_CHECK_EQUAL(m.memberCount(), 1); + BOOST_CHECK_EQUAL(m.dumpeeCount(), 0); + m.stall(); + + m.dumpRequest(id(1), url("1dump")); + m.ready(id(1), url("1")); + m.leave(id(0)); + m.dumpRequest(id(2), url("2dump")); + m.ready(id(2), url("2")); + m.dumpRequest(id(3), url("3dump")); + BOOST_CHECK_EQUAL(m.memberCount(), 1); + BOOST_CHECK_EQUAL(m.dumpeeCount(), 0); + + m.unstall(); + BOOST_CHECK_EQUAL(m.memberCount(), 2); + BOOST_CHECK_EQUAL(m.dumpeeCount(), 1); + BOOST_CHECK(!m.isMember(id(0))); + BOOST_CHECK(m.isMember(id(1))); + BOOST_CHECK(m.isMember(id(2))); + BOOST_CHECK(m.isDumpee(id(3))); +} + + QPID_AUTO_TEST_SUITE_END() |