From 10c881b31cf6ec560b88edab59fb054f02a52ae4 Mon Sep 17 00:00:00 2001 From: David Nadoba Date: Tue, 16 Nov 2021 17:43:07 +0100 Subject: [PATCH 1/2] replace .none case with .fixedSize(0) --- .../HTTPRequestStateMachine.swift | 12 ++--- .../RequestFramingMetadata.swift | 1 - .../AsyncHTTPClient/RequestValidation.swift | 2 +- .../HTTP1ConnectionStateMachineTests.swift | 18 ++++---- .../HTTPRequestStateMachineTests.swift | 44 +++++++++---------- .../RequestValidationTests.swift | 18 ++++---- 6 files changed, 48 insertions(+), 47 deletions(-) diff --git a/Sources/AsyncHTTPClient/ConnectionPool/HTTPRequestStateMachine.swift b/Sources/AsyncHTTPClient/ConnectionPool/HTTPRequestStateMachine.swift index 32866697d..b54dd8a62 100644 --- a/Sources/AsyncHTTPClient/ConnectionPool/HTTPRequestStateMachine.swift +++ b/Sources/AsyncHTTPClient/ConnectionPool/HTTPRequestStateMachine.swift @@ -665,13 +665,15 @@ struct HTTPRequestStateMachine { case .stream: self.state = .running(.streaming(expectedBodyLength: nil, sentBodyBytes: 0, producer: .producing), .waitingForHead) return .sendRequestHead(head, startBody: true) - case .fixedSize(let length) where length > 0: - self.state = .running(.streaming(expectedBodyLength: length, sentBodyBytes: 0, producer: .producing), .waitingForHead) - return .sendRequestHead(head, startBody: true) - case .none, .fixedSize: - // fallback if fixed size is 0 + case .fixedSize(0): + // no body self.state = .running(.endSent, .waitingForHead) return .sendRequestHead(head, startBody: false) + case .fixedSize(let length): + // length is greater than zero and we therefore have a body to send + self.state = .running(.streaming(expectedBodyLength: length, sentBodyBytes: 0, producer: .producing), .waitingForHead) + return .sendRequestHead(head, startBody: true) + } } } diff --git a/Sources/AsyncHTTPClient/ConnectionPool/RequestFramingMetadata.swift b/Sources/AsyncHTTPClient/ConnectionPool/RequestFramingMetadata.swift index cc000c88e..98080e364 100644 --- a/Sources/AsyncHTTPClient/ConnectionPool/RequestFramingMetadata.swift +++ b/Sources/AsyncHTTPClient/ConnectionPool/RequestFramingMetadata.swift @@ -14,7 +14,6 @@ struct RequestFramingMetadata: Hashable { enum Body: Hashable { - case none case stream case fixedSize(Int) } diff --git a/Sources/AsyncHTTPClient/RequestValidation.swift b/Sources/AsyncHTTPClient/RequestValidation.swift index 0697e9eb0..aec694fd5 100644 --- a/Sources/AsyncHTTPClient/RequestValidation.swift +++ b/Sources/AsyncHTTPClient/RequestValidation.swift @@ -17,7 +17,7 @@ import NIOHTTP1 extension HTTPHeaders { mutating func validate(method: HTTPMethod, body: HTTPClient.Body?) throws -> RequestFramingMetadata { - var metadata = RequestFramingMetadata(connectionClose: false, body: .none) + var metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) if self[canonicalForm: "connection"].lazy.map({ $0.lowercased() }).contains("close") { metadata.connectionClose = true diff --git a/Tests/AsyncHTTPClientTests/HTTP1ConnectionStateMachineTests.swift b/Tests/AsyncHTTPClientTests/HTTP1ConnectionStateMachineTests.swift index 1cf7722b1..1ceb9f2bf 100644 --- a/Tests/AsyncHTTPClientTests/HTTP1ConnectionStateMachineTests.swift +++ b/Tests/AsyncHTTPClientTests/HTTP1ConnectionStateMachineTests.swift @@ -62,7 +62,7 @@ class HTTP1ConnectionStateMachineTests: XCTestCase { XCTAssertEqual(state.channelActive(isWritable: true), .fireChannelActive) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) let newRequestAction = state.runNewRequest(head: requestHead, metadata: metadata) XCTAssertEqual(newRequestAction, .sendRequestHead(requestHead, startBody: false)) @@ -90,7 +90,7 @@ class HTTP1ConnectionStateMachineTests: XCTestCase { var state = HTTP1ConnectionStateMachine() XCTAssertEqual(state.channelActive(isWritable: true), .fireChannelActive) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/", headers: ["connection": "close"]) - let metadata = RequestFramingMetadata(connectionClose: true, body: .none) + let metadata = RequestFramingMetadata(connectionClose: true, body: .fixedSize(0)) let newRequestAction = state.runNewRequest(head: requestHead, metadata: metadata) XCTAssertEqual(newRequestAction, .sendRequestHead(requestHead, startBody: false)) @@ -106,7 +106,7 @@ class HTTP1ConnectionStateMachineTests: XCTestCase { var state = HTTP1ConnectionStateMachine() XCTAssertEqual(state.channelActive(isWritable: true), .fireChannelActive) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) let newRequestAction = state.runNewRequest(head: requestHead, metadata: metadata) XCTAssertEqual(newRequestAction, .sendRequestHead(requestHead, startBody: false)) @@ -122,7 +122,7 @@ class HTTP1ConnectionStateMachineTests: XCTestCase { var state = HTTP1ConnectionStateMachine() XCTAssertEqual(state.channelActive(isWritable: true), .fireChannelActive) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) let newRequestAction = state.runNewRequest(head: requestHead, metadata: metadata) XCTAssertEqual(newRequestAction, .sendRequestHead(requestHead, startBody: false)) @@ -139,7 +139,7 @@ class HTTP1ConnectionStateMachineTests: XCTestCase { XCTAssertEqual(state.channelActive(isWritable: false), .fireChannelActive) XCTAssertEqual(state.writabilityChanged(writable: true), .wait) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) let newRequestAction = state.runNewRequest(head: requestHead, metadata: metadata) XCTAssertEqual(newRequestAction, .sendRequestHead(requestHead, startBody: false)) @@ -168,7 +168,7 @@ class HTTP1ConnectionStateMachineTests: XCTestCase { XCTAssertEqual(state.channelActive(isWritable: true), .fireChannelActive) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) let newRequestAction = state.runNewRequest(head: requestHead, metadata: metadata) XCTAssertEqual(newRequestAction, .sendRequestHead(requestHead, startBody: false)) @@ -233,7 +233,7 @@ class HTTP1ConnectionStateMachineTests: XCTestCase { var state = HTTP1ConnectionStateMachine() XCTAssertEqual(state.channelActive(isWritable: true), .fireChannelActive) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) let newRequestAction = state.runNewRequest(head: requestHead, metadata: metadata) XCTAssertEqual(newRequestAction, .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok) @@ -248,7 +248,7 @@ class HTTP1ConnectionStateMachineTests: XCTestCase { var state = HTTP1ConnectionStateMachine() XCTAssertEqual(state.channelActive(isWritable: true), .fireChannelActive) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) let newRequestAction = state.runNewRequest(head: requestHead, metadata: metadata) XCTAssertEqual(newRequestAction, .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .switchingProtocols) @@ -260,7 +260,7 @@ class HTTP1ConnectionStateMachineTests: XCTestCase { var state = HTTP1ConnectionStateMachine() XCTAssertEqual(state.channelActive(isWritable: true), .fireChannelActive) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) let newRequestAction = state.runNewRequest(head: requestHead, metadata: metadata) XCTAssertEqual(newRequestAction, .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .init(statusCode: 103, reasonPhrase: "Early Hints")) diff --git a/Tests/AsyncHTTPClientTests/HTTPRequestStateMachineTests.swift b/Tests/AsyncHTTPClientTests/HTTPRequestStateMachineTests.swift index 05530824c..3e92dc87f 100644 --- a/Tests/AsyncHTTPClientTests/HTTPRequestStateMachineTests.swift +++ b/Tests/AsyncHTTPClientTests/HTTPRequestStateMachineTests.swift @@ -22,7 +22,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testSimpleGETRequest() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok) @@ -231,7 +231,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testRequestIsNotSendUntilChannelIsWritable() { var state = HTTPRequestStateMachine(isChannelWritable: false) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .wait) XCTAssertEqual(state.read(), .read) XCTAssertEqual(state.writabilityChanged(writable: true), .sendRequestHead(requestHead, startBody: false)) @@ -247,7 +247,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testConnectionBecomesInactiveWhileWaitingForWritable() { var state = HTTPRequestStateMachine(isChannelWritable: false) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .wait) XCTAssertEqual(state.channelInactive(), .failRequest(HTTPClientError.remoteConnectionClosed, .none)) } @@ -255,7 +255,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testResponseReadingWithBackpressure() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok, headers: HTTPHeaders([("content-length", "12")])) @@ -282,7 +282,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testChannelReadCompleteTriggersButNoBodyDataWasReceivedSoFar() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok, headers: HTTPHeaders([("content-length", "12")])) @@ -309,7 +309,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testResponseReadingWithBackpressureEndOfResponseAllowsReadEventsToTriggerDirectly() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok, headers: HTTPHeaders([("content-length", "12")])) @@ -345,7 +345,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testCancellingARequestBeforeBeingSendKeepsTheConnectionAlive() { var state = HTTPRequestStateMachine(isChannelWritable: false) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .wait) XCTAssertEqual(state.requestCancelled(), .failRequest(HTTPClientError.cancelled, .none)) } @@ -356,7 +356,7 @@ class HTTPRequestStateMachineTests: XCTestCase { // --- sending request let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) // --- receiving response @@ -371,7 +371,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testCancellingARequestThatIsSent() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) XCTAssertEqual(state.requestCancelled(), .failRequest(HTTPClientError.cancelled, .close)) } @@ -388,7 +388,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testReadTimeoutLeadsToFailureWithEverythingAfterBeingIgnored() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok, headers: HTTPHeaders([("content-length", "12")])) @@ -405,7 +405,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testResponseWithStatus1XXAreIgnored() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let continueHead = HTTPResponseHead(version: .http1_1, status: .continue) @@ -421,7 +421,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testReadTimeoutThatFiresToLateIsIgnored() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok) @@ -433,7 +433,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testCancellationThatIsInvokedToLateIsIgnored() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok) @@ -445,7 +445,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testErrorWhileRunningARequestClosesTheStream() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) XCTAssertEqual(state.errorHappened(HTTPParserError.invalidChunkSize), .failRequest(HTTPParserError.invalidChunkSize, .close)) @@ -455,7 +455,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testCanReadHTTP1_0ResponseWithoutBody() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_0, status: .internalServerError) @@ -471,7 +471,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testCanReadHTTP1_0ResponseWithBody() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_0, status: .internalServerError) @@ -509,7 +509,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testFailHTTP1RequestWithoutContentLengthWithNIOSSLErrorUncleanShutdown() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok) @@ -525,7 +525,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testFailHTTP1RequestWithContentLengthWithNIOSSLErrorUncleanShutdownButIgnoreIt() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok, headers: ["content-length": "30"]) @@ -543,7 +543,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testFailHTTPRequestWithContentLengthBecauseOfChannelInactiveWaitingForDemand() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok, headers: ["Content-Length": "50"]) @@ -564,7 +564,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testFailHTTPRequestWithContentLengthBecauseOfChannelInactiveWaitingForRead() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok, headers: ["Content-Length": "50"]) @@ -585,7 +585,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testFailHTTPRequestWithContentLengthBecauseOfChannelInactiveWaitingForReadAndDemand() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok, headers: ["Content-Length": "50"]) @@ -605,7 +605,7 @@ class HTTPRequestStateMachineTests: XCTestCase { func testFailHTTPRequestWithContentLengthBecauseOfChannelInactiveWaitingForReadAndDemandMultipleTimes() { var state = HTTPRequestStateMachine(isChannelWritable: true) let requestHead = HTTPRequestHead(version: .http1_1, method: .GET, uri: "/") - let metadata = RequestFramingMetadata(connectionClose: false, body: .none) + let metadata = RequestFramingMetadata(connectionClose: false, body: .fixedSize(0)) XCTAssertEqual(state.startRequest(head: requestHead, metadata: metadata), .sendRequestHead(requestHead, startBody: false)) let responseHead = HTTPResponseHead(version: .http1_1, status: .ok, headers: ["Content-Length": "50"]) diff --git a/Tests/AsyncHTTPClientTests/RequestValidationTests.swift b/Tests/AsyncHTTPClientTests/RequestValidationTests.swift index c5610cf9e..18d1f5e50 100644 --- a/Tests/AsyncHTTPClientTests/RequestValidationTests.swift +++ b/Tests/AsyncHTTPClientTests/RequestValidationTests.swift @@ -23,7 +23,7 @@ class RequestValidationTests: XCTestCase { var metadata: RequestFramingMetadata? XCTAssertNoThrow(metadata = try headers.validate(method: .GET, body: .none)) XCTAssertNil(headers.first(name: "Content-Length")) - XCTAssertEqual(metadata?.body, .some(.none)) + XCTAssertEqual(metadata?.body, .fixedSize(0)) } func testContentLengthHeaderIsAddedToPOSTAndPUTWithNoBody() { @@ -31,13 +31,13 @@ class RequestValidationTests: XCTestCase { var putMetadata: RequestFramingMetadata? XCTAssertNoThrow(putMetadata = try putHeaders.validate(method: .PUT, body: .none)) XCTAssertEqual(putHeaders.first(name: "Content-Length"), "0") - XCTAssertEqual(putMetadata?.body, .some(.none)) + XCTAssertEqual(putMetadata?.body, .fixedSize(0)) var postHeaders = HTTPHeaders() var postMetadata: RequestFramingMetadata? XCTAssertNoThrow(postMetadata = try postHeaders.validate(method: .POST, body: .none)) XCTAssertEqual(postHeaders.first(name: "Content-Length"), "0") - XCTAssertEqual(postMetadata?.body, .some(.none)) + XCTAssertEqual(postMetadata?.body, .fixedSize(0)) } func testContentLengthHeaderIsChangedIfBodyHasDifferentLength() { @@ -124,7 +124,7 @@ class RequestValidationTests: XCTestCase { XCTAssertNoThrow(metadata = try headers.validate(method: method, body: nil)) XCTAssertTrue(headers["content-length"].isEmpty) XCTAssertTrue(headers["transfer-encoding"].isEmpty) - XCTAssertEqual(metadata?.body, .some(.none)) + XCTAssertEqual(metadata?.body, .fixedSize(0)) } for method: HTTPMethod in [.POST, .PUT] { @@ -133,7 +133,7 @@ class RequestValidationTests: XCTestCase { XCTAssertNoThrow(metadata = try headers.validate(method: method, body: nil)) XCTAssertEqual(headers["content-length"].first, "0") XCTAssertFalse(headers["transfer-encoding"].contains("chunked")) - XCTAssertEqual(metadata?.body, .some(.none)) + XCTAssertEqual(metadata?.body, .fixedSize(0)) } } @@ -200,7 +200,7 @@ class RequestValidationTests: XCTestCase { XCTAssertNoThrow(metadata = try headers.validate(method: method, body: nil)) XCTAssertTrue(headers["content-length"].isEmpty) XCTAssertTrue(headers["transfer-encoding"].isEmpty) - XCTAssertEqual(metadata?.body, .some(.none)) + XCTAssertEqual(metadata?.body, .fixedSize(0)) } for method: HTTPMethod in [.POST, .PUT] { @@ -209,7 +209,7 @@ class RequestValidationTests: XCTestCase { XCTAssertNoThrow(metadata = try headers.validate(method: method, body: nil)) XCTAssertEqual(headers["content-length"].first, "0") XCTAssertTrue(headers["transfer-encoding"].isEmpty) - XCTAssertEqual(metadata?.body, .some(.none)) + XCTAssertEqual(metadata?.body, .fixedSize(0)) } } @@ -248,7 +248,7 @@ class RequestValidationTests: XCTestCase { XCTAssertNoThrow(metadata = try headers.validate(method: method, body: nil)) XCTAssertTrue(headers["content-length"].isEmpty) XCTAssertFalse(headers["transfer-encoding"].contains("chunked")) - XCTAssertEqual(metadata?.body, .some(.none)) + XCTAssertEqual(metadata?.body, .fixedSize(0)) } for method: HTTPMethod in [.POST, .PUT] { @@ -257,7 +257,7 @@ class RequestValidationTests: XCTestCase { XCTAssertNoThrow(metadata = try headers.validate(method: method, body: nil)) XCTAssertEqual(headers["content-length"].first, "0") XCTAssertFalse(headers["transfer-encoding"].contains("chunked")) - XCTAssertEqual(metadata?.body, .some(.none)) + XCTAssertEqual(metadata?.body, .fixedSize(0)) } } From a3ba9af735f792438121d1a95b311dbdb43e6496 Mon Sep 17 00:00:00 2001 From: David Nadoba Date: Thu, 18 Nov 2021 16:51:42 +0100 Subject: [PATCH 2/2] fix formatting --- .../AsyncHTTPClient/ConnectionPool/HTTPRequestStateMachine.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/Sources/AsyncHTTPClient/ConnectionPool/HTTPRequestStateMachine.swift b/Sources/AsyncHTTPClient/ConnectionPool/HTTPRequestStateMachine.swift index b54dd8a62..2d6ad5dd8 100644 --- a/Sources/AsyncHTTPClient/ConnectionPool/HTTPRequestStateMachine.swift +++ b/Sources/AsyncHTTPClient/ConnectionPool/HTTPRequestStateMachine.swift @@ -673,7 +673,6 @@ struct HTTPRequestStateMachine { // length is greater than zero and we therefore have a body to send self.state = .running(.streaming(expectedBodyLength: length, sentBodyBytes: 0, producer: .producing), .waitingForHead) return .sendRequestHead(head, startBody: true) - } } }