Skip to content

Commit d9c7072

Browse files
committed
test read timeout
1 parent 38bbe25 commit d9c7072

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

Tests/AsyncHTTPClientTests/HTTP2ClientTests+XCTest.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ extension HTTP2ClientTests {
3131
("testConcurrentRequestsWorkWithRequiredEventLoop", testConcurrentRequestsWorkWithRequiredEventLoop),
3232
("testUncleanShutdownCancelsExecutingAndQueuedTasks", testUncleanShutdownCancelsExecutingAndQueuedTasks),
3333
("testCancelingRunningRequest", testCancelingRunningRequest),
34+
("testReadTimeout", testReadTimeout),
3435
("testStressCancelingRunningRequestFromDifferentThreads", testStressCancelingRunningRequestFromDifferentThreads),
3536
("testPlatformConnectErrorIsForwardedOnTimeout", testPlatformConnectErrorIsForwardedOnTimeout),
3637
]

Tests/AsyncHTTPClientTests/HTTP2ClientTests.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,27 @@ class HTTP2ClientTests: XCTestCase {
262262
}
263263
}
264264

265+
func testReadTimeout() {
266+
let bin = HTTPBin(.http2(compress: false)) { _ in SendHeaderAndWaitChannelHandler() }
267+
defer { XCTAssertNoThrow(try bin.shutdown()) }
268+
var config = HTTPClient.Configuration()
269+
var tlsConfig = TLSConfiguration.makeClientConfiguration()
270+
tlsConfig.certificateVerification = .none
271+
config.tlsConfiguration = tlsConfig
272+
config.timeout.read = .milliseconds(100)
273+
let client = HTTPClient(
274+
eventLoopGroupProvider: .createNew,
275+
configuration: config,
276+
backgroundActivityLogger: Logger(label: "HTTPClient", factory: StreamLogHandler.standardOutput(label:))
277+
)
278+
defer { XCTAssertNoThrow(try client.syncShutdown()) }
279+
280+
let response = client.get(url: "https://localhost:\(bin.port)")
281+
XCTAssertThrowsError(try response.timeout(after: .seconds(2)).wait()) { error in
282+
XCTAssertEqual(error as? HTTPClientError, .readTimeout)
283+
}
284+
}
285+
265286
func testStressCancelingRunningRequestFromDifferentThreads() {
266287
let bin = HTTPBin(.http2(compress: false)) { _ in SendHeaderAndWaitChannelHandler() }
267288
defer { XCTAssertNoThrow(try bin.shutdown()) }

0 commit comments

Comments
 (0)