Repository: geode Updated Branches: refs/heads/develop 77a0b9f8e -> dd7c45b43
GEODE-3502: Added awaitility clauses. * Added awaitility clauses while waiting for the stat comparison checks * Replaced the deprecated Wait Criterion with Awaitility clause with increased timeout * Replaced the invokeAsync with invoke to make the test identical to the one in ClientHealthStatsDUnitTest * Removed the commented out flaky tag This closes #749 Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/dd7c45b4 Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/dd7c45b4 Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/dd7c45b4 Branch: refs/heads/develop Commit: dd7c45b438eede230ac78d2fe4f0bca88200dec7 Parents: 77a0b9f Author: nabarun <n...@pivotal.io> Authored: Tue Aug 29 11:05:28 2017 -0700 Committer: nabarun <n...@pivotal.io> Committed: Tue Aug 29 14:47:00 2017 -0700 ---------------------------------------------------------------------- .../internal/cache/ha/Bug48571DUnitTest.java | 72 ++++++++++---------- 1 file changed, 35 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/dd7c45b4/geode-core/src/test/java/org/apache/geode/internal/cache/ha/Bug48571DUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/ha/Bug48571DUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/ha/Bug48571DUnitTest.java index 516275a..00ce44b 100644 --- a/geode-core/src/test/java/org/apache/geode/internal/cache/ha/Bug48571DUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/internal/cache/ha/Bug48571DUnitTest.java @@ -49,12 +49,15 @@ import org.apache.geode.test.dunit.WaitCriterion; import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase; import org.apache.geode.test.junit.categories.ClientSubscriptionTest; import org.apache.geode.test.junit.categories.DistributedTest; + +import org.awaitility.Awaitility; import org.junit.Test; import org.junit.experimental.categories.Category; import java.util.Collection; import java.util.Iterator; import java.util.Properties; +import java.util.concurrent.TimeUnit; @Category({DistributedTest.class, ClientSubscriptionTest.class}) public class Bug48571DUnitTest extends JUnit4DistributedTestCase { @@ -95,32 +98,24 @@ public class Bug48571DUnitTest extends JUnit4DistributedTestCase { } private static void verifyProxyHasBeenPaused() { - WaitCriterion criterion = new WaitCriterion() { - @Override - public boolean done() { - CacheClientNotifier ccn = CacheClientNotifier.getInstance(); - Collection<CacheClientProxy> ccProxies = ccn.getClientProxies(); - - Iterator<CacheClientProxy> itr = ccProxies.iterator(); - - while (itr.hasNext()) { - CacheClientProxy ccp = itr.next(); - System.out.println("proxy status " + ccp.getState()); - if (ccp.isPaused()) - return true; + Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> { + CacheClientNotifier ccn = CacheClientNotifier.getInstance(); + Collection<CacheClientProxy> ccProxies = ccn.getClientProxies(); + boolean pausedFlag = false; + Iterator<CacheClientProxy> itr = ccProxies.iterator(); + + while (itr.hasNext()) { + CacheClientProxy ccp = itr.next(); + System.out.println("proxy status " + ccp.getState()); + if (ccp.isPaused()) { + pausedFlag = true; + break; } - return false; - } - - @Override - public String description() { - return "Proxy has not paused yet"; } - }; - Wait.waitForCriterion(criterion, 15 * 1000, 200, true); + assertEquals("Proxy has not been paused in 1 minute", true, pausedFlag); + }); } - // @Category(FlakyTest.class) // GEODE-510 @Test public void testStatsMatchWithSize() throws Exception { IgnoredException.addIgnoredException("Unexpected IOException||Connection reset"); @@ -135,7 +130,7 @@ public class Bug48571DUnitTest extends JUnit4DistributedTestCase { server.invoke("verifyProxyHasBeenPaused", () -> verifyProxyHasBeenPaused()); // resume puts on server, add another 100. - server.invokeAsync(() -> Bug48571DUnitTest.resumePuts()); // TODO: join or await result + server.invoke(() -> Bug48571DUnitTest.resumePuts()); // start durable client client.invoke(() -> Bug48571DUnitTest.createClientCache(client.getHost(), port)); // wait for full queue dispatch @@ -283,19 +278,22 @@ public class Bug48571DUnitTest extends JUnit4DistributedTestCase { } public static void verifyStats() throws Exception { - CacheClientNotifier ccn = CacheClientNotifier.getInstance(); - CacheClientProxy ccp = ccn.getClientProxies().iterator().next(); - cache.getLoggerI18n().info(LocalizedStrings.DEBUG, "getQueueSize() " + ccp.getQueueSize()); - cache.getLoggerI18n().info(LocalizedStrings.DEBUG, - "getQueueSizeStat() " + ccp.getQueueSizeStat()); - cache.getLoggerI18n().info(LocalizedStrings.DEBUG, - "getEventsEnqued() " + ccp.getHARegionQueue().getStatistics().getEventsEnqued()); - cache.getLoggerI18n().info(LocalizedStrings.DEBUG, - "getEventsDispatched() " + ccp.getHARegionQueue().getStatistics().getEventsDispatched()); - cache.getLoggerI18n().info(LocalizedStrings.DEBUG, - "getEventsRemoved() " + ccp.getHARegionQueue().getStatistics().getEventsRemoved()); - cache.getLoggerI18n().info(LocalizedStrings.DEBUG, - "getNumVoidRemovals() " + ccp.getHARegionQueue().getStatistics().getNumVoidRemovals()); - assertEquals(ccp.getQueueSize(), ccp.getQueueSizeStat()); + Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> { + CacheClientNotifier ccn = CacheClientNotifier.getInstance(); + CacheClientProxy ccp = ccn.getClientProxies().iterator().next(); + cache.getLoggerI18n().info(LocalizedStrings.DEBUG, "getQueueSize() " + ccp.getQueueSize()); + cache.getLoggerI18n().info(LocalizedStrings.DEBUG, + "getQueueSizeStat() " + ccp.getQueueSizeStat()); + cache.getLoggerI18n().info(LocalizedStrings.DEBUG, + "getEventsEnqued() " + ccp.getHARegionQueue().getStatistics().getEventsEnqued()); + cache.getLoggerI18n().info(LocalizedStrings.DEBUG, + "getEventsDispatched() " + ccp.getHARegionQueue().getStatistics().getEventsDispatched()); + cache.getLoggerI18n().info(LocalizedStrings.DEBUG, + "getEventsRemoved() " + ccp.getHARegionQueue().getStatistics().getEventsRemoved()); + cache.getLoggerI18n().info(LocalizedStrings.DEBUG, + "getNumVoidRemovals() " + ccp.getHARegionQueue().getStatistics().getNumVoidRemovals()); + assertEquals("The queue size did not match the stat value", ccp.getQueueSize(), + ccp.getQueueSizeStat()); + }); } }