From 97e760672f21f748255fcd1b321d9259318cb068 Mon Sep 17 00:00:00 2001 From: David Nadoba Date: Thu, 13 Jul 2023 18:23:35 +0100 Subject: [PATCH] Fix flaky `AsyncAwaitEndToEndTests.testImmediateDeadline` test --- .../AsyncAwaitEndToEndTests.swift | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Tests/AsyncHTTPClientTests/AsyncAwaitEndToEndTests.swift b/Tests/AsyncHTTPClientTests/AsyncAwaitEndToEndTests.swift index 3259fec9a..994e331fb 100644 --- a/Tests/AsyncHTTPClientTests/AsyncAwaitEndToEndTests.swift +++ b/Tests/AsyncHTTPClientTests/AsyncAwaitEndToEndTests.swift @@ -389,8 +389,10 @@ final class AsyncAwaitEndToEndTests: XCTestCase { guard let error = error as? HTTPClientError else { return XCTFail("unexpected error \(error)") } - // a race between deadline and connect timer can result in either error - XCTAssertTrue([.deadlineExceeded, .connectTimeout].contains(error)) + // a race between deadline and connect timer can result in either error. + // If closing happens really fast we might shutdown the pipeline before we fail the request. + // If the pipeline is closed we may receive a `.remoteConnectionClosed`. + XCTAssertTrue([.deadlineExceeded, .connectTimeout, .remoteConnectionClosed].contains(error), "unexpected error \(error)") } } } @@ -412,8 +414,10 @@ final class AsyncAwaitEndToEndTests: XCTestCase { guard let error = error as? HTTPClientError else { return XCTFail("unexpected error \(error)") } - // a race between deadline and connect timer can result in either error - XCTAssertTrue([.deadlineExceeded, .connectTimeout].contains(error), "unexpected error \(error)") + // a race between deadline and connect timer can result in either error. + // If closing happens really fast we might shutdown the pipeline before we fail the request. + // If the pipeline is closed we may receive a `.remoteConnectionClosed`. + XCTAssertTrue([.deadlineExceeded, .connectTimeout, .remoteConnectionClosed].contains(error), "unexpected error \(error)") } } }