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

lhotari pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 602478f28ed [fix][test] Cleanup test resources in pulsar-client module 
(#21382)
602478f28ed is described below

commit 602478f28eda402875beb0cd616a3a3262079a8e
Author: Lari Hotari <[email protected]>
AuthorDate: Wed Oct 18 03:06:24 2023 +0300

    [fix][test] Cleanup test resources in pulsar-client module (#21382)
---
 .../org/apache/pulsar/client/impl/AutoClusterFailoverTest.java   | 7 +++++++
 .../java/org/apache/pulsar/client/impl/ClientTestFixtures.java   | 8 +++++++-
 .../apache/pulsar/client/impl/ControlledClusterFailoverTest.java | 3 +++
 .../apache/pulsar/client/impl/PartitionedProducerImplTest.java   | 9 ++++++++-
 .../apache/pulsar/client/impl/ProducerStatsRecorderImplTest.java | 4 ++++
 .../java/org/apache/pulsar/client/impl/PulsarClientImplTest.java | 1 +
 .../apache/pulsar/client/impl/auth/AuthenticationTokenTest.java  | 2 ++
 .../pulsar/client/impl/conf/ConfigurationDataUtilsTest.java      | 3 +++
 8 files changed, 35 insertions(+), 2 deletions(-)

diff --git 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/AutoClusterFailoverTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/AutoClusterFailoverTest.java
index 63fbb239439..545cf7483e4 100644
--- 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/AutoClusterFailoverTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/AutoClusterFailoverTest.java
@@ -28,6 +28,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
+import lombok.Cleanup;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.pulsar.client.api.Authentication;
 import org.apache.pulsar.client.api.AuthenticationFactory;
@@ -48,6 +49,7 @@ public class AutoClusterFailoverTest {
         long failoverDelay = 30;
         long switchBackDelay = 60;
         long checkInterval = 1_000;
+        @Cleanup
         ServiceUrlProvider provider = AutoClusterFailover.builder()
                 .primary(primary)
                 .secondary(Collections.singletonList(secondary))
@@ -86,6 +88,7 @@ public class AutoClusterFailoverTest {
         Map<String, Authentication> secondaryAuthentications = new HashMap<>();
         secondaryAuthentications.put(secondary, secondaryAuthentication);
 
+        @Cleanup
         ServiceUrlProvider provider1 = AutoClusterFailover.builder()
                 .primary(primary)
                 .secondary(Collections.singletonList(secondary))
@@ -112,6 +115,7 @@ public class AutoClusterFailoverTest {
 
         ClientConfigurationData configurationData = new 
ClientConfigurationData();
 
+        @Cleanup
         ServiceUrlProvider provider = AutoClusterFailover.builder()
                 .primary(primary)
                 .secondary(Collections.singletonList(secondary))
@@ -156,6 +160,7 @@ public class AutoClusterFailoverTest {
 
         ClientConfigurationData configurationData = new 
ClientConfigurationData();
 
+        @Cleanup
         ServiceUrlProvider provider = AutoClusterFailover.builder()
                 .primary(primary)
                 .secondary(Collections.singletonList(secondary))
@@ -210,6 +215,7 @@ public class AutoClusterFailoverTest {
         
configurationData.setTlsTrustCertsFilePath(primaryTlsTrustCertsFilePath);
         configurationData.setAuthentication(primaryAuthentication);
 
+        @Cleanup
         ServiceUrlProvider provider = AutoClusterFailover.builder()
                 .primary(primary)
                 .secondary(Collections.singletonList(secondary))
@@ -265,6 +271,7 @@ public class AutoClusterFailoverTest {
         configurationData.setTlsTrustStorePath(primaryTlsTrustStorePath);
         
configurationData.setTlsTrustStorePassword(primaryTlsTrustStorePassword);
 
+        @Cleanup
         ServiceUrlProvider provider = AutoClusterFailover.builder()
                 .primary(primary)
                 .secondary(Collections.singletonList(secondary))
diff --git 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ClientTestFixtures.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ClientTestFixtures.java
index ff7d7f12dd4..738d969ac74 100644
--- 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ClientTestFixtures.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ClientTestFixtures.java
@@ -24,6 +24,7 @@ import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.channel.EventLoop;
 import io.netty.util.Timer;
@@ -38,7 +39,12 @@ import org.apache.pulsar.client.util.ExecutorProvider;
 import org.mockito.Mockito;
 
 class ClientTestFixtures {
-    public static ScheduledExecutorService SCHEDULER = 
Executors.newSingleThreadScheduledExecutor();
+    public static ScheduledExecutorService SCHEDULER =
+            Executors.newSingleThreadScheduledExecutor(
+                    new ThreadFactoryBuilder()
+                            .setNameFormat("ClientTestFixtures-SCHEDULER-%d")
+                            .setDaemon(true)
+                            .build());
 
 //    static <T> PulsarClientImpl createPulsarClientMock() {
 //        return createPulsarClientMock(mock(ExecutorService.class));
diff --git 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ControlledClusterFailoverTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ControlledClusterFailoverTest.java
index 227e0db10b7..36160d40d54 100644
--- 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ControlledClusterFailoverTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ControlledClusterFailoverTest.java
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
+import lombok.Cleanup;
 import org.apache.pulsar.client.api.Authentication;
 import org.apache.pulsar.client.api.ServiceUrlProvider;
 import org.asynchttpclient.Request;
@@ -47,6 +48,7 @@ public class ControlledClusterFailoverTest {
         Map<String, String> header = new HashMap<>();
         header.put(keyA, valueA);
         header.put(keyB, valueB);
+        @Cleanup
         ServiceUrlProvider provider = ControlledClusterFailover.builder()
             .defaultServiceUrl(defaultServiceUrl)
             .urlProvider(urlProvider)
@@ -81,6 +83,7 @@ public class ControlledClusterFailoverTest {
         controlledConfiguration.setAuthPluginClassName(authPluginClassName);
         controlledConfiguration.setAuthParamsString(authParamsString);
 
+        @Cleanup
         ServiceUrlProvider provider = ControlledClusterFailover.builder()
             .defaultServiceUrl(defaultServiceUrl)
             .urlProvider(urlProvider)
diff --git 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/PartitionedProducerImplTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/PartitionedProducerImplTest.java
index 2bd18f69386..b38b17a731b 100644
--- 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/PartitionedProducerImplTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/PartitionedProducerImplTest.java
@@ -29,10 +29,10 @@ import static org.testng.Assert.assertNotEquals;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
+import com.google.api.client.util.Lists;
 import io.netty.channel.EventLoopGroup;
 import io.netty.util.Timer;
 import io.netty.util.concurrent.DefaultThreadFactory;
-import com.google.api.client.util.Lists;
 import java.lang.reflect.Field;
 import java.nio.ByteBuffer;
 import java.util.List;
@@ -40,6 +40,7 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ThreadFactory;
+import lombok.Cleanup;
 import org.apache.pulsar.client.api.Message;
 import org.apache.pulsar.client.api.MessageRouter;
 import org.apache.pulsar.client.api.MessageRoutingMode;
@@ -188,8 +189,10 @@ public class PartitionedProducerImplTest {
         conf.setStatsIntervalSeconds(100);
 
         ThreadFactory threadFactory = new 
DefaultThreadFactory("client-test-stats", Thread.currentThread().isDaemon());
+        @Cleanup("shutdownGracefully")
         EventLoopGroup eventLoopGroup = 
EventLoopUtil.newEventLoopGroup(conf.getNumIoThreads(), false, threadFactory);
 
+        @Cleanup
         PulsarClientImpl clientImpl = new PulsarClientImpl(conf, 
eventLoopGroup);
 
         ProducerConfigurationData producerConfData = new 
ProducerConfigurationData();
@@ -214,9 +217,11 @@ public class PartitionedProducerImplTest {
 
         ThreadFactory threadFactory =
                 new DefaultThreadFactory("client-test-stats", 
Thread.currentThread().isDaemon());
+        @Cleanup("shutdownGracefully")
         EventLoopGroup eventLoopGroup = EventLoopUtil
                 .newEventLoopGroup(conf.getNumIoThreads(), false, 
threadFactory);
 
+        @Cleanup
         PulsarClientImpl clientImpl = new PulsarClientImpl(conf, 
eventLoopGroup);
 
         ProducerConfigurationData producerConfData = new 
ProducerConfigurationData();
@@ -246,8 +251,10 @@ public class PartitionedProducerImplTest {
         conf.setStatsIntervalSeconds(100);
 
         ThreadFactory threadFactory = new 
DefaultThreadFactory("client-test-stats", Thread.currentThread().isDaemon());
+        @Cleanup("shutdownGracefully")
         EventLoopGroup eventLoopGroup = 
EventLoopUtil.newEventLoopGroup(conf.getNumIoThreads(), false, threadFactory);
 
+        @Cleanup
         PulsarClientImpl clientImpl = new PulsarClientImpl(conf, 
eventLoopGroup);
 
         ProducerConfigurationData producerConfData = new 
ProducerConfigurationData();
diff --git 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ProducerStatsRecorderImplTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ProducerStatsRecorderImplTest.java
index 27e2dcb37ce..8f648bfd9ff 100644
--- 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ProducerStatsRecorderImplTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ProducerStatsRecorderImplTest.java
@@ -26,6 +26,7 @@ import static org.testng.Assert.assertTrue;
 import io.netty.util.HashedWheelTimer;
 import io.netty.util.Timer;
 import java.util.concurrent.TimeUnit;
+import lombok.Cleanup;
 import org.apache.pulsar.client.impl.conf.ClientConfigurationData;
 import org.apache.pulsar.client.impl.conf.ProducerConfigurationData;
 import org.testng.annotations.Test;
@@ -43,6 +44,7 @@ public class ProducerStatsRecorderImplTest {
         ConnectionPool connectionPool = mock(ConnectionPool.class);
         when(client.getCnxPool()).thenReturn(connectionPool);
         when(client.getConfiguration()).thenReturn(conf);
+        @Cleanup("stop")
         Timer timer = new HashedWheelTimer();
         when(client.timer()).thenReturn(timer);
         ProducerImpl<?> producer = mock(ProducerImpl.class);
@@ -55,6 +57,7 @@ public class ProducerStatsRecorderImplTest {
         recorder.incrementNumAcksReceived(latencyNs);
         Thread.sleep(1200);
         assertEquals(1000.0, recorder.getSendLatencyMillisMax(), 0.5);
+        recorder.cancelStatsTimeout();
     }
 
     @Test
@@ -65,6 +68,7 @@ public class ProducerStatsRecorderImplTest {
         ConnectionPool connectionPool = mock(ConnectionPool.class);
         when(client.getCnxPool()).thenReturn(connectionPool);
         when(client.getConfiguration()).thenReturn(conf);
+        @Cleanup("stop")
         Timer timer = new HashedWheelTimer();
         when(client.timer()).thenReturn(timer);
         ProducerImpl<?> producer = mock(ProducerImpl.class);
diff --git 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/PulsarClientImplTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/PulsarClientImplTest.java
index e0b25db8912..c8278ccbd7a 100644
--- 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/PulsarClientImplTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/PulsarClientImplTest.java
@@ -178,6 +178,7 @@ public class PulsarClientImplTest {
     @Test
     public void testInitializeWithTimer() throws PulsarClientException {
         ClientConfigurationData conf = new ClientConfigurationData();
+        @Cleanup("shutdownGracefully")
         EventLoopGroup eventLoop = EventLoopUtil.newEventLoopGroup(1, false, 
new DefaultThreadFactory("test"));
         ConnectionPool pool = Mockito.spy(new ConnectionPool(conf, eventLoop));
         conf.setServiceUrl("pulsar://localhost:6650");
diff --git 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/auth/AuthenticationTokenTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/auth/AuthenticationTokenTest.java
index 589258eb09e..a6e529d9940 100644
--- 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/auth/AuthenticationTokenTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/auth/AuthenticationTokenTest.java
@@ -28,6 +28,7 @@ import java.io.*;
 import java.nio.charset.StandardCharsets;
 import java.util.function.Supplier;
 
+import lombok.Cleanup;
 import org.apache.commons.io.FileUtils;
 import org.apache.pulsar.client.api.Authentication;
 import org.apache.pulsar.client.api.AuthenticationDataProvider;
@@ -68,6 +69,7 @@ public class AuthenticationTokenTest {
         clientConfig.setAuthentication(AuthenticationFactory.create(
                 AuthenticationToken.class.getName(), "token-xyz"));
 
+        @Cleanup
         PulsarClientImpl pulsarClient = new PulsarClientImpl(clientConfig);
 
         Authentication authToken = 
pulsarClient.getConfiguration().getAuthentication();
diff --git 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ConfigurationDataUtilsTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ConfigurationDataUtilsTest.java
index 354d25f5d7f..0e0117d400f 100644
--- 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ConfigurationDataUtilsTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ConfigurationDataUtilsTest.java
@@ -20,6 +20,7 @@ package org.apache.pulsar.client.impl.conf;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.ImmutableSet;
+import lombok.Cleanup;
 import org.testng.Assert;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
@@ -148,6 +149,7 @@ public class ConfigurationDataUtilsTest {
         clientConfig.setServiceUrl("pulsar://unknown:6650");
         clientConfig.setStatsIntervalSeconds(80);
 
+        @Cleanup
         PulsarClientImpl pulsarClient = new PulsarClientImpl(clientConfig);
         assertNotNull(pulsarClient, "Pulsar client built using config should 
not be null");
 
@@ -213,6 +215,7 @@ public class ConfigurationDataUtilsTest {
         clientConfig.setSocks5ProxyUsername("test");
         clientConfig.setSocks5ProxyPassword("test123");
 
+        @Cleanup
         PulsarClientImpl pulsarClient = new PulsarClientImpl(clientConfig);
         assertEquals(pulsarClient.getConfiguration().getSocks5ProxyAddress(), 
new InetSocketAddress("localhost", 11080));
         assertEquals(pulsarClient.getConfiguration().getSocks5ProxyUsername(), 
"test");

Reply via email to