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");
 }