diff --git a/test/jdk/com/sun/net/httpserver/TcpNoDelayNotRequired.java b/test/jdk/com/sun/net/httpserver/TcpNoDelayNotRequired.java deleted file mode 100644 index a66f25dd487..00000000000 --- a/test/jdk/com/sun/net/httpserver/TcpNoDelayNotRequired.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/** - * @test - * @bug 6968351 - * @summary tcp no delay not required for small payloads - * @requires vm.compMode != "Xcomp" - * @library /test/lib - * @run main/othervm/timeout=5 -Dsun.net.httpserver.nodelay=false TcpNoDelayNotRequired - */ - -import com.sun.net.httpserver.Headers; -import com.sun.net.httpserver.HttpContext; -import com.sun.net.httpserver.HttpExchange; -import com.sun.net.httpserver.HttpHandler; -import com.sun.net.httpserver.HttpServer; - -import com.sun.net.httpserver.HttpsConfigurator; -import com.sun.net.httpserver.HttpsServer; -import jdk.test.lib.net.SimpleSSLContext; -import jdk.test.lib.net.URIBuilder; - -import javax.net.ssl.SSLContext; -import java.io.IOException; -import java.net.InetAddress; -import java.net.InetSocketAddress; -import java.net.http.HttpClient; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; -import java.nio.charset.StandardCharsets; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.util.logging.SimpleFormatter; -import java.util.logging.StreamHandler; - -public class TcpNoDelayNotRequired { - - public static final Logger LOGGER = Logger.getLogger("sun.net.www.protocol.http"); - - public static void main (String[] args) throws Exception { - - java.util.logging.Handler outHandler = new StreamHandler(System.out, - new SimpleFormatter()); - outHandler.setLevel(Level.FINEST); - LOGGER.setLevel(Level.FINEST); - LOGGER.addHandler(outHandler); - - InetAddress loopback = InetAddress.getLoopbackAddress(); - InetSocketAddress addr = new InetSocketAddress (loopback, 0); - - SSLContext sslContext = new SimpleSSLContext().get(); - - HttpServer httpServer = HttpServer.create (addr, 0); - testHttpServer("http",httpServer,sslContext); - - HttpsServer httpsServer = HttpsServer.create (addr, 0); - httpsServer.setHttpsConfigurator(new HttpsConfigurator(sslContext)); - - testHttpServer("https",httpsServer,sslContext); - } - - private static void testHttpServer(String scheme,HttpServer server,SSLContext sslContext) throws Exception { - HttpContext ctx = server.createContext ("/test", new Handler()); - HttpContext ctx2 = server.createContext ("/chunked", new ChunkedHandler()); - ExecutorService executor = Executors.newCachedThreadPool(); - server.setExecutor (executor); - server.start (); - try { - try (HttpClient client = HttpClient.newBuilder().sslContext(sslContext).build()) { - long start = System.currentTimeMillis(); - for (int i = 0; i < 1000; i++) { - var uri = URIBuilder.newBuilder().scheme(scheme).loopback().port(server.getAddress().getPort()).path("/test").build(); - var response = client.send(HttpRequest.newBuilder(uri).build(), HttpResponse.BodyHandlers.ofString()); - if (!response.body().equals("hello")) - throw new IllegalStateException("incorrect body " + response.body()); - } - for (int i = 0; i < 1000; i++) { - var uri = URIBuilder.newBuilder().scheme(scheme).loopback().port(server.getAddress().getPort()).path("/chunked").build(); - var response = client.send(HttpRequest.newBuilder(uri).build(), HttpResponse.BodyHandlers.ofString()); - if (!response.body().equals("hello")) - throw new IllegalStateException("incorrect body " + response.body()); - } - long time = System.currentTimeMillis() - start; - System.out.println("time " + time); - } - } finally { - server.stop(0); - } - executor.shutdown(); - } - - static class Handler implements HttpHandler { - public void handle (HttpExchange t) - throws IOException - { - Headers rmap = t.getResponseHeaders(); - try (var is = t.getRequestBody()) { - is.readAllBytes(); - } - rmap.add("content-type","text/plain"); - t.sendResponseHeaders(200,5); - try (var os = t.getResponseBody()) { - os.write("hello".getBytes(StandardCharsets.ISO_8859_1)); - } - } - } - static class ChunkedHandler implements HttpHandler { - public void handle (HttpExchange t) - throws IOException - { - Headers rmap = t.getResponseHeaders(); - try (var is = t.getRequestBody()) { - is.readAllBytes(); - } - rmap.add("content-type","text/plain"); - t.sendResponseHeaders(200,0); - try (var os = t.getResponseBody()) { - os.write("hello".getBytes(StandardCharsets.ISO_8859_1)); - } - } - } -}