From adcd6d31afbaecd213284b894a5ba3c647c18e07 Mon Sep 17 00:00:00 2001 From: Rodrigo Salado Anaya Date: Thu, 20 Feb 2020 02:58:21 -0600 Subject: [PATCH] Use a http server to hold the port busy before the real test. (#3283) * Use a http server to hold the port busy before the real test. Signed-off-by: Rodrigo Salado Anaya * Use the onSuccess / onFailure lambdas to improve the test Signed-off-by: Rodrigo Salado Anaya * Following the recommendation of use AsyncTestBase.onFailure() Signed-off-by: Rodrigo Salado Anaya * Use onSuccess to check the port in the http server Signed-off-by: Rodrigo Salado Anaya * Use a finally block to close the http server Signed-off-by: Rodrigo Salado Anaya --- src/test/java/io/vertx/core/net/NetTest.java | 27 +++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/test/java/io/vertx/core/net/NetTest.java b/src/test/java/io/vertx/core/net/NetTest.java index 663e3a205..49e0f8d87 100755 --- a/src/test/java/io/vertx/core/net/NetTest.java +++ b/src/test/java/io/vertx/core/net/NetTest.java @@ -982,18 +982,21 @@ public class NetTest extends VertxTestBase { @Test public void testListenInvalidPort() { - /* Port 80 is free to use by any application on Windows, so this test fails. */ - Assume.assumeFalse(System.getProperty("os.name").startsWith("Windows")); - server.close(); - server = vertx.createNetServer(new NetServerOptions().setPort(80)); - server.connectHandler((netSocket) -> { - }).listen(ar -> { - assertTrue(ar.failed()); - assertFalse(ar.succeeded()); - assertNotNull(ar.cause()); - testComplete(); - }); - await(); + final int port = 9090; + final HttpServer httpServer = vertx.createHttpServer(); + try { + httpServer.requestHandler(ignore -> {}) + .listen(port, onSuccess(s -> + vertx.createNetServer() + .connectHandler(ignore -> {}) + .listen(port, onFailure(error -> { + assertNotNull(error); + testComplete(); + })))); + await(); + } finally { + httpServer.close(); + } } @Test