This is an automated email from the ASF dual-hosted git repository.
ptupitsyn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new bed2a17f00 IGNITE-19011 Fix testCustomAsyncContinuationExecutor
flakiness (#1816)
bed2a17f00 is described below
commit bed2a17f0063c14a9c69b13369171c677455a8c0
Author: Pavel Tupitsyn <[email protected]>
AuthorDate: Mon Mar 20 13:06:47 2023 +0300
IGNITE-19011 Fix testCustomAsyncContinuationExecutor flakiness (#1816)
Use responseDelay to make sure that future does not complete synchronously.
---
.../apache/ignite/client/ConfigurationTest.java | 33 +++++++++++++---------
1 file changed, 19 insertions(+), 14 deletions(-)
diff --git
a/modules/client/src/test/java/org/apache/ignite/client/ConfigurationTest.java
b/modules/client/src/test/java/org/apache/ignite/client/ConfigurationTest.java
index b7b49751e5..ab74671864 100644
---
a/modules/client/src/test/java/org/apache/ignite/client/ConfigurationTest.java
+++
b/modules/client/src/test/java/org/apache/ignite/client/ConfigurationTest.java
@@ -31,6 +31,7 @@ import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Function;
import org.apache.ignite.Ignite;
import org.apache.ignite.lang.IgniteException;
import org.junit.jupiter.api.Test;
@@ -158,24 +159,28 @@ public class ConfigurationTest extends AbstractClientTest
{
@Test
public void testCustomAsyncContinuationExecutor() throws Exception {
- ExecutorService executor = Executors.newSingleThreadExecutor();
+ Function<Integer, Integer> responseDelay = x -> 50;
- var builderThreadName = new AtomicReference<String>();
+ try (var testServer = new TestServer(10900, 10, 0, server, x -> false,
responseDelay, "n2", clusterId)) {
+ ExecutorService executor = Executors.newSingleThreadExecutor();
- CompletableFuture<IgniteClient> builder = IgniteClient.builder()
- .addresses("127.0.0.1:" + serverPort)
- .asyncContinuationExecutor(executor)
- .buildAsync()
- .whenComplete((res, err) ->
builderThreadName.set(Thread.currentThread().getName()));
+ var builderThreadName = new AtomicReference<String>();
- try (IgniteClient ignite = builder.join()) {
- String threadName = ignite.tables().tablesAsync().thenApply(unused
-> Thread.currentThread().getName()).join();
+ CompletableFuture<IgniteClient> builder = IgniteClient.builder()
+ .addresses("127.0.0.1:" + testServer.port())
+ .asyncContinuationExecutor(executor)
+ .buildAsync()
+ .whenComplete((res, err) ->
builderThreadName.set(Thread.currentThread().getName()));
- assertEquals(executor,
ignite.configuration().asyncContinuationExecutor());
- assertThat(threadName, startsWith("pool-"));
- assertThat(builderThreadName.get(), startsWith("pool-"));
- }
+ try (IgniteClient ignite = builder.join()) {
+ String threadName =
ignite.tables().tablesAsync().thenApply(unused ->
Thread.currentThread().getName()).join();
- executor.shutdown();
+ assertEquals(executor,
ignite.configuration().asyncContinuationExecutor());
+ assertThat(threadName, startsWith("pool-"));
+ assertThat(builderThreadName.get(), startsWith("pool-"));
+ }
+
+ executor.shutdown();
+ }
}
}