#6327 replace Await helper with awaitility
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
This commit is contained in:
parent
5dc856196e
commit
7867d51c91
|
@ -63,6 +63,11 @@
|
||||||
<groupId>org.slf4j</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
<artifactId>slf4j-api</artifactId>
|
<artifactId>slf4j-api</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.awaitility</groupId>
|
||||||
|
<artifactId>awaitility</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.eclipse.jetty.toolchain</groupId>
|
<groupId>org.eclipse.jetty.toolchain</groupId>
|
||||||
<artifactId>jetty-perf-helper</artifactId>
|
<artifactId>jetty-perf-helper</artifactId>
|
||||||
|
|
|
@ -13,13 +13,10 @@
|
||||||
|
|
||||||
package org.eclipse.jetty.util;
|
package org.eclipse.jetty.util;
|
||||||
|
|
||||||
import java.time.Duration;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ListIterator;
|
import java.util.ListIterator;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.Callable;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.CyclicBarrier;
|
import java.util.concurrent.CyclicBarrier;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
@ -30,7 +27,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import org.hamcrest.Matchers;
|
import org.hamcrest.Matchers;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static org.eclipse.jetty.util.BlockingArrayQueueTest.Await.await;
|
import static org.awaitility.Awaitility.await;
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
|
@ -528,35 +525,4 @@ public class BlockingArrayQueueTest
|
||||||
assertThat(queue.size(), Matchers.is(0));
|
assertThat(queue.size(), Matchers.is(0));
|
||||||
assertThat(queue, Matchers.empty());
|
assertThat(queue, Matchers.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
static class Await
|
|
||||||
{
|
|
||||||
private Duration duration;
|
|
||||||
|
|
||||||
public static Await await()
|
|
||||||
{
|
|
||||||
return new Await();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Await atMost(long time, TimeUnit unit)
|
|
||||||
{
|
|
||||||
duration = Duration.ofMillis(unit.toMillis(time));
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void until(Callable<Boolean> condition) throws Exception
|
|
||||||
{
|
|
||||||
Objects.requireNonNull(duration);
|
|
||||||
long start = System.nanoTime();
|
|
||||||
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
if (condition.call())
|
|
||||||
return;
|
|
||||||
if (duration.minus(Duration.ofNanos(System.nanoTime() - start)).isNegative())
|
|
||||||
throw new AssertionError("Duration expired");
|
|
||||||
Thread.sleep(10);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
5
pom.xml
5
pom.xml
|
@ -1131,6 +1131,11 @@
|
||||||
<artifactId>hamcrest</artifactId>
|
<artifactId>hamcrest</artifactId>
|
||||||
<version>${hamcrest.version}</version>
|
<version>${hamcrest.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.awaitility</groupId>
|
||||||
|
<artifactId>awaitility</artifactId>
|
||||||
|
<version>4.1.0</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.testcontainers</groupId>
|
<groupId>org.testcontainers</groupId>
|
||||||
<artifactId>testcontainers-bom</artifactId>
|
<artifactId>testcontainers-bom</artifactId>
|
||||||
|
|
|
@ -46,6 +46,11 @@
|
||||||
<artifactId>slf4j-api</artifactId>
|
<artifactId>slf4j-api</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.awaitility</groupId>
|
||||||
|
<artifactId>awaitility</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.eclipse.jetty</groupId>
|
<groupId>org.eclipse.jetty</groupId>
|
||||||
<artifactId>jetty-alpn-java-client</artifactId>
|
<artifactId>jetty-alpn-java-client</artifactId>
|
||||||
|
|
|
@ -20,11 +20,8 @@ import java.io.InterruptedIOException;
|
||||||
import java.io.UncheckedIOException;
|
import java.io.UncheckedIOException;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.time.Duration;
|
|
||||||
import java.util.Deque;
|
import java.util.Deque;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
import java.util.concurrent.Callable;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
@ -81,6 +78,7 @@ import org.junit.jupiter.params.ParameterizedTest;
|
||||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||||
|
|
||||||
import static java.nio.ByteBuffer.wrap;
|
import static java.nio.ByteBuffer.wrap;
|
||||||
|
import static org.awaitility.Awaitility.await;
|
||||||
import static org.eclipse.jetty.http.client.Transport.FCGI;
|
import static org.eclipse.jetty.http.client.Transport.FCGI;
|
||||||
import static org.eclipse.jetty.http.client.Transport.H2C;
|
import static org.eclipse.jetty.http.client.Transport.H2C;
|
||||||
import static org.eclipse.jetty.http.client.Transport.HTTP;
|
import static org.eclipse.jetty.http.client.Transport.HTTP;
|
||||||
|
@ -432,7 +430,7 @@ public class AsyncIOServletTest extends AbstractTest<AsyncIOServletTest.AsyncTra
|
||||||
// the server while we are about to write.
|
// the server while we are about to write.
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Await.await().atMost(5, TimeUnit.SECONDS).until(() ->
|
await().atMost(5, TimeUnit.SECONDS).until(() ->
|
||||||
{
|
{
|
||||||
out.write(new byte[0]);
|
out.write(new byte[0]);
|
||||||
// Extract HttpOutput._apiState value from toString.
|
// Extract HttpOutput._apiState value from toString.
|
||||||
|
@ -1865,35 +1863,4 @@ public class AsyncIOServletTest extends AbstractTest<AsyncIOServletTest.AsyncTra
|
||||||
super.stopServer();
|
super.stopServer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static class Await
|
|
||||||
{
|
|
||||||
private Duration duration;
|
|
||||||
|
|
||||||
public static Await await()
|
|
||||||
{
|
|
||||||
return new Await();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Await atMost(long time, TimeUnit unit)
|
|
||||||
{
|
|
||||||
duration = Duration.ofMillis(unit.toMillis(time));
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void until(Callable<Boolean> condition) throws Exception
|
|
||||||
{
|
|
||||||
Objects.requireNonNull(duration);
|
|
||||||
long start = System.nanoTime();
|
|
||||||
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
if (condition.call())
|
|
||||||
return;
|
|
||||||
if (duration.minus(Duration.ofNanos(System.nanoTime() - start)).isNegative())
|
|
||||||
throw new AssertionError("Duration expired");
|
|
||||||
Thread.sleep(10);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue