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());
}