From 8178845482067e9b8ab6d37b09176a4f0a88c9d2 Mon Sep 17 00:00:00 2001 From: Zhongjie Wu Date: Mon, 30 Sep 2013 12:19:19 -0700 Subject: [PATCH] fix on bind exceptions in tests --- test/common/voldemort/ClusterTestUtils.java | 7 +++++++ .../client/rebalance/AbstractNonZonedRebalanceTest.java | 1 + .../client/rebalance/AbstractZonedRebalanceTest.java | 1 + test/unit/voldemort/store/routed/ZoneAffinityGetAllTest.java | 8 +++++++- test/unit/voldemort/store/routed/ZoneAffinityGetTest.java | 8 ++++++++ .../voldemort/store/routed/ZoneAffinityGetVersionsTest.java | 11 +++++++++++ 6 files changed, 35 insertions(+), 1 deletion(-) diff --git a/test/common/voldemort/ClusterTestUtils.java b/test/common/voldemort/ClusterTestUtils.java index 5f408ee4b..d35bedd34 100644 --- a/test/common/voldemort/ClusterTestUtils.java +++ b/test/common/voldemort/ClusterTestUtils.java @@ -277,6 +277,13 @@ public class ClusterTestUtils { } /** + * Reset all singletons, especially for tests under the same test suite + */ + static public void reset() { + clusterPorts = null; + } + + /** * The 'Z' and 'E' prefixes in these method names indicate zones with * partitions and zones without partitions. */ diff --git a/test/unit/voldemort/client/rebalance/AbstractNonZonedRebalanceTest.java b/test/unit/voldemort/client/rebalance/AbstractNonZonedRebalanceTest.java index 138f81366..c5ac78cf5 100644 --- a/test/unit/voldemort/client/rebalance/AbstractNonZonedRebalanceTest.java +++ b/test/unit/voldemort/client/rebalance/AbstractNonZonedRebalanceTest.java @@ -216,6 +216,7 @@ public abstract class AbstractNonZonedRebalanceTest extends AbstractRebalanceTes testEntries = null; socketStoreFactory.close(); socketStoreFactory = null; + ClusterTestUtils.reset(); } @Test(timeout = 600000) diff --git a/test/unit/voldemort/client/rebalance/AbstractZonedRebalanceTest.java b/test/unit/voldemort/client/rebalance/AbstractZonedRebalanceTest.java index 851790a45..0eeabfab6 100644 --- a/test/unit/voldemort/client/rebalance/AbstractZonedRebalanceTest.java +++ b/test/unit/voldemort/client/rebalance/AbstractZonedRebalanceTest.java @@ -239,6 +239,7 @@ public abstract class AbstractZonedRebalanceTest extends AbstractRebalanceTest { testEntries = null; socketStoreFactory.close(); socketStoreFactory = null; + ClusterTestUtils.reset(); } // TODO: The tests based on this method are susceptible to TOCTOU diff --git a/test/unit/voldemort/store/routed/ZoneAffinityGetAllTest.java b/test/unit/voldemort/store/routed/ZoneAffinityGetAllTest.java index 642d3faf7..88c463661 100644 --- a/test/unit/voldemort/store/routed/ZoneAffinityGetAllTest.java +++ b/test/unit/voldemort/store/routed/ZoneAffinityGetAllTest.java @@ -42,6 +42,7 @@ public class ZoneAffinityGetAllTest { private Store client; private Map vservers = new HashMap(); + private Map socketStoreFactories = new HashMap(); private Cluster cluster; private final Integer clientZoneId; @@ -58,7 +59,6 @@ public class ZoneAffinityGetAllTest { public void setup() throws IOException { byte[] key1 = { (byte) 'K', (byte) '1' }; // good byte[] key2 = { (byte) 'K', (byte) '2' }; // stale in local zone - byte[] key3 = { (byte) 'K', (byte) '3' }; // null byte[] bytes1 = { (byte) 'A', (byte) 'B' }; byte[] bytes2 = { (byte) 'C', (byte) 'D' }; List stores = ClusterTestUtils.getZZZ322StoreDefs("memory"); @@ -85,6 +85,7 @@ public class ZoneAffinityGetAllTest { config, cluster); vservers.put(nodeId, vs); + socketStoreFactories.put(nodeId, socketStoreFactory); Store store = vs.getStoreRepository() .getLocalStore(storeDef.getName()); Node node = cluster.getNodeById(nodeId); @@ -106,9 +107,14 @@ public class ZoneAffinityGetAllTest { @After public void tearDown() { + client.close(); for(VoldemortServer vs: this.vservers.values()) { vs.stop(); } + for(SocketStoreFactory ssf: this.socketStoreFactories.values()) { + ssf.close(); + } + ClusterTestUtils.reset(); } @Test diff --git a/test/unit/voldemort/store/routed/ZoneAffinityGetTest.java b/test/unit/voldemort/store/routed/ZoneAffinityGetTest.java index baa844e3a..addfabfe2 100644 --- a/test/unit/voldemort/store/routed/ZoneAffinityGetTest.java +++ b/test/unit/voldemort/store/routed/ZoneAffinityGetTest.java @@ -41,6 +41,8 @@ public class ZoneAffinityGetTest { private Store client; private Map vservers = new HashMap(); + private Map socketStoreFactories = new HashMap(); + private Cluster cluster; private final Integer clientZoneId; @@ -81,6 +83,7 @@ public class ZoneAffinityGetTest { config, cluster); vservers.put(nodeId, vs); + socketStoreFactories.put(nodeId, socketStoreFactory); Store store = vs.getStoreRepository() .getLocalStore(storeDef.getName()); Node node = cluster.getNodeById(nodeId); @@ -101,9 +104,14 @@ public class ZoneAffinityGetTest { @After public void tearDown() { + client.close(); for(VoldemortServer vs: this.vservers.values()) { vs.stop(); } + for(SocketStoreFactory ssf: this.socketStoreFactories.values()) { + ssf.close(); + } + ClusterTestUtils.reset(); } @Test diff --git a/test/unit/voldemort/store/routed/ZoneAffinityGetVersionsTest.java b/test/unit/voldemort/store/routed/ZoneAffinityGetVersionsTest.java index efc650cdd..c3662f20f 100644 --- a/test/unit/voldemort/store/routed/ZoneAffinityGetVersionsTest.java +++ b/test/unit/voldemort/store/routed/ZoneAffinityGetVersionsTest.java @@ -40,6 +40,7 @@ public class ZoneAffinityGetVersionsTest { private Store client; private Map vservers = new HashMap(); + private Map socketStoreFactories = new HashMap(); private Cluster cluster; private final Integer clientZoneId; @@ -80,6 +81,11 @@ public class ZoneAffinityGetVersionsTest { config, cluster); vservers.put(nodeId, vs); + socketStoreFactories.put(nodeId, socketStoreFactory); + } + + for(Integer nodeId: cluster.getNodeIds()) { + VoldemortServer vs = vservers.get(nodeId); Store store = vs.getStoreRepository() .getLocalStore(storeDef.getName()); Node node = cluster.getNodeById(nodeId); @@ -100,9 +106,14 @@ public class ZoneAffinityGetVersionsTest { @After public void tearDown() { + client.close(); for(VoldemortServer vs: this.vservers.values()) { vs.stop(); } + for(SocketStoreFactory ssf: this.socketStoreFactories.values()) { + ssf.close(); + } + ClusterTestUtils.reset(); } @Test -- 2.11.4.GIT