summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2021-06-21 19:08:10 +0200
committerGitHub <noreply@github.com>2021-06-21 19:08:10 +0200
commitb11d4b8247201ccad1bf151ae80ee761a6d6ce99 (patch)
treedd130868b27a21c7741c265443fec24c5fb3edc7
parent1908efc44e73bafa310d0eee5b28da5fadaf4f09 (diff)
parent37c4aafe50cf6f2d452174faf26ee801bde5f531 (diff)
Merge pull request #18352 from vespa-engine/bjorncs/test-speedup
Bjorncs/test speedup
-rw-r--r--container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java54
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/test/ServerProviderConformanceTest.java2
2 files changed, 20 insertions, 36 deletions
diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java
index 2183098da2b..4c45319daf6 100644
--- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java
+++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java
@@ -12,12 +12,11 @@ import com.yahoo.jdisc.http.server.jetty.testutils.ConnectorFactoryRegistryModul
import com.yahoo.jdisc.test.ServerProviderConformanceTest;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
-import org.apache.http.ProtocolVersion;
-import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.hamcrest.Description;
@@ -27,6 +26,7 @@ import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
+import java.io.IOException;
import java.net.URI;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
@@ -34,6 +34,7 @@ import java.util.Collections;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Pattern;
@@ -64,6 +65,8 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest {
@SuppressWarnings("LoggerInitializedWithForeignClass")
private static Logger httpRequestDispatchLogger = Logger.getLogger(HttpRequestDispatch.class.getName());
private static Level httpRequestDispatchLoggerOriginalLevel;
+ private static CloseableHttpClient httpClient;
+ private static ExecutorService executorService;
/*
* Reduce logging of every stack trace for {@link ServerProviderConformanceTest.ConformanceException} thrown.
@@ -73,11 +76,16 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest {
public static void reduceExcessiveLogging() {
httpRequestDispatchLoggerOriginalLevel = httpRequestDispatchLogger.getLevel();
httpRequestDispatchLogger.setLevel(Level.SEVERE);
+ httpClient = HttpClientBuilder.create().build();
+ executorService = Executors.newSingleThreadExecutor();
}
@AfterClass
- public static void restoreExcessiveLogging() {
+ public static void restoreExcessiveLogging() throws IOException, InterruptedException {
httpRequestDispatchLogger.setLevel(httpRequestDispatchLoggerOriginalLevel);
+ httpClient.close();
+ executorService.shutdownNow();
+ executorService.awaitTermination(30, TimeUnit.SECONDS);
}
@AfterClass
@@ -742,20 +750,12 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest {
}
}
- private class TestRunner implements Adapter<JettyHttpServer, ClientProxy, Future<HttpResponse>> {
+ private class TestRunner implements Adapter<JettyHttpServer, Integer, Future<HttpResponse>> {
private Matcher<ResponseGist> expectedResponse = null;
- HttpVersion requestVersion;
- private final ExecutorService executorService = Executors.newSingleThreadExecutor();
void execute() throws Throwable {
- requestVersion = HttpVersion.HTTP_1_0;
runTest(this);
-
- requestVersion = HttpVersion.HTTP_1_1;
- runTest(this);
-
- executorService.shutdown();
}
TestRunner expect(final Matcher<ResponseGist> matcher) {
@@ -790,30 +790,27 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest {
}
@Override
- public ClientProxy newClient(final JettyHttpServer server) throws Throwable {
- return new ClientProxy(server.getListenPort(), requestVersion);
+ public Integer newClient(final JettyHttpServer server) throws Throwable {
+ return server.getListenPort();
}
@Override
public Future<HttpResponse> executeRequest(
- final ClientProxy client,
+ final Integer listenPort,
final boolean withRequestContent) throws Throwable {
final HttpUriRequest request;
- final URI requestUri = URI.create("http://localhost:" + client.listenPort + "/status.html");
+ final URI requestUri = URI.create("http://localhost:" + listenPort + "/status.html");
if (!withRequestContent) {
HttpGet httpGet = new HttpGet(requestUri);
- httpGet.setProtocolVersion(client.requestVersion);
+ httpGet.setProtocolVersion(HttpVersion.HTTP_1_1);
request = httpGet;
} else {
final HttpPost post = new HttpPost(requestUri);
post.setEntity(new StringEntity(REQUEST_CONTENT, StandardCharsets.UTF_8));
- post.setProtocolVersion(client.requestVersion);
+ post.setProtocolVersion(HttpVersion.HTTP_1_1);
request = post;
}
- log.fine(() -> "executorService:"
- + " .isShutDown()=" + executorService.isShutdown()
- + " .isTerminated()=" + executorService.isTerminated());
- return executorService.submit(() -> client.delegate.execute(request));
+ return executorService.submit(() -> httpClient.execute(request));
}
@Override
@@ -831,17 +828,4 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest {
assertThat(responseGist, expectedResponse);
}
}
-
- private static class ClientProxy {
-
- final HttpClient delegate;
- final int listenPort;
- final ProtocolVersion requestVersion;
-
- ClientProxy(final int listenPort, final HttpVersion requestVersion) {
- this.delegate = HttpClientBuilder.create().build();
- this.requestVersion = requestVersion;
- this.listenPort = listenPort;
- }
- }
}
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/test/ServerProviderConformanceTest.java b/jdisc_core/src/main/java/com/yahoo/jdisc/test/ServerProviderConformanceTest.java
index c9ce0e0b2e5..79fe8ea11d4 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/test/ServerProviderConformanceTest.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/test/ServerProviderConformanceTest.java
@@ -45,7 +45,7 @@ public abstract class ServerProviderConformanceTest {
private static final Logger log = Logger.getLogger(ServerProviderConformanceTest.class.getName());
- private static final int NUM_RUNS_EACH_TEST = 10;
+ private static final int NUM_RUNS_EACH_TEST = 1;
/**
* <p>This interface declares the adapter between the general conformance test and an actual <code>ServerProvider</code>