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 2017/09/01 20:44:48 UTC

geode git commit: GEODE-3550: Improve snapshot filter testing

Repository: geode
Updated Branches:
  refs/heads/develop fecec42fb -> d98a70108


GEODE-3550: Improve snapshot filter testing

This closes #754


Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/d98a7010
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/d98a7010
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/d98a7010

Branch: refs/heads/develop
Commit: d98a70108d7b008946d41b1ac5df5d52ee77236e
Parents: fecec42
Author: Nick Reich <nr...@pivotal.io>
Authored: Thu Aug 31 16:29:23 2017 -0700
Committer: Darrel Schneider <ds...@pivotal.io>
Committed: Fri Sep 1 13:44:17 2017 -0700

----------------------------------------------------------------------
 .../cache/snapshot/RegionSnapshotJUnitTest.java | 60 +++++++++++++++++++-
 .../geode/cache/snapshot/SnapshotTestCase.java  |  2 +-
 2 files changed, 60 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/d98a7010/geode-core/src/test/java/org/apache/geode/cache/snapshot/RegionSnapshotJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/snapshot/RegionSnapshotJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/snapshot/RegionSnapshotJUnitTest.java
index 46c491c..1de1b03 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/snapshot/RegionSnapshotJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/snapshot/RegionSnapshotJUnitTest.java
@@ -107,7 +107,65 @@ public class RegionSnapshotJUnitTest extends SnapshotTestCase {
   }
 
   @Test
-  public void testFilter() throws Exception {
+  public void testFilterOnExport() throws Exception {
+    SnapshotFilter<Integer, MyObject> odd =
+        (SnapshotFilter<Integer, MyObject>) entry -> entry.getKey() % 2 == 1;
+
+    for (final RegionType rt : RegionType.values()) {
+      for (final SerializationType st : SerializationType.values()) {
+        String name = "test-" + rt.name() + "-" + st.name();
+        Region<Integer, MyObject> region =
+            regionGenerator.createRegion(cache, diskStore.getName(), rt, name);
+        final Map<Integer, MyObject> expected = createExpected(st);
+
+        region.putAll(expected);
+        RegionSnapshotService<Integer, MyObject> rss = region.getSnapshotService();
+        SnapshotOptions<Integer, MyObject> options = rss.createOptions().setFilter(odd);
+        rss.save(snapshotFile, SnapshotFormat.GEMFIRE, options);
+
+        region.destroyRegion();
+        region = regionGenerator.createRegion(cache, diskStore.getName(), rt, name);
+
+        rss = region.getSnapshotService();
+        rss.load(snapshotFile, SnapshotFormat.GEMFIRE, rss.createOptions());
+
+        region.entrySet().forEach(entry -> assertTrue(odd.accept(entry)));
+        assertTrue("Comparison failure for " + rt.name() + "/" + st.name(), region.size() > 0);
+      }
+    }
+  }
+
+  @Test
+  public void testFilterOnImport() throws Exception {
+    SnapshotFilter<Integer, MyObject> odd =
+        (SnapshotFilter<Integer, MyObject>) entry -> entry.getKey() % 2 == 1;
+
+    for (final RegionType rt : RegionType.values()) {
+      for (final SerializationType st : SerializationType.values()) {
+        String name = "test-" + rt.name() + "-" + st.name();
+        Region<Integer, MyObject> region =
+            regionGenerator.createRegion(cache, diskStore.getName(), rt, name);
+        final Map<Integer, MyObject> expected = createExpected(st);
+
+        region.putAll(expected);
+        RegionSnapshotService<Integer, MyObject> rss = region.getSnapshotService();
+        rss.save(snapshotFile, SnapshotFormat.GEMFIRE, rss.createOptions());
+
+        region.destroyRegion();
+        region = regionGenerator.createRegion(cache, diskStore.getName(), rt, name);
+
+        rss = region.getSnapshotService();
+        SnapshotOptions<Integer, MyObject> options = rss.createOptions().setFilter(odd);
+        rss.load(snapshotFile, SnapshotFormat.GEMFIRE, options);
+
+        region.entrySet().forEach(entry -> assertTrue(odd.accept(entry)));
+        assertTrue("Comparison failure for " + rt.name() + "/" + st.name(), region.size() > 0);
+      }
+    }
+  }
+
+  @Test
+  public void testFilterOnExportAndImport() throws Exception {
     SnapshotFilter<Integer, MyObject> even =
         (SnapshotFilter<Integer, MyObject>) entry -> entry.getKey() % 2 == 0;
 

http://git-wip-us.apache.org/repos/asf/geode/blob/d98a7010/geode-core/src/test/java/org/apache/geode/cache/snapshot/SnapshotTestCase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/snapshot/SnapshotTestCase.java b/geode-core/src/test/java/org/apache/geode/cache/snapshot/SnapshotTestCase.java
index d0040f7..25a4c17 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/snapshot/SnapshotTestCase.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/snapshot/SnapshotTestCase.java
@@ -67,7 +67,7 @@ public class SnapshotTestCase {
 
   Map<Integer, MyObject> createExpected(SerializationType type) {
     Map<Integer, MyObject> expected = new HashMap<>();
-    for (int i = 0; i < 1000; i++) {
+    for (int i = 0; i < 100; i++) {
       expected.put(i, regionGenerator.createData(type, i, "The number is " + i));
     }
     return expected;