You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by st...@apache.org on 2015/11/09 10:08:05 UTC

svn commit: r1713352 - /sling/trunk/bundles/extensions/discovery/oak/src/test/java/org/apache/sling/discovery/oak/OakDiscoveryServiceTest.java

Author: stefanegli
Date: Mon Nov  9 09:08:04 2015
New Revision: 1713352

URL: http://svn.apache.org/viewvc?rev=1713352&view=rev
Log:
SLING-5278 : adding a 2sec safety sleep to avoid failing test on jenkins - plus more logging in case it reoccurs

Modified:
    sling/trunk/bundles/extensions/discovery/oak/src/test/java/org/apache/sling/discovery/oak/OakDiscoveryServiceTest.java

Modified: sling/trunk/bundles/extensions/discovery/oak/src/test/java/org/apache/sling/discovery/oak/OakDiscoveryServiceTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/oak/src/test/java/org/apache/sling/discovery/oak/OakDiscoveryServiceTest.java?rev=1713352&r1=1713351&r2=1713352&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/oak/src/test/java/org/apache/sling/discovery/oak/OakDiscoveryServiceTest.java (original)
+++ sling/trunk/bundles/extensions/discovery/oak/src/test/java/org/apache/sling/discovery/oak/OakDiscoveryServiceTest.java Mon Nov  9 09:08:04 2015
@@ -30,16 +30,19 @@ import org.apache.sling.discovery.base.i
 import org.apache.sling.discovery.commons.providers.base.DummyListener;
 import org.apache.sling.discovery.commons.providers.spi.base.DescriptorHelper;
 import org.apache.sling.discovery.commons.providers.spi.base.DiscoveryLiteConfig;
-import org.apache.sling.discovery.commons.providers.spi.base.DiscoveryLiteDescriptor;
 import org.apache.sling.discovery.commons.providers.spi.base.DiscoveryLiteDescriptorBuilder;
 import org.apache.sling.discovery.commons.providers.spi.base.DummySlingSettingsService;
 import org.apache.sling.discovery.commons.providers.spi.base.IdMapService;
 import org.apache.sling.discovery.oak.its.setup.OakVirtualInstanceBuilder;
 import org.apache.sling.discovery.oak.its.setup.SimulatedLeaseCollection;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class OakDiscoveryServiceTest {
 
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
     public final class SimpleCommonsConfig implements DiscoveryLiteConfig {
         
         private long bgIntervalMillis;
@@ -120,6 +123,7 @@ public class OakDiscoveryServiceTest {
     
     @Test
     public void testDescriptorSeqNumChange() throws Exception {
+        logger.info("testDescriptorSeqNumChange: start");
         OakVirtualInstanceBuilder builder1 = 
                 (OakVirtualInstanceBuilder) new OakVirtualInstanceBuilder()
                 .setDebugName("instance1")
@@ -134,19 +138,23 @@ public class OakDiscoveryServiceTest {
                 .setConnectorPingInterval(999)
                 .setConnectorPingTimeout(999);
         VirtualInstance instance2 = builder2.build();
+        logger.info("testDescriptorSeqNumChange: created both instances, binding listener...");
         
         DummyListener listener = new DummyListener();
         OakDiscoveryService discoveryService = (OakDiscoveryService) instance1.getDiscoveryService();
         discoveryService.bindTopologyEventListener(listener);
         
+        logger.info("testDescriptorSeqNumChange: waiting 2sec, listener should not get anything yet");
         assertEquals(0, discoveryService.getViewStateManager().waitForAsyncEvents(2000));
         assertEquals(0, listener.countEvents());
         
+        logger.info("testDescriptorSeqNumChange: issuing 2 heartbeats with each instance should let the topology get established");
         instance1.heartbeatsAndCheckView();
         instance2.heartbeatsAndCheckView();
         instance1.heartbeatsAndCheckView();
         instance2.heartbeatsAndCheckView();
 
+        logger.info("testDescriptorSeqNumChange: listener should get an event within 2sec from now at latest");
         assertEquals(0, discoveryService.getViewStateManager().waitForAsyncEvents(2000));
         assertEquals(1, listener.countEvents());
         
@@ -161,9 +169,15 @@ public class OakDiscoveryServiceTest {
         // while we were sleeping
         SimulatedLeaseCollection c = builder1.getSimulatedLeaseCollection();
         c.incSeqNum(2);
-        
+        logger.info("testDescriptorSeqNumChange: incremented seqnum by 2 - issuing another heartbeat should trigger a topology change");
         instance1.heartbeatsAndCheckView();
+        
+        // due to the nature of the syncService/minEventDelay we now explicitly first sleep 2sec before waiting for async events for another 2sec
+        logger.info("testDescriptorSeqNumChange: sleeping 2sec for topology change to happen");
+        Thread.sleep(2000);
+        logger.info("testDescriptorSeqNumChange: ensuring no async events are still in the pipe - for another 2sec");
         assertEquals(0, discoveryService.getViewStateManager().waitForAsyncEvents(2000));
+        logger.info("testDescriptorSeqNumChange: now listener should have received 3 events, it got: "+listener.countEvents());
         assertEquals(3, listener.countEvents());
     }