You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by en...@apache.org on 2026/06/05 18:27:02 UTC

(sling-org-apache-sling-discovery-commons) branch master updated: stabilize TestInitDelayingTopologyEventListener testProperties (#14)

This is an automated email from the ASF dual-hosted git repository.

enapps-enorman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-discovery-commons.git


The following commit(s) were added to refs/heads/master by this push:
     new ac4147a  stabilize TestInitDelayingTopologyEventListener testProperties (#14)
ac4147a is described below

commit ac4147a363be24cc10f2695bbb16457cfc348c12
Author: Eric Norman <en...@apache.org>
AuthorDate: Fri Jun 5 11:26:57 2026 -0700

    stabilize TestInitDelayingTopologyEventListener testProperties (#14)
---
 .../commons/TestInitDelayingTopologyEventListener.java | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/test/java/org/apache/sling/discovery/commons/TestInitDelayingTopologyEventListener.java b/src/test/java/org/apache/sling/discovery/commons/TestInitDelayingTopologyEventListener.java
index 6462b49..a8fddb2 100644
--- a/src/test/java/org/apache/sling/discovery/commons/TestInitDelayingTopologyEventListener.java
+++ b/src/test/java/org/apache/sling/discovery/commons/TestInitDelayingTopologyEventListener.java
@@ -36,6 +36,7 @@ import org.apache.sling.discovery.TopologyEvent;
 import org.apache.sling.discovery.TopologyEvent.Type;
 import org.apache.sling.discovery.TopologyEventListener;
 import org.apache.sling.discovery.TopologyView;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.slf4j.Logger;
@@ -223,6 +224,17 @@ public class TestInitDelayingTopologyEventListener {
         };
     }
 
+    @BeforeClass
+    public static void beforeSuite() {
+        // When the jacoco agent is active, the instrumentation changes the timing of the first test which can cause
+        // unstable test results if the background threads run out of order. This dummy code attempts to fix the agent's
+        // overhead on the first test by using a call to "warm up" JaCoCo before the actual tests begin.
+        final TopologyEventListener delegate = Mockito.mock(TopologyEventListener.class);
+        InitDelayingTopologyEventListener warmupListener = new InitDelayingTopologyEventListener(1, delegate);
+        warmupListener.handleTopologyEvent(Mockito.mock(TopologyEvent.class));
+        warmupListener.dispose();
+    }
+
     @Test
     public void testConstructor() throws Exception {
         final TopologyEventListener delegate = new TopologyEventListener() {
@@ -444,11 +456,9 @@ public class TestInitDelayingTopologyEventListener {
     public void testProperties() throws Exception {
         final TestListener delegate = new TestListener();
         final Scheduler scheduler = createScheduler();
-        // NOTE: sometimes the 1 second startup delay didn't appear to be enough
-        //   and events were not delayed as expected.
-        //   Bumped the startup delay to 2 seconds for a more stable test.
+
         InitDelayingTopologyEventListener listener =
-                new InitDelayingTopologyEventListener(2, delegate, scheduler, logger);
+                new InitDelayingTopologyEventListener(1, delegate, scheduler, logger);
         listener.handleTopologyEvent(createEvent(Type.TOPOLOGY_INIT));
         listener.handleTopologyEvent(createEvent(Type.TOPOLOGY_CHANGING));
         listener.handleTopologyEvent(createEvent(Type.TOPOLOGY_CHANGED));