You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ca...@apache.org on 2013/03/12 02:48:52 UTC
svn commit: r1455387 - in /zookeeper/trunk/src/c/tests:
TestReconfigServer.cc ZooKeeperQuorumServer.cc
Author: camille
Date: Tue Mar 12 01:48:52 2013
New Revision: 1455387
URL: http://svn.apache.org/r1455387
Log:
ZOOKEEPER-107. Allow dynamic changes to server cluster membership, small bugfix (michi via camille)
Modified:
zookeeper/trunk/src/c/tests/TestReconfigServer.cc
zookeeper/trunk/src/c/tests/ZooKeeperQuorumServer.cc
Modified: zookeeper/trunk/src/c/tests/TestReconfigServer.cc
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/c/tests/TestReconfigServer.cc?rev=1455387&r1=1455386&r2=1455387&view=diff
==============================================================================
--- zookeeper/trunk/src/c/tests/TestReconfigServer.cc (original)
+++ zookeeper/trunk/src/c/tests/TestReconfigServer.cc Tue Mar 12 01:48:52 2013
@@ -69,8 +69,6 @@ TestReconfigServer::
void TestReconfigServer::
setUp() {
cluster_ = ZooKeeperQuorumServer::getCluster(NUM_SERVERS);
- // give the cluster some time to start up.
- sleep(2);
}
void TestReconfigServer::
@@ -303,6 +301,7 @@ testRemoveConnectedFollower() {
CPPUNIT_ASSERT(std::find(servers.begin(), servers.end(),
cluster_[i]->getServerString()) != servers.end());
}
+ zookeeper_close(zk);
}
CPPUNIT_TEST_SUITE_REGISTRATION(TestReconfigServer);
Modified: zookeeper/trunk/src/c/tests/ZooKeeperQuorumServer.cc
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/c/tests/ZooKeeperQuorumServer.cc?rev=1455387&r1=1455386&r2=1455387&view=diff
==============================================================================
--- zookeeper/trunk/src/c/tests/ZooKeeperQuorumServer.cc (original)
+++ zookeeper/trunk/src/c/tests/ZooKeeperQuorumServer.cc Tue Mar 12 01:48:52 2013
@@ -86,7 +86,7 @@ getMode() {
return "follower";
} else {
printf("%s\n", result.c_str());
- assert(!"unknown mode");
+ return "";
}
}
@@ -169,5 +169,21 @@ getCluster(uint32_t numServers) {
for (int i = 0; i < numServers; i++) {
cluster.push_back(new ZooKeeperQuorumServer(i, numServers));
}
- return cluster;
+
+ // Wait until all the servers start, and fail if they don't start within 10
+ // seconds.
+ for (int i = 0; i < 10; i++) {
+ int j = 0;
+ for (; j < cluster.size(); j++) {
+ if (cluster[j]->getMode() == "") {
+ // The server hasn't started.
+ sleep(1);
+ break;
+ }
+ }
+ if (j == cluster.size()) {
+ return cluster;
+ }
+ }
+ assert(!"The cluster didn't start for 10 seconds");
}