geode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From prhomb...@apache.org
Subject [geode] branch develop updated: GEODE-4640: Remove potential race condition from RemoveCommandDUnitTest. (#1421)
Date Wed, 14 Feb 2018 17:26:29 GMT
This is an automated email from the ASF dual-hosted git repository.

prhomberg pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new f3e37e1  GEODE-4640: Remove potential race condition from RemoveCommandDUnitTest.
(#1421)
f3e37e1 is described below

commit f3e37e180fe9cdcda9f54b989afbba9ea72b8f7e
Author: Patrick Rhomberg <prhomberg@pivotal.io>
AuthorDate: Wed Feb 14 09:26:27 2018 -0800

    GEODE-4640: Remove potential race condition from RemoveCommandDUnitTest. (#1421)
---
 .../cli/commands/RemoveCommandDUnitTest.java       | 65 ++++++++--------------
 1 file changed, 23 insertions(+), 42 deletions(-)

diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/RemoveCommandDUnitTest.java
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/RemoveCommandDUnitTest.java
index d395f36..463cb50 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/RemoveCommandDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/RemoveCommandDUnitTest.java
@@ -17,12 +17,6 @@ package org.apache.geode.management.internal.cli.commands;
 import static org.apache.geode.management.internal.cli.commands.RemoveCommand.REGION_NOT_FOUND;
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.io.Serializable;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -31,18 +25,14 @@ import org.junit.experimental.categories.Category;
 import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.Region;
-import org.apache.geode.cache.RegionShortcut;
-import org.apache.geode.distributed.DistributedMember;
-import org.apache.geode.internal.cache.InternalCache;
-import org.apache.geode.management.internal.cli.CliUtil;
-import org.apache.geode.test.dunit.SerializableCallableIF;
 import org.apache.geode.test.dunit.rules.ClusterStartupRule;
 import org.apache.geode.test.dunit.rules.MemberVM;
 import org.apache.geode.test.junit.categories.DistributedTest;
 import org.apache.geode.test.junit.rules.GfshCommandRule;
+import org.apache.geode.test.junit.rules.VMProvider;
 
 @Category(DistributedTest.class)
-public class RemoveCommandDUnitTest implements Serializable {
+public class RemoveCommandDUnitTest {
   private static final String REPLICATE_REGION_NAME = "replicateRegion";
   private static final String PARTITIONED_REGION_NAME = "partitionedRegion";
   private static final String EMPTY_STRING = "";
@@ -51,47 +41,45 @@ public class RemoveCommandDUnitTest implements Serializable {
   public ClusterStartupRule clusterStartupRule = new ClusterStartupRule();
 
   @Rule
-  public transient GfshCommandRule gfsh = new GfshCommandRule();
+  public GfshCommandRule gfsh = new GfshCommandRule();
 
-  private transient MemberVM locator;
-  private transient MemberVM server1;
-  private transient MemberVM server2;
+  private MemberVM locator;
+  private MemberVM server1;
+  private MemberVM server2;
 
   @Before
   public void setup() throws Exception {
     locator = clusterStartupRule.startLocatorVM(0);
-
     server1 = clusterStartupRule.startServerVM(1, locator.getPort());
     server2 = clusterStartupRule.startServerVM(2, locator.getPort());
 
-    server1.invoke(this::populateTestRegions);
-    server2.invoke(this::populateTestRegions);
-
     gfsh.connectAndVerify(locator);
+    gfsh.executeAndAssertThat("create region --name=" + REPLICATE_REGION_NAME + " --type=REPLICATE")
+        .statusIsSuccess();
+    gfsh.executeAndAssertThat(
+        "create region --name=" + PARTITIONED_REGION_NAME + " --type=PARTITION").statusIsSuccess();
+
+    locator.waitTillRegionsAreReadyOnServers("/" + REPLICATE_REGION_NAME, 2);
+    locator.waitTillRegionsAreReadyOnServers("/" + PARTITIONED_REGION_NAME, 2);
 
-    Awaitility.await().atMost(2, TimeUnit.MINUTES).until(() -> locator.getVM()
-        .invoke((SerializableCallableIF<Boolean>) this::regionMBeansAreInitialized));
+    VMProvider.invokeInEveryMember(RemoveCommandDUnitTest::populateTestRegions, server1,
server2);
   }
 
-  private void populateTestRegions() {
+  private static void populateTestRegions() {
     Cache cache = CacheFactory.getAnyInstance();
-    Region<String, String> replicateRegion =
-        cache.<String, String>createRegionFactory(RegionShortcut.REPLICATE)
-            .create(REPLICATE_REGION_NAME);
-    Region<String, String> partitionedRegion =
-        cache.<String, String>createRegionFactory(RegionShortcut.PARTITION)
-            .create(PARTITIONED_REGION_NAME);
 
+    Region<String, String> replicateRegion = cache.getRegion(REPLICATE_REGION_NAME);
     replicateRegion.put(EMPTY_STRING, "valueForEmptyKey");
     replicateRegion.put("key1", "value1");
     replicateRegion.put("key2", "value2");
 
+    Region<String, String> partitionedRegion = cache.getRegion(PARTITIONED_REGION_NAME);
     partitionedRegion.put("key1", "value1");
     partitionedRegion.put("key2", "value2");
   }
 
   @Test
-  public void removeFromInvalidRegion() throws Exception {
+  public void removeFromInvalidRegion() {
     String command = "remove --all --region=NotAValidRegion";
 
     gfsh.executeAndAssertThat(command).statusIsError()
@@ -99,7 +87,7 @@ public class RemoveCommandDUnitTest implements Serializable {
   }
 
   @Test
-  public void removeWithNoKeyOrAllSpecified() throws Exception {
+  public void removeWithNoKeyOrAllSpecified() {
     String command = "remove --region=" + REPLICATE_REGION_NAME;
 
     gfsh.executeAndAssertThat(command).statusIsError().containsOutput("Key is Null");
@@ -177,29 +165,22 @@ public class RemoveCommandDUnitTest implements Serializable {
     server2.invoke(() -> verifyKeyIsRemoved(REPLICATE_REGION_NAME, EMPTY_STRING));
   }
 
-  private boolean regionMBeansAreInitialized() {
-    Set<DistributedMember> members = CliUtil.getRegionAssociatedMembers(REPLICATE_REGION_NAME,
-        (InternalCache) CacheFactory.getAnyInstance(), false);
-
-    return CollectionUtils.isNotEmpty(members);
-  }
-
-  private void verifyAllKeysAreRemoved(String regionName) {
+  private static void verifyAllKeysAreRemoved(String regionName) {
     Region region = getRegion(regionName);
     assertThat(region.size()).isEqualTo(0);
   }
 
-  private void verifyKeyIsRemoved(String regionName, String key) {
+  private static void verifyKeyIsRemoved(String regionName, String key) {
     Region region = getRegion(regionName);
     assertThat(region.get(key)).isNull();
   }
 
-  private void verifyKeyIsPresent(String regionName, String key) {
+  private static void verifyKeyIsPresent(String regionName, String key) {
     Region region = getRegion(regionName);
     assertThat(region.get(key)).isNotNull();
   }
 
-  private Region getRegion(String regionName) {
+  private static Region getRegion(String regionName) {
     return CacheFactory.getAnyInstance().getRegion(regionName);
   }
 }

-- 
To stop receiving notification emails like this one, please contact
prhomberg@apache.org.

Mime
View raw message