diff options
-rw-r--r-- | container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java | 54 | ||||
-rw-r--r-- | jdisc_core/src/main/java/com/yahoo/jdisc/test/ServerProviderConformanceTest.java | 2 |
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> |