Enable read timeout test for some http clients (#4702)

* Enable read timeout test for some http clients

* remove unused import

* use separate client for read timeout request
This commit is contained in:
Lauri Tulmin 2021-11-28 23:18:26 +02:00 committed by GitHub
parent 0aa888a014
commit b287c8d1d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 184 additions and 55 deletions

View File

@ -12,6 +12,7 @@ import org.apache.http.HttpHost
import org.apache.http.HttpResponse
import org.apache.http.client.config.RequestConfig
import org.apache.http.concurrent.FutureCallback
import org.apache.http.impl.nio.client.CloseableHttpAsyncClient
import org.apache.http.impl.nio.client.HttpAsyncClients
import org.apache.http.message.BasicHeader
import spock.lang.AutoCleanup
@ -26,12 +27,29 @@ abstract class ApacheHttpAsyncClientTest extends HttpClientTest<HttpUriRequest>
.setConnectTimeout(CONNECT_TIMEOUT_MS)
.build()
@Shared
RequestConfig requestWithReadTimeoutConfig = RequestConfig.copy(requestConfig)
.setSocketTimeout(READ_TIMEOUT_MS)
.build()
@AutoCleanup
@Shared
def client = HttpAsyncClients.custom().setDefaultRequestConfig(requestConfig).build()
@AutoCleanup
@Shared
def clientWithReadTimeout = HttpAsyncClients.custom().setDefaultRequestConfig(requestWithReadTimeoutConfig).build()
def setupSpec() {
client.start()
clientWithReadTimeout.start()
}
CloseableHttpAsyncClient getClient(URI uri) {
if (uri.toString().contains("/read-timeout")) {
return clientWithReadTimeout
}
return client
}
@Override
@ -44,6 +62,11 @@ abstract class ApacheHttpAsyncClientTest extends HttpClientTest<HttpUriRequest>
return 302
}
@Override
boolean testReadTimeout() {
true
}
@Override
HttpUriRequest buildRequest(String method, URI uri, Map<String, String> headers) {
def request = createRequest(method, uri)
@ -128,12 +151,12 @@ class ApacheClientUriRequest extends ApacheHttpAsyncClientTest {
@Override
HttpResponse executeRequest(HttpUriRequest request, URI uri) {
return client.execute(request, null).get()
return getClient(uri).execute(request, null).get()
}
@Override
void executeRequestWithCallback(HttpUriRequest request, URI uri, FutureCallback<HttpResponse> callback) {
client.execute(request, callback)
getClient(uri).execute(request, callback)
}
}
@ -146,12 +169,12 @@ class ApacheClientHostRequest extends ApacheHttpAsyncClientTest {
@Override
HttpResponse executeRequest(HttpUriRequest request, URI uri) {
return client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, null).get()
return getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, null).get()
}
@Override
void executeRequestWithCallback(HttpUriRequest request, URI uri, FutureCallback<HttpResponse> callback) {
client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, callback)
getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, callback)
}
}
@ -164,11 +187,11 @@ class ApacheClientHostAbsoluteUriRequest extends ApacheHttpAsyncClientTest {
@Override
HttpResponse executeRequest(HttpUriRequest request, URI uri) {
return client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, null).get()
return getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, null).get()
}
@Override
void executeRequestWithCallback(HttpUriRequest request, URI uri, FutureCallback<HttpResponse> callback) {
client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, callback)
getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, callback)
}
}

View File

@ -8,6 +8,7 @@ import io.opentelemetry.instrumentation.test.AgentTestTrait
import io.opentelemetry.instrumentation.test.base.HttpClientTest
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes
import org.apache.commons.httpclient.HttpClient
import org.apache.commons.httpclient.HttpConnectionManager
import org.apache.commons.httpclient.HttpMethod
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager
import org.apache.commons.httpclient.methods.DeleteMethod
@ -21,10 +22,26 @@ import spock.lang.Shared
class CommonsHttpClientTest extends HttpClientTest<HttpMethod> implements AgentTestTrait {
@Shared
HttpClient client = new HttpClient(new MultiThreadedHttpConnectionManager())
HttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager()
@Shared
HttpClient client = buildClient(false)
@Shared
HttpClient clientWithReadTimeout = buildClient(true)
def setupSpec() {
def buildClient(boolean readTimeout) {
HttpClient client = new HttpClient(connectionManager)
client.setConnectionTimeout(CONNECT_TIMEOUT_MS)
if (readTimeout) {
client.setTimeout(READ_TIMEOUT_MS)
}
return client
}
HttpClient getClient(URI uri) {
if (uri.toString().contains("/read-timeout")) {
return clientWithReadTimeout
}
return client
}
@Override
@ -62,7 +79,7 @@ class CommonsHttpClientTest extends HttpClientTest<HttpMethod> implements AgentT
@Override
int sendRequest(HttpMethod request, String method, URI uri, Map<String, String> headers) {
try {
client.executeMethod(request)
getClient(uri).executeMethod(request)
return request.getStatusCode()
} finally {
request.releaseConnection()
@ -86,6 +103,11 @@ class CommonsHttpClientTest extends HttpClientTest<HttpMethod> implements AgentT
false
}
@Override
boolean testReadTimeout() {
true
}
@Override
Set<AttributeKey<?>> httpAttributes(URI uri) {
Set<AttributeKey<?>> extra = [

View File

@ -29,15 +29,28 @@ import java.util.function.Consumer
abstract class ApacheHttpClientTest<T extends HttpRequest> extends HttpClientTest<T> implements AgentTestTrait {
@Shared
DefaultHttpClient client
DefaultHttpClient client = buildClient(false)
def setupSpec() {
@Shared
DefaultHttpClient clientWithReadTimeout = buildClient(true)
DefaultHttpClient buildClient(boolean readTimeout) {
HttpParams httpParams = new BasicHttpParams()
HttpConnectionParams.setConnectionTimeout(httpParams, CONNECT_TIMEOUT_MS)
if (readTimeout) {
HttpConnectionParams.setSoTimeout(httpParams, READ_TIMEOUT_MS)
}
httpParams.setParameter(ClientPNames.CONNECTION_MANAGER_FACTORY_CLASS_NAME, ThreadSafeClientConnManagerFactory.getName())
client = new DefaultHttpClient(httpParams)
}
DefaultHttpClient getClient(URI uri) {
if (uri.toString().contains("/read-timeout")) {
return clientWithReadTimeout
}
return client
}
static class ThreadSafeClientConnManagerFactory implements ClientConnectionManagerFactory {
@Override
ClientConnectionManager newInstance(HttpParams httpParams, SchemeRegistry schemeRegistry) {
@ -47,6 +60,7 @@ abstract class ApacheHttpClientTest<T extends HttpRequest> extends HttpClientTes
def cleanupSpec() {
client.getConnectionManager().shutdown()
clientWithReadTimeout.getConnectionManager().shutdown()
}
@Override
@ -54,6 +68,11 @@ abstract class ApacheHttpClientTest<T extends HttpRequest> extends HttpClientTes
return "apachehttpclient"
}
@Override
boolean testReadTimeout() {
true
}
@Override
T buildRequest(String method, URI uri, Map<String, String> headers) {
def request = createRequest(method, uri)
@ -126,12 +145,12 @@ class ApacheClientHostRequest extends ApacheHttpClientTest<BasicHttpRequest> {
@Override
HttpResponse executeRequest(BasicHttpRequest request, URI uri) {
return client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request)
return getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request)
}
@Override
void executeRequestWithCallback(BasicHttpRequest request, URI uri, Consumer<HttpResponse> callback) {
client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request) {
getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request) {
callback.accept(it)
}
}
@ -145,12 +164,12 @@ class ApacheClientHostAbsoluteUriRequest extends ApacheHttpClientTest<BasicHttpR
@Override
HttpResponse executeRequest(BasicHttpRequest request, URI uri) {
return client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request)
return getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request)
}
@Override
void executeRequestWithCallback(BasicHttpRequest request, URI uri, Consumer<HttpResponse> callback) {
client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request) {
getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request) {
callback.accept(it)
}
}
@ -165,12 +184,12 @@ class ApacheClientHostRequestContext extends ApacheHttpClientTest<BasicHttpReque
@Override
HttpResponse executeRequest(BasicHttpRequest request, URI uri) {
return client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, new BasicHttpContext())
return getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, new BasicHttpContext())
}
@Override
void executeRequestWithCallback(BasicHttpRequest request, URI uri, Consumer<HttpResponse> callback) {
client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, {
getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, {
callback.accept(it)
}, new BasicHttpContext())
}
@ -184,12 +203,12 @@ class ApacheClientHostAbsoluteUriRequestContext extends ApacheHttpClientTest<Bas
@Override
HttpResponse executeRequest(BasicHttpRequest request, URI uri) {
return client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, new BasicHttpContext())
return getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, new BasicHttpContext())
}
@Override
void executeRequestWithCallback(BasicHttpRequest request, URI uri, Consumer<HttpResponse> callback) {
client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, {
getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, {
callback.accept(it)
}, new BasicHttpContext())
}
@ -203,12 +222,12 @@ class ApacheClientUriRequest extends ApacheHttpClientTest<HttpUriRequest> {
@Override
HttpResponse executeRequest(HttpUriRequest request, URI uri) {
return client.execute(request)
return getClient(uri).execute(request)
}
@Override
void executeRequestWithCallback(HttpUriRequest request, URI uri, Consumer<HttpResponse> callback) {
client.execute(request) {
getClient(uri).execute(request) {
callback.accept(it)
}
}
@ -222,12 +241,12 @@ class ApacheClientUriRequestContext extends ApacheHttpClientTest<HttpUriRequest>
@Override
HttpResponse executeRequest(HttpUriRequest request, URI uri) {
return client.execute(request, new BasicHttpContext())
return getClient(uri).execute(request, new BasicHttpContext())
}
@Override
void executeRequestWithCallback(HttpUriRequest request, URI uri, Consumer<HttpResponse> callback) {
client.execute(request, {
getClient(uri).execute(request, {
callback.accept(it)
}, new BasicHttpContext())
}

View File

@ -11,12 +11,15 @@ import org.apache.http.impl.client.CloseableHttpClient
class ApacheClientHostAbsoluteUriRequestContextTest extends AbstractApacheClientHostAbsoluteUriRequestContextTest implements LibraryTestTrait {
@Override
protected CloseableHttpClient createClient() {
protected CloseableHttpClient createClient(boolean readTimeout) {
def builder = ApacheHttpClientTracing.create(openTelemetry).newHttpClientBuilder()
builder.defaultRequestConfig = RequestConfig.custom()
def requestConfigBuilder = RequestConfig.custom()
.setMaxRedirects(maxRedirects())
.setConnectTimeout(CONNECT_TIMEOUT_MS)
.build()
if (readTimeout) {
requestConfigBuilder.setSocketTimeout(READ_TIMEOUT_MS)
}
builder.defaultRequestConfig = requestConfigBuilder.build()
return builder.build()
}
}

View File

@ -11,12 +11,15 @@ import org.apache.http.impl.client.CloseableHttpClient
class ApacheClientHostAbsoluteUriRequestTest extends AbstractApacheClientHostAbsoluteUriRequestTest implements LibraryTestTrait {
@Override
protected CloseableHttpClient createClient() {
protected CloseableHttpClient createClient(boolean readTimeout) {
def builder = ApacheHttpClientTracing.create(openTelemetry).newHttpClientBuilder()
builder.defaultRequestConfig = RequestConfig.custom()
def requestConfigBuilder = RequestConfig.custom()
.setMaxRedirects(maxRedirects())
.setConnectTimeout(CONNECT_TIMEOUT_MS)
.build()
if (readTimeout) {
requestConfigBuilder.setSocketTimeout(READ_TIMEOUT_MS)
}
builder.defaultRequestConfig = requestConfigBuilder.build()
return builder.build()
}
}

View File

@ -11,12 +11,15 @@ import org.apache.http.impl.client.CloseableHttpClient
class ApacheClientHostRequestContextTest extends AbstractApacheClientHostRequestContextTest implements LibraryTestTrait {
@Override
protected CloseableHttpClient createClient() {
protected CloseableHttpClient createClient(boolean readTimeout) {
def builder = ApacheHttpClientTracing.create(openTelemetry).newHttpClientBuilder()
builder.defaultRequestConfig = RequestConfig.custom()
def requestConfigBuilder = RequestConfig.custom()
.setMaxRedirects(maxRedirects())
.setConnectTimeout(CONNECT_TIMEOUT_MS)
.build()
if (readTimeout) {
requestConfigBuilder.setSocketTimeout(READ_TIMEOUT_MS)
}
builder.defaultRequestConfig = requestConfigBuilder.build()
return builder.build()
}
}

View File

@ -11,12 +11,15 @@ import org.apache.http.impl.client.CloseableHttpClient
class ApacheClientHostRequestTest extends AbstractApacheClientHostRequestTest implements LibraryTestTrait {
@Override
protected CloseableHttpClient createClient() {
protected CloseableHttpClient createClient(boolean readTimeout) {
def builder = ApacheHttpClientTracing.create(openTelemetry).newHttpClientBuilder()
builder.defaultRequestConfig = RequestConfig.custom()
def requestConfigBuilder = RequestConfig.custom()
.setMaxRedirects(maxRedirects())
.setConnectTimeout(CONNECT_TIMEOUT_MS)
.build()
if (readTimeout) {
requestConfigBuilder.setSocketTimeout(READ_TIMEOUT_MS)
}
builder.defaultRequestConfig = requestConfigBuilder.build()
return builder.build()
}
}

View File

@ -11,12 +11,15 @@ import org.apache.http.impl.client.CloseableHttpClient
class ApacheClientUriRequestContextTest extends AbstractApacheClientUriRequestContextTest implements LibraryTestTrait {
@Override
protected CloseableHttpClient createClient() {
protected CloseableHttpClient createClient(boolean readTimeout) {
def builder = ApacheHttpClientTracing.create(openTelemetry).newHttpClientBuilder()
builder.defaultRequestConfig = RequestConfig.custom()
def requestConfigBuilder = RequestConfig.custom()
.setMaxRedirects(maxRedirects())
.setConnectTimeout(CONNECT_TIMEOUT_MS)
.build()
if (readTimeout) {
requestConfigBuilder.setSocketTimeout(READ_TIMEOUT_MS)
}
builder.defaultRequestConfig = requestConfigBuilder.build()
return builder.build()
}
}

View File

@ -11,12 +11,15 @@ import org.apache.http.impl.client.CloseableHttpClient
class ApacheClientUriRequestTest extends AbstractApacheClientUriRequestTest implements LibraryTestTrait {
@Override
protected CloseableHttpClient createClient() {
protected CloseableHttpClient createClient(boolean readTimeout) {
def builder = ApacheHttpClientTracing.create(openTelemetry).newHttpClientBuilder()
builder.defaultRequestConfig = RequestConfig.custom()
def requestConfigBuilder = RequestConfig.custom()
.setMaxRedirects(maxRedirects())
.setConnectTimeout(CONNECT_TIMEOUT_MS)
.build()
if (readTimeout) {
requestConfigBuilder.setSocketTimeout(READ_TIMEOUT_MS)
}
builder.defaultRequestConfig = requestConfigBuilder.build()
return builder.build()
}
}

View File

@ -22,7 +22,7 @@ import java.util.function.Consumer
abstract class ApacheHttpClientTest<T extends HttpRequest> extends HttpClientTest<T> {
abstract protected CloseableHttpClient createClient()
abstract protected CloseableHttpClient createClient(boolean readTimeout)
@Override
String userAgent() {
@ -34,8 +34,23 @@ abstract class ApacheHttpClientTest<T extends HttpRequest> extends HttpClientTes
return 302
}
@Override
boolean testReadTimeout() {
true
}
@Shared
CloseableHttpClient client = createClient()
CloseableHttpClient client = createClient(false)
@Shared
CloseableHttpClient clientWithReadTimeout = createClient(true)
CloseableHttpClient getClient(URI uri) {
if (uri.toString().contains("/read-timeout")) {
return clientWithReadTimeout
}
return client
}
@Override
T buildRequest(String method, URI uri, Map<String, String> headers) {
@ -109,12 +124,12 @@ abstract class AbstractApacheClientHostRequestTest extends ApacheHttpClientTest<
@Override
HttpResponse executeRequest(BasicHttpRequest request, URI uri) {
return client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request)
return getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request)
}
@Override
void executeRequestWithCallback(BasicHttpRequest request, URI uri, Consumer<HttpResponse> callback) {
client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request) {
getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request) {
callback.accept(it)
}
}
@ -128,12 +143,12 @@ abstract class AbstractApacheClientHostAbsoluteUriRequestTest extends ApacheHttp
@Override
HttpResponse executeRequest(BasicHttpRequest request, URI uri) {
return client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request)
return getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request)
}
@Override
void executeRequestWithCallback(BasicHttpRequest request, URI uri, Consumer<HttpResponse> callback) {
client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request) {
getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request) {
callback.accept(it)
}
}
@ -148,12 +163,12 @@ abstract class AbstractApacheClientHostRequestContextTest extends ApacheHttpClie
@Override
HttpResponse executeRequest(BasicHttpRequest request, URI uri) {
return client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, new BasicHttpContext())
return getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, new BasicHttpContext())
}
@Override
void executeRequestWithCallback(BasicHttpRequest request, URI uri, Consumer<HttpResponse> callback) {
client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, {
getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, {
callback.accept(it)
}, new BasicHttpContext())
}
@ -167,12 +182,12 @@ abstract class AbstractApacheClientHostAbsoluteUriRequestContextTest extends Apa
@Override
HttpResponse executeRequest(BasicHttpRequest request, URI uri) {
return client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, new BasicHttpContext())
return getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, new BasicHttpContext())
}
@Override
void executeRequestWithCallback(BasicHttpRequest request, URI uri, Consumer<HttpResponse> callback) {
client.execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, {
getClient(uri).execute(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), request, {
callback.accept(it)
}, new BasicHttpContext())
}
@ -186,12 +201,12 @@ abstract class AbstractApacheClientUriRequestTest extends ApacheHttpClientTest<H
@Override
HttpResponse executeRequest(HttpUriRequest request, URI uri) {
return client.execute(request)
return getClient(uri).execute(request)
}
@Override
void executeRequestWithCallback(HttpUriRequest request, URI uri, Consumer<HttpResponse> callback) {
client.execute(request) {
getClient(uri).execute(request) {
callback.accept(it)
}
}
@ -205,12 +220,12 @@ abstract class AbstractApacheClientUriRequestContextTest extends ApacheHttpClien
@Override
HttpResponse executeRequest(HttpUriRequest request, URI uri) {
return client.execute(request, new BasicHttpContext())
return getClient(uri).execute(request, new BasicHttpContext())
}
@Override
void executeRequestWithCallback(HttpUriRequest request, URI uri, Consumer<HttpResponse> callback) {
client.execute(request, {
getClient(uri).execute(request, {
callback.accept(it)
}, new BasicHttpContext())
}

View File

@ -30,12 +30,20 @@ abstract class AbstractGoogleHttpClientTest extends HttpClientTest<HttpRequest>
return false
}
@Override
boolean testReadTimeout() {
true
}
@Override
HttpRequest buildRequest(String method, URI uri, Map<String, String> headers) {
def genericUrl = new GenericUrl(uri)
def request = requestFactory.buildRequest(method, genericUrl, null)
request.connectTimeout = CONNECT_TIMEOUT_MS
if (uri.toString().contains("/read-timeout")) {
request.readTimeout = READ_TIMEOUT_MS
}
// GenericData::putAll method converts all known http headers to List<String>
// and lowercase all other headers

View File

@ -18,6 +18,9 @@ class HttpUrlConnectionResponseCodeOnlyTest extends HttpClientTest<HttpURLConnec
try {
connection.setRequestMethod(method)
connection.connectTimeout = CONNECT_TIMEOUT_MS
if (uri.toString().contains("/read-timeout")) {
connection.readTimeout = READ_TIMEOUT_MS
}
headers.each { connection.setRequestProperty(it.key, it.value) }
connection.setRequestProperty("Connection", "close")
return connection.getResponseCode()
@ -46,4 +49,9 @@ class HttpUrlConnectionResponseCodeOnlyTest extends HttpClientTest<HttpURLConnec
boolean testCallback() {
return false
}
@Override
boolean testReadTimeout() {
true
}
}

View File

@ -22,6 +22,9 @@ class HttpUrlConnectionUseCachesFalseTest extends HttpClientTest<HttpURLConnecti
connection.setRequestProperty("Connection", "close")
connection.useCaches = false
connection.connectTimeout = CONNECT_TIMEOUT_MS
if (uri.toString().contains("/read-timeout")) {
connection.readTimeout = READ_TIMEOUT_MS
}
def parentSpan = Span.current()
def stream = connection.inputStream
assert Span.current() == parentSpan
@ -53,4 +56,9 @@ class HttpUrlConnectionUseCachesFalseTest extends HttpClientTest<HttpURLConnecti
boolean testCallback() {
return false
}
@Override
boolean testReadTimeout() {
true
}
}

View File

@ -31,6 +31,9 @@ class JdkHttpClientTest extends HttpClientTest<HttpRequest> implements AgentTest
headers.entrySet().each {
requestBuilder.header(it.key, it.value)
}
if (uri.toString().contains("/read-timeout")) {
requestBuilder.timeout(Duration.of(READ_TIMEOUT_MS, ChronoUnit.MILLIS))
}
return requestBuilder.build()
}
@ -58,4 +61,9 @@ class JdkHttpClientTest extends HttpClientTest<HttpRequest> implements AgentTest
boolean testWithClientParent() {
false
}
@Override
boolean testReadTimeout() {
true
}
}