From 7e7d7ca866e0397f82c49c2117cfb3f36b711233 Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Tue, 15 Aug 2023 09:25:46 +0300 Subject: [PATCH] Set http client read timeout only for the read timeout test (#9194) --- .../src/test/groovy/JaxRsClientV1Test.groovy | 29 ++++++++++++++++--- .../spring/web/SpringRestTemplateTest.java | 22 +++++++++----- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/test/groovy/JaxRsClientV1Test.groovy b/instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/test/groovy/JaxRsClientV1Test.groovy index ee6bfbf15f..ebf8dc0329 100644 --- a/instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/test/groovy/JaxRsClientV1Test.groovy +++ b/instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/test/groovy/JaxRsClientV1Test.groovy @@ -17,19 +17,40 @@ import spock.lang.Shared class JaxRsClientV1Test extends HttpClientTest implements AgentTestTrait { @Shared - Client client = Client.create() + Client client = buildClient(false) - def setupSpec() { + @Shared + Client clientWithReadTimeout = buildClient(true) + + def buildClient(boolean readTimeout) { + def client = Client.create() client.setConnectTimeout(CONNECT_TIMEOUT_MS) - client.setReadTimeout(READ_TIMEOUT_MS) + if (readTimeout) { + client.setReadTimeout(READ_TIMEOUT_MS) + } // Add filters to ensure spans aren't duplicated. client.addFilter(new LoggingFilter()) client.addFilter(new GZIPContentEncodingFilter()) + + return client + } + + Client getClient(URI uri) { + if (uri.toString().contains("/read-timeout")) { + return clientWithReadTimeout + } + return client + } + + @Override + def cleanupSpec() { + client?.destroy() + clientWithReadTimeout?.destroy() } @Override WebResource.Builder buildRequest(String method, URI uri, Map headers) { - def resource = client.resource(uri).requestBuilder + def resource = getClient(uri).resource(uri).requestBuilder headers.each { resource.header(it.key, it.value) } return resource } diff --git a/instrumentation/spring/spring-web/spring-web-3.1/testing/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/web/SpringRestTemplateTest.java b/instrumentation/spring/spring-web/spring-web-3.1/testing/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/web/SpringRestTemplateTest.java index 9ba557466c..d0e3112b8a 100644 --- a/instrumentation/spring/spring-web/spring-web-3.1/testing/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/web/SpringRestTemplateTest.java +++ b/instrumentation/spring/spring-web/spring-web-3.1/testing/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/web/SpringRestTemplateTest.java @@ -15,7 +15,6 @@ import io.opentelemetry.instrumentation.testing.junit.http.HttpClientTestOptions import java.io.InputStream; import java.net.URI; import java.util.Map; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.extension.RegisterExtension; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -29,14 +28,23 @@ public class SpringRestTemplateTest extends AbstractHttpClientTest request, String method, URI uri, Map headers) throws Exception { try { - return restTemplate + return getClient(uri) .exchange(uri, HttpMethod.valueOf(method), request, String.class) .getStatusCode() .value();