You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ds...@apache.org on 2020/04/29 06:41:29 UTC

[geode] branch develop updated: GEODE-8034: Create distributed tests for SREM command (#5013)

This is an automated email from the ASF dual-hosted git repository.

dschneider 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 35718a5  GEODE-8034: Create distributed tests for SREM command (#5013)
35718a5 is described below

commit 35718a546667e3ce84abda7f04f4e148c001ce23
Author: Sarah Abbey <41...@users.noreply.github.com>
AuthorDate: Wed Apr 29 02:40:59 2020 -0400

    GEODE-8034: Create distributed tests for SREM command (#5013)
---
 .../SaddDUnitTest.java}                            |   4 +-
 .../SremDUnitTest.java}                            | 101 ++++++++++++---------
 2 files changed, 59 insertions(+), 46 deletions(-)

diff --git a/geode-redis/src/distributedTest/java/org/apache/geode/redis/SaddDistDunitTest.java b/geode-redis/src/distributedTest/java/org/apache/geode/redis/executors/SaddDUnitTest.java
similarity index 99%
copy from geode-redis/src/distributedTest/java/org/apache/geode/redis/SaddDistDunitTest.java
copy to geode-redis/src/distributedTest/java/org/apache/geode/redis/executors/SaddDUnitTest.java
index 3c27eb9..267046a 100644
--- a/geode-redis/src/distributedTest/java/org/apache/geode/redis/SaddDistDunitTest.java
+++ b/geode-redis/src/distributedTest/java/org/apache/geode/redis/executors/SaddDUnitTest.java
@@ -13,7 +13,7 @@
  * the License.
  */
 
-package org.apache.geode.redis;
+package org.apache.geode.redis.executors;
 
 import static org.apache.geode.distributed.ConfigurationProperties.MAX_WAIT_TIME_RECONNECT;
 import static org.apache.geode.distributed.ConfigurationProperties.REDIS_BIND_ADDRESS;
@@ -39,7 +39,7 @@ import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.rules.ClusterStartupRule;
 import org.apache.geode.test.dunit.rules.MemberVM;
 
-public class SaddDistDunitTest {
+public class SaddDUnitTest {
 
   @ClassRule
   public static ClusterStartupRule clusterStartUp = new ClusterStartupRule(4);
diff --git a/geode-redis/src/distributedTest/java/org/apache/geode/redis/SaddDistDunitTest.java b/geode-redis/src/distributedTest/java/org/apache/geode/redis/executors/SremDUnitTest.java
similarity index 67%
rename from geode-redis/src/distributedTest/java/org/apache/geode/redis/SaddDistDunitTest.java
rename to geode-redis/src/distributedTest/java/org/apache/geode/redis/executors/SremDUnitTest.java
index 3c27eb9..91e95a4 100644
--- a/geode-redis/src/distributedTest/java/org/apache/geode/redis/SaddDistDunitTest.java
+++ b/geode-redis/src/distributedTest/java/org/apache/geode/redis/executors/SremDUnitTest.java
@@ -13,7 +13,7 @@
  * the License.
  */
 
-package org.apache.geode.redis;
+package org.apache.geode.redis.executors;
 
 import static org.apache.geode.distributed.ConfigurationProperties.MAX_WAIT_TIME_RECONNECT;
 import static org.apache.geode.distributed.ConfigurationProperties.REDIS_BIND_ADDRESS;
@@ -39,7 +39,7 @@ import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.rules.ClusterStartupRule;
 import org.apache.geode.test.dunit.rules.MemberVM;
 
-public class SaddDistDunitTest {
+public class SremDUnitTest {
 
   @ClassRule
   public static ClusterStartupRule clusterStartUp = new ClusterStartupRule(4);
@@ -116,17 +116,21 @@ public class SaddDistDunitTest {
     String key = "key";
 
     List<String> members = makeMemberList(SET_SIZE, "member1-");
+    List<String> halfOfMembers = makeMemberList(SET_SIZE / 2, "member1-");
+    List<String> otherHalfOfMembers = new ArrayList<>(members);
+    otherHalfOfMembers.removeAll(halfOfMembers);
 
     jedis1.sadd(key, members.toArray(new String[] {}));
+    jedis2.srem(key, halfOfMembers.toArray(new String[] {}));
 
-    Set<String> result = jedis2.smembers(key);
-
-    assertThat(result.toArray()).containsExactlyInAnyOrder(members.toArray());
+    Set<String> result = jedis3.smembers(key);
 
+    assertThat(result.toArray().length).isEqualTo(otherHalfOfMembers.size());
+    assertThat(result.toArray()).containsExactlyInAnyOrder(otherHalfOfMembers.toArray());
   }
 
   @Test
-  public void should_distributeDataAmongMultipleServers_givenMultipleClients_AddingDifferentDataToSameSetConcurrently()
+  public void should_distributeDataAmongMultipleServers_givenMultipleClients_removingDifferentDataFromSameSetConcurrently()
       throws InterruptedException {
 
     String key = "key";
@@ -138,42 +142,45 @@ public class SaddDistDunitTest {
     allMembers.addAll(members1);
     allMembers.addAll(members2);
 
+    jedis3.sadd(key, allMembers.toArray(new String[] {}));
+
     CountDownLatch startThreads = new CountDownLatch(1);
 
-    Runnable addSetsWithClient1 = makeSADDRunnable(key, members1, jedis1, startThreads);
-    Runnable addSetsWithClient2 = makeSADDRunnable(key, members2, jedis2, startThreads);
+    Runnable removeMembersWithClient1 = makeSRemRunnable(key, members1, jedis1, startThreads);
+    Runnable removeMembersWithClient2 = makeSRemRunnable(key, members2, jedis2, startThreads);
 
-    runConcurrentThreads(startThreads, addSetsWithClient1, addSetsWithClient2);
+    runConcurrentThreads(startThreads, removeMembersWithClient1, removeMembersWithClient2);
 
     Set<String> results = jedis3.smembers(key);
 
-    assertThat(results.toArray()).containsExactlyInAnyOrder(allMembers.toArray());
-
+    assertThat(results).isEmpty();
   }
 
   @Test
-  public void should_distributeDataAmongMultipleServers_givenMultipleClients_AddingSameDataToSameSetConcurrently()
+  public void should_distributeDataAmongMultipleServers_givenMultipleClients_removingSameDataFromSameSetConcurrently()
       throws InterruptedException {
 
     String key = "key";
 
     List<String> members = makeMemberList(SET_SIZE, "member-");
 
+    jedis3.sadd(key, members.toArray(new String[] {}));
+
     CountDownLatch startThreads = new CountDownLatch(1);
 
-    Runnable addSetsWithClient1 = makeSADDRunnable(key, members, jedis1, startThreads);
-    Runnable addSetsWithClient2 = makeSADDRunnable(key, members, jedis2, startThreads);
+    Runnable removeMembersWithClient1 = makeSRemRunnable(key, members, jedis1, startThreads);
+    Runnable removeMembersWithClient2 = makeSRemRunnable(key, members, jedis2, startThreads);
 
-    runConcurrentThreads(startThreads, addSetsWithClient1, addSetsWithClient2);
+    runConcurrentThreads(startThreads, removeMembersWithClient1, removeMembersWithClient2);
 
     Set<String> results = jedis3.smembers(key);
 
-    assertThat(results.toArray()).containsExactlyInAnyOrder(members.toArray());
+    assertThat(results).isEmpty();
 
   }
 
   @Test
-  public void should_distributeDataAmongMultipleServers_givenMultipleClients_AddingDifferentSetsConcurrently()
+  public void should_distributeDataAmongMultipleServers_givenMultipleClients_removingFromDifferentSetsConcurrently()
       throws InterruptedException {
 
     String key1 = "key1";
@@ -182,23 +189,26 @@ public class SaddDistDunitTest {
     List<String> members1 = makeMemberList(SET_SIZE, "member1-");
     List<String> members2 = makeMemberList(SET_SIZE, "member2-");
 
+    jedis3.sadd(key1, members1.toArray(new String[] {}));
+    jedis3.sadd(key2, members2.toArray(new String[] {}));
+
     CountDownLatch startThreads = new CountDownLatch(1);
 
-    Runnable addSetsWithClient1 = makeSADDRunnable(key1, members1, jedis1, startThreads);
-    Runnable addSetsWithClient2 = makeSADDRunnable(key2, members2, jedis2, startThreads);
+    Runnable removeMembersWithClient1 = makeSRemRunnable(key1, members1, jedis1, startThreads);
+    Runnable removeMembersWithClient2 = makeSRemRunnable(key2, members2, jedis2, startThreads);
 
-    runConcurrentThreads(startThreads, addSetsWithClient1, addSetsWithClient2);
+    runConcurrentThreads(startThreads, removeMembersWithClient1, removeMembersWithClient2);
 
     Set<String> results1 = jedis3.smembers(key1);
     Set<String> results2 = jedis3.smembers(key2);
 
-    assertThat(results1.toArray()).containsExactlyInAnyOrder(members1.toArray());
-    assertThat(results2.toArray()).containsExactlyInAnyOrder(members2.toArray());
+    assertThat(results1).isEmpty();
+    assertThat(results2).isEmpty();
 
   }
 
   @Test
-  public void should_distributeDataAmongMultipleServers_givenTwoSetsOfClients_OperatingOnTheSameSetConcurrently()
+  public void should_distributeDataAmongMultipleServers_givenMultipleClientsOnSameServer_removingSameDataFromSameSetConcurrently()
       throws InterruptedException {
 
     Jedis jedis1B = new Jedis(LOCAL_HOST, availablePorts[0]);
@@ -207,30 +217,31 @@ public class SaddDistDunitTest {
     String key = "key";
 
     List<String> members = makeMemberList(SET_SIZE, "member1-");
+    jedis3.sadd(key, members.toArray(new String[] {}));
 
     CountDownLatch startThreads = new CountDownLatch(1);
 
-    Runnable addSetsWithClient1 = makeSADDRunnable(key, members, jedis1, startThreads);
-    Runnable addSetsWithClient1B = makeSADDRunnable(key, members, jedis1B, startThreads);
-    Runnable addSetsWithClient2 = makeSADDRunnable(key, members, jedis2, startThreads);
-    Runnable addSetsWithClient2B = makeSADDRunnable(key, members, jedis2B, startThreads);
+    Runnable removeMembersWithClient1 = makeSRemRunnable(key, members, jedis1, startThreads);
+    Runnable removeMembersWithClient1B = makeSRemRunnable(key, members, jedis1B, startThreads);
+    Runnable removeMembersWithClient2 = makeSRemRunnable(key, members, jedis2, startThreads);
+    Runnable removeMembersWithClient2B = makeSRemRunnable(key, members, jedis2B, startThreads);
 
     runConcurrentThreads(startThreads,
-        addSetsWithClient1,
-        addSetsWithClient1B,
-        addSetsWithClient2,
-        addSetsWithClient2B);
+        removeMembersWithClient1,
+        removeMembersWithClient1B,
+        removeMembersWithClient2,
+        removeMembersWithClient2B);
 
     Set<String> results = jedis3.smembers(key);
 
-    assertThat(results.toArray()).containsExactlyInAnyOrder(members.toArray());
+    assertThat(results).isEmpty();
 
     jedis1B.disconnect();
     jedis2B.disconnect();
   }
 
   @Test
-  public void should_distributeDataAmongMultipleServers_givenTwoSetsOfClients_OperatingOnTheSameSet_withDifferentData_Concurrently()
+  public void should_distributeDataAmongMultipleServers_givenMultipleClientsOnSameServer_removingDifferentDataFromSameSetConcurrently()
       throws InterruptedException {
 
     Jedis jedis1B = new Jedis(LOCAL_HOST, availablePorts[0]);
@@ -245,22 +256,24 @@ public class SaddDistDunitTest {
     allMembers.addAll(members1);
     allMembers.addAll(members2);
 
+    jedis3.sadd(key, allMembers.toArray(new String[] {}));
+
     CountDownLatch startThreads = new CountDownLatch(1);
 
-    Runnable addSetsWithClient1 = makeSADDRunnable(key, members1, jedis1, startThreads);
-    Runnable addSetsWithClient1B = makeSADDRunnable(key, members1, jedis1B, startThreads);
-    Runnable addSetsWithClient2 = makeSADDRunnable(key, members2, jedis2, startThreads);
-    Runnable addSetsWithClient2B = makeSADDRunnable(key, members2, jedis2B, startThreads);
+    Runnable removeMembersWithClient1 = makeSRemRunnable(key, members1, jedis1, startThreads);
+    Runnable removeMembersWithClient1B = makeSRemRunnable(key, members1, jedis1B, startThreads);
+    Runnable removeMembersWithClient2 = makeSRemRunnable(key, members2, jedis2, startThreads);
+    Runnable removeMembersWithClient2B = makeSRemRunnable(key, members2, jedis2B, startThreads);
 
     runConcurrentThreads(startThreads,
-        addSetsWithClient1,
-        addSetsWithClient1B,
-        addSetsWithClient2,
-        addSetsWithClient2B);
+        removeMembersWithClient1,
+        removeMembersWithClient1B,
+        removeMembersWithClient2,
+        removeMembersWithClient2B);
 
     Set<String> results = jedis3.smembers(key);
 
-    assertThat(results.toArray()).containsExactlyInAnyOrder(allMembers.toArray());
+    assertThat(results).isEmpty();
 
     jedis1B.disconnect();
     jedis2B.disconnect();
@@ -281,7 +294,7 @@ public class SaddDistDunitTest {
     }
   }
 
-  private Runnable makeSADDRunnable(String key, List<String> members, Jedis jedis,
+  private Runnable makeSRemRunnable(String key, List<String> members, Jedis jedis,
       CountDownLatch startThread) {
     return () -> {
       try {
@@ -290,7 +303,7 @@ public class SaddDistDunitTest {
         e.printStackTrace();
       }
       for (int i = 0; i < members.size(); i++) {
-        jedis.sadd(key, members.get(i));
+        jedis.srem(key, members.get(i));
       }
     };
   }