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

pkarwasz pushed a commit to branch 2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/2.x by this push:
     new 3ecf90e5e4 Use Awaitility in JeroMqAppenderTest
3ecf90e5e4 is described below

commit 3ecf90e5e466f9d7f90dd2ceb25b46f0be9803bf
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Tue Sep 5 08:00:09 2023 +0200

    Use Awaitility in JeroMqAppenderTest
---
 .../appender/mom/jeromq/JeroMqAppenderTest.java    | 39 +++++-----------------
 1 file changed, 8 insertions(+), 31 deletions(-)

diff --git 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
index 811af48a99..63eba8b07b 100644
--- 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
+++ 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
@@ -25,7 +25,6 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
 
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.ThreadContext;
@@ -44,6 +43,9 @@ import zmq.pipe.Pipe;
 import zmq.socket.pubsub.XPub;
 import zmq.util.MultiMap;
 
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+
+import static org.awaitility.Awaitility.waitAtMost;
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -78,7 +80,7 @@ public class JeroMqAppenderTest {
         final ExecutorService executor = Executors.newSingleThreadExecutor();
         try {
             final Future<List<String>> future = executor.submit(client);
-            final Pipe subscription = waitForSubscription(appender, 
DEFAULT_TIMEOUT_MS);
+            waitAtMost(DEFAULT_TIMEOUT_MS, MILLISECONDS).until(() -> 
!getSubscriptions(appender).isEmpty());
             appender.resetSendRcs();
             logger.info("Hello");
             logger.info("Again");
@@ -90,9 +92,9 @@ public class JeroMqAppenderTest {
             assertEquals("Hello", list.get(0));
             assertEquals("Again", list.get(1));
             assertEquals("barWorld", list.get(2));
-            waitForSubscriptionEnd(appender, subscription, DEFAULT_TIMEOUT_MS);
         } finally {
             executor.shutdown();
+            waitAtMost(DEFAULT_TIMEOUT_MS, MILLISECONDS).until(() -> 
getSubscriptions(appender).isEmpty());
         }
     }
 
@@ -108,7 +110,7 @@ public class JeroMqAppenderTest {
         final ExecutorService executor = Executors.newSingleThreadExecutor();
         try {
             final Future<List<String>> future = executor.submit(client);
-            final Pipe subscription = waitForSubscription(appender, 
DEFAULT_TIMEOUT_MS);
+            waitAtMost(DEFAULT_TIMEOUT_MS, MILLISECONDS).until(() -> 
!getSubscriptions(appender).isEmpty());
             appender.resetSendRcs();
             final ExecutorService fixedThreadPool = 
Executors.newFixedThreadPool(nThreads);
             for (int i = 0; i < 10.; i++) {
@@ -136,10 +138,10 @@ public class JeroMqAppenderTest {
             }
             assertEquals(nThreads, hello);
             assertEquals(nThreads, again);
-            waitForSubscriptionEnd(appender, subscription, DEFAULT_TIMEOUT_MS);
         } finally {
-            ExecutorServices.shutdown(executor, DEFAULT_TIMEOUT_MS, 
TimeUnit.MILLISECONDS,
+            ExecutorServices.shutdown(executor, DEFAULT_TIMEOUT_MS, 
MILLISECONDS,
                     JeroMqAppenderTest.class.getSimpleName());
+            waitAtMost(DEFAULT_TIMEOUT_MS, MILLISECONDS).until(() -> 
getSubscriptions(appender).isEmpty());
         }
     }
 
@@ -177,31 +179,6 @@ public class JeroMqAppenderTest {
         });
     }
 
-    private Pipe waitForSubscription(final JeroMqAppender appender, final int 
timeoutMs) throws Exception {
-        final long start = System.currentTimeMillis();
-        while (System.currentTimeMillis() - start < timeoutMs) {
-            final Set<Pipe> pipes = getSubscriptions(appender);
-            if (!pipes.isEmpty()) {
-                return pipes.iterator().next();
-            }
-            Thread.currentThread().sleep(100);
-        }
-        throw new TimeoutException();
-    }
-
-    private void waitForSubscriptionEnd(final JeroMqAppender appender, final 
Pipe subscription, final int timeoutMs)
-            throws Exception {
-        final long start = System.currentTimeMillis();
-        while (System.currentTimeMillis() - start < timeoutMs) {
-            final Set<Pipe> pipes = getSubscriptions(appender);
-            if (!pipes.contains(subscription)) {
-                return;
-            }
-            Thread.currentThread().sleep(100);
-        }
-        throw new TimeoutException();
-    }
-
     private Set<Pipe> getSubscriptions(final JeroMqAppender appender) {
         final SocketBase publisher = appender.getManager().getPublisher();
         // Process commands

Reply via email to