summaryrefslogtreecommitdiff
path: root/cpp/src/tests/ClusterMapTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/tests/ClusterMapTest.cpp')
-rw-r--r--cpp/src/tests/ClusterMapTest.cpp74
1 files changed, 50 insertions, 24 deletions
diff --git a/cpp/src/tests/ClusterMapTest.cpp b/cpp/src/tests/ClusterMapTest.cpp
index cce0efb69f..f8ac2e22e6 100644
--- a/cpp/src/tests/ClusterMapTest.cpp
+++ b/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()