diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-05-06 09:38:49 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-05-06 09:57:24 +0200 |
commit | e2d0b64ada277a8891ced211515d97c044ae98d8 (patch) | |
tree | f887877abfa407ecc872112aa1ffc48682014fa6 /container-core | |
parent | c88d29edb4625fda0705e5979a0950b3667b75d9 (diff) |
Configure timeouts on Jetty client and add retries to access log validation
Diffstat (limited to 'container-core')
-rw-r--r-- | container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ProxyProtocolTest.java | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ProxyProtocolTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ProxyProtocolTest.java index 43544f07f9f..8d499b8086a 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ProxyProtocolTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ProxyProtocolTest.java @@ -21,11 +21,13 @@ import org.junit.jupiter.api.io.TempDir; import java.io.IOException; import java.net.URI; import java.nio.file.Path; +import java.util.Collection; import java.util.concurrent.ExecutionException; import java.util.logging.Level; import java.util.logging.Logger; import static com.yahoo.jdisc.http.server.jetty.Utils.generatePrivateKeyAndCertificate; +import static com.yahoo.yolean.Exceptions.uncheckInterrupted; import static org.eclipse.jetty.client.ProxyProtocolClientConnectionFactory.V1; import static org.eclipse.jetty.client.ProxyProtocolClientConnectionFactory.V2; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -66,7 +68,7 @@ class ProxyProtocolTest { sendJettyClientRequest(driver, certificateFile, new V2.Tag(proxiedRemoteAddress, proxiedRemotePort)); assertTrue(driver.close()); - assertEquals(2, requestLogMock.entries().size()); + assertLogSize(2, requestLogMock.entries()); assertLogEntryHasRemote(requestLogMock.entries().get(0), proxiedRemoteAddress, proxiedRemotePort); assertLogEntryHasRemote(requestLogMock.entries().get(1), proxiedRemoteAddress, proxiedRemotePort); Assertions.assertThat(connectionLog.logEntries()).hasSize(2); @@ -86,7 +88,7 @@ class ProxyProtocolTest { sendJettyClientRequest(driver, certificateFile, new V2.Tag(proxiedRemoteAddress, 12345)); assertTrue(driver.close()); - assertEquals(3, requestLogMock.entries().size()); + assertLogSize(3, requestLogMock.entries()); assertLogEntryHasRemote(requestLogMock.entries().get(0), "127.0.0.1", 0); assertLogEntryHasRemote(requestLogMock.entries().get(1), proxiedRemoteAddress, 0); assertLogEntryHasRemote(requestLogMock.entries().get(2), proxiedRemoteAddress, 0); @@ -111,6 +113,7 @@ class ProxyProtocolTest { int clientPort = Integer.parseInt(response.getHeaders().get("Jdisc-Local-Port")); assertNotEquals(proxyLocalPort, clientPort); + assertLogSize(1, connectionLog.logEntries()); assertNotEquals(proxyLocalPort, connectionLog.logEntries().get(0).localPort().get().intValue()); } @@ -168,6 +171,9 @@ class ProxyProtocolTest { clientSslCtxFactory.setSslContext(new SslContextBuilder().withTrustStore(certificateFile).build()); HttpClient client = new HttpClient(clientSslCtxFactory); + client.setConnectTimeout(60*1000); + client.setStopTimeout(60*1000); + client.setIdleTimeout(60*1000); client.start(); return client; } @@ -193,4 +199,11 @@ class ProxyProtocolTest { } + private static void assertLogSize(int expectedItems, Collection<?> items) { + for (int attempt = 0; attempt < 10; attempt++) { + if (items.size() >= expectedItems) break; + uncheckInterrupted(() -> Thread.sleep(200)); + } + Assertions.assertThat(items).hasSize(expectedItems); + } } |