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 2015/11/06 22:42:14 UTC

incubator-geode git commit: GEODE-427: add test logging and assertions

Repository: incubator-geode
Updated Branches:
  refs/heads/develop 2933ccd11 -> 06509f34f


GEODE-427: add test logging and assertions

This test refuses to reproduce the failure and
code review has not revealed the cause.
I've added additional test logging and assertions
to give more info the next time the test fails.


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

Branch: refs/heads/develop
Commit: 06509f34f81cf7afa3de062c7ca342f309849e05
Parents: 2933ccd
Author: Darrel Schneider <ds...@pivotal.io>
Authored: Fri Nov 6 13:40:35 2015 -0800
Committer: Darrel Schneider <ds...@pivotal.io>
Committed: Fri Nov 6 13:40:35 2015 -0800

----------------------------------------------------------------------
 .../management/MemoryThresholdsDUnitTest.java   | 34 +++++++++++++++++++-
 .../control/TestMemoryThresholdListener.java    | 13 ++++++++
 2 files changed, 46 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/06509f34/gemfire-core/src/test/java/com/gemstone/gemfire/cache/management/MemoryThresholdsDUnitTest.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/cache/management/MemoryThresholdsDUnitTest.java b/gemfire-core/src/test/java/com/gemstone/gemfire/cache/management/MemoryThresholdsDUnitTest.java
index 50654f6..1d1ada3 100644
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/cache/management/MemoryThresholdsDUnitTest.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/cache/management/MemoryThresholdsDUnitTest.java
@@ -405,7 +405,7 @@ public class MemoryThresholdsDUnitTest extends ClientServerTestCase {
     ServerPorts ports2 = startCacheServer(server2, ports1.getMcastPort(), 80f, 90f,
         regionName, false/*createPR*/, false/*notifyBySubscription*/, 0);
 
-    registerTestMemoryThresholdListener(server1);
+    registerLoggingTestMemoryThresholdListener(server1);
     registerTestMemoryThresholdListener(server2);
 
     //NORMAL -> CRITICAL
@@ -418,6 +418,9 @@ public class MemoryThresholdsDUnitTest extends ClientServerTestCase {
         return null;
       }
     });
+    verifyListenerValue(server2, MemoryState.CRITICAL, 1, true);
+    verifyListenerValue(server2, MemoryState.EVICTION, 1, true);
+    verifyListenerValue(server2, MemoryState.NORMAL, 0, true);
 
     //make sure we get two events on remote server
     verifyListenerValue(server1, MemoryState.CRITICAL, 1, true);
@@ -434,6 +437,9 @@ public class MemoryThresholdsDUnitTest extends ClientServerTestCase {
         return null;
       }
     });
+    verifyListenerValue(server2, MemoryState.CRITICAL, 1, true);
+    verifyListenerValue(server2, MemoryState.EVICTION, 2, true);
+    verifyListenerValue(server2, MemoryState.NORMAL, 0, true);
     verifyListenerValue(server1, MemoryState.CRITICAL, 1, true);
     verifyListenerValue(server1, MemoryState.EVICTION, 2, true);
     verifyListenerValue(server1, MemoryState.NORMAL, 0, true);;
@@ -446,6 +452,9 @@ public class MemoryThresholdsDUnitTest extends ClientServerTestCase {
         return null;
       }
     });
+    verifyListenerValue(server2, MemoryState.CRITICAL, 1, true);
+    verifyListenerValue(server2, MemoryState.EVICTION, 2, true);
+    verifyListenerValue(server2, MemoryState.NORMAL, 0, true);
     verifyListenerValue(server1, MemoryState.CRITICAL, 1, true);
     verifyListenerValue(server1, MemoryState.EVICTION, 2, true);
     verifyListenerValue(server1, MemoryState.NORMAL, 0, true);
@@ -459,10 +468,14 @@ public class MemoryThresholdsDUnitTest extends ClientServerTestCase {
       }
     });
 
+    verifyListenerValue(server2, MemoryState.CRITICAL, 1, true);
+    verifyListenerValue(server2, MemoryState.EVICTION, 2, true);
+    verifyListenerValue(server2, MemoryState.NORMAL, 1, true);
     verifyListenerValue(server1, MemoryState.CRITICAL, 1, true);
     verifyListenerValue(server1, MemoryState.EVICTION, 2, true);
     verifyListenerValue(server1, MemoryState.NORMAL, 1, true);
     
+    this.getLogWriter().info("before NORMAL->CRITICAL->NORMAL");
     //NORMAL -> EVICTION -> NORMAL
     server2.invoke(new SerializableCallable() {
       public Object call() throws Exception {
@@ -472,7 +485,11 @@ public class MemoryThresholdsDUnitTest extends ClientServerTestCase {
         return null;
       }
     });
+    this.getLogWriter().info("after NORMAL->CRITICAL->NORMAL");
 
+    verifyListenerValue(server2, MemoryState.CRITICAL, 2, true);
+    verifyListenerValue(server2, MemoryState.EVICTION, 3, true);
+    verifyListenerValue(server2, MemoryState.NORMAL, 2, true);
     verifyListenerValue(server1, MemoryState.CRITICAL, 2, true);
     verifyListenerValue(server1, MemoryState.EVICTION, 3, true);
     verifyListenerValue(server1, MemoryState.NORMAL, 2, true);
@@ -486,6 +503,9 @@ public class MemoryThresholdsDUnitTest extends ClientServerTestCase {
       }
     });
 
+    verifyListenerValue(server2, MemoryState.CRITICAL, 2, true);
+    verifyListenerValue(server2, MemoryState.EVICTION, 4, true);
+    verifyListenerValue(server2, MemoryState.NORMAL, 2, true);
     verifyListenerValue(server1, MemoryState.CRITICAL, 2, true);
     verifyListenerValue(server1, MemoryState.EVICTION, 4, true);
     verifyListenerValue(server1, MemoryState.NORMAL, 2, true);
@@ -1452,6 +1472,18 @@ public class MemoryThresholdsDUnitTest extends ClientServerTestCase {
     });
   }
 
+  private void registerLoggingTestMemoryThresholdListener(VM vm) {
+    vm.invoke(new SerializableCallable() {
+      public Object call() throws Exception {
+        TestMemoryThresholdListener listener = new TestMemoryThresholdListener(true);
+        InternalResourceManager irm = ((GemFireCacheImpl)getCache()).getResourceManager();
+        irm.addResourceListener(ResourceType.HEAP_MEMORY, listener);
+        assertTrue(irm.getResourceListeners(ResourceType.HEAP_MEMORY).contains(listener));
+        return null;
+      }
+    });
+  }
+
   /**
    * Verifies that the test listener value on the given vm is what is expected
    * Note that for remote events useWaitCriterion must be true

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/06509f34/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/control/TestMemoryThresholdListener.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/control/TestMemoryThresholdListener.java b/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/control/TestMemoryThresholdListener.java
index ba1feb6..7dd596c 100644
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/control/TestMemoryThresholdListener.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/control/TestMemoryThresholdListener.java
@@ -16,6 +16,8 @@
  */
 package com.gemstone.gemfire.internal.cache.control;
 
+import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
+
 
 public class TestMemoryThresholdListener implements ResourceListener<MemoryEvent>{
   private int normalCalls = 0;
@@ -26,6 +28,14 @@ public class TestMemoryThresholdListener implements ResourceListener<MemoryEvent
   private long bytesFromThreshold = 0;
   private int currentHeapPercentage = 0;
   private int allCalls = 0;
+  private final boolean logOnEventCalls;
+  
+  public TestMemoryThresholdListener() {
+    this(false);
+  }
+  public TestMemoryThresholdListener(boolean log) {
+    this.logOnEventCalls = log;
+  }
 
   public  long getBytesFromThreshold() {
     synchronized (this) {
@@ -100,6 +110,9 @@ public class TestMemoryThresholdListener implements ResourceListener<MemoryEvent
    */
   @Override
   public void onEvent(MemoryEvent event) {
+    if (this.logOnEventCalls) {
+      InternalDistributedSystem.getAnyInstance().getLogWriter().info("TestMemoryThresholdListener onEvent " + event);
+    }
     synchronized (this) {
       if (event.getState().isNormal()) {
         this.normalCalls++;