Skip to content

Commit ff442bc

Browse files
Updated logging tests to also check the new execute methods
Motivation: The logging tests previously didn't check for socket path-based requests. Modifications: Updated the `testAllMethodsLog()` and `testAllMethodsLog()` tests to include checks for each of the new `execute()` methods. Result: Two more tests that pass.
1 parent d6bde2e commit ff442bc

File tree

1 file changed

+120
-6
lines changed

1 file changed

+120
-6
lines changed

Diff for: Tests/AsyncHTTPClientTests/HTTPClientTests.swift

+120-6
Original file line numberDiff line numberDiff line change
@@ -2089,7 +2089,70 @@ class HTTPClientTests: XCTestCase {
20892089
logger: logger).wait())
20902090
XCTAssertEqual(0, logStore.allEntries.count)
20912091

2092+
// === Synthesized Request
2093+
XCTAssertNoThrow(try self.defaultClient.execute(.GET,
2094+
url: self.defaultHTTPBinURLPrefix + "get",
2095+
body: nil,
2096+
deadline: nil,
2097+
logger: logger).wait())
2098+
XCTAssertEqual(0, logStore.allEntries.count)
2099+
20922100
XCTAssertEqual(0, self.backgroundLogStore.allEntries.count)
2101+
2102+
// === Synthesized Socket Path Request
2103+
XCTAssertNoThrow(try TemporaryFileHelpers.withTemporaryUnixDomainSocketPathName { path in
2104+
let backgroundLogStore = CollectEverythingLogHandler.LogStore()
2105+
var backgroundLogger = Logger(label: "\(#function)", factory: { _ in
2106+
CollectEverythingLogHandler(logStore: backgroundLogStore)
2107+
})
2108+
backgroundLogger.logLevel = .trace
2109+
2110+
let localSocketPathHTTPBin = HTTPBin(bindTarget: .unixDomainSocket(path))
2111+
let localClient = HTTPClient(eventLoopGroupProvider: .shared(self.clientGroup),
2112+
backgroundActivityLogger: backgroundLogger)
2113+
defer {
2114+
XCTAssertNoThrow(try localClient.syncShutdown())
2115+
XCTAssertNoThrow(try localSocketPathHTTPBin.shutdown())
2116+
}
2117+
2118+
XCTAssertNoThrow(try localClient.execute(.GET,
2119+
socketPath: path,
2120+
urlPath: "get",
2121+
body: nil,
2122+
deadline: nil,
2123+
logger: logger).wait())
2124+
XCTAssertEqual(0, logStore.allEntries.count)
2125+
2126+
XCTAssertEqual(0, backgroundLogStore.allEntries.count)
2127+
})
2128+
2129+
// === Synthesized Secure Socket Path Request
2130+
XCTAssertNoThrow(try TemporaryFileHelpers.withTemporaryUnixDomainSocketPathName { path in
2131+
let backgroundLogStore = CollectEverythingLogHandler.LogStore()
2132+
var backgroundLogger = Logger(label: "\(#function)", factory: { _ in
2133+
CollectEverythingLogHandler(logStore: backgroundLogStore)
2134+
})
2135+
backgroundLogger.logLevel = .trace
2136+
2137+
let localSocketPathHTTPBin = HTTPBin(ssl: true, bindTarget: .unixDomainSocket(path))
2138+
let localClient = HTTPClient(eventLoopGroupProvider: .shared(self.clientGroup),
2139+
configuration: HTTPClient.Configuration(certificateVerification: .none),
2140+
backgroundActivityLogger: backgroundLogger)
2141+
defer {
2142+
XCTAssertNoThrow(try localClient.syncShutdown())
2143+
XCTAssertNoThrow(try localSocketPathHTTPBin.shutdown())
2144+
}
2145+
2146+
XCTAssertNoThrow(try localClient.execute(.GET,
2147+
secureSocketPath: path,
2148+
urlPath: "get",
2149+
body: nil,
2150+
deadline: nil,
2151+
logger: logger).wait())
2152+
XCTAssertEqual(0, logStore.allEntries.count)
2153+
2154+
XCTAssertEqual(0, backgroundLogStore.allEntries.count)
2155+
})
20932156
}
20942157

20952158
func testAllMethodsLog() {
@@ -2102,7 +2165,7 @@ class HTTPClientTests: XCTestCase {
21022165
logger.logLevel = .trace
21032166
logger[metadataKey: "req"] = "yo-\(type)"
21042167

2105-
let url = self.defaultHTTPBinURLPrefix + "not-found/request/\(type))"
2168+
let url = "not-found/request/\(type))"
21062169
let result = try body(logger, url)
21072170

21082171
XCTAssertGreaterThan(logStore.allEntries.count, 0)
@@ -2114,27 +2177,78 @@ class HTTPClientTests: XCTestCase {
21142177
}
21152178

21162179
XCTAssertNoThrow(XCTAssertEqual(.notFound, try checkExpectationsWithLogger(type: "GET") { logger, url in
2117-
try self.defaultClient.get(url: url, logger: logger).wait()
2180+
try self.defaultClient.get(url: self.defaultHTTPBinURLPrefix + url, logger: logger).wait()
21182181
}.status))
21192182

21202183
XCTAssertNoThrow(XCTAssertEqual(.notFound, try checkExpectationsWithLogger(type: "PUT") { logger, url in
2121-
try self.defaultClient.put(url: url, logger: logger).wait()
2184+
try self.defaultClient.put(url: self.defaultHTTPBinURLPrefix + url, logger: logger).wait()
21222185
}.status))
21232186

21242187
XCTAssertNoThrow(XCTAssertEqual(.notFound, try checkExpectationsWithLogger(type: "POST") { logger, url in
2125-
try self.defaultClient.post(url: url, logger: logger).wait()
2188+
try self.defaultClient.post(url: self.defaultHTTPBinURLPrefix + url, logger: logger).wait()
21262189
}.status))
21272190

21282191
XCTAssertNoThrow(XCTAssertEqual(.notFound, try checkExpectationsWithLogger(type: "DELETE") { logger, url in
2129-
try self.defaultClient.delete(url: url, logger: logger).wait()
2192+
try self.defaultClient.delete(url: self.defaultHTTPBinURLPrefix + url, logger: logger).wait()
21302193
}.status))
21312194

21322195
XCTAssertNoThrow(XCTAssertEqual(.notFound, try checkExpectationsWithLogger(type: "PATCH") { logger, url in
2133-
try self.defaultClient.patch(url: url, logger: logger).wait()
2196+
try self.defaultClient.patch(url: self.defaultHTTPBinURLPrefix + url, logger: logger).wait()
2197+
}.status))
2198+
2199+
XCTAssertNoThrow(XCTAssertEqual(.notFound, try checkExpectationsWithLogger(type: "CHECKOUT") { logger, url in
2200+
try self.defaultClient.execute(.CHECKOUT, url: self.defaultHTTPBinURLPrefix + url, logger: logger).wait()
21342201
}.status))
21352202

21362203
// No background activity expected here.
21372204
XCTAssertEqual(0, self.backgroundLogStore.allEntries.count)
2205+
2206+
XCTAssertNoThrow(try TemporaryFileHelpers.withTemporaryUnixDomainSocketPathName { path in
2207+
let backgroundLogStore = CollectEverythingLogHandler.LogStore()
2208+
var backgroundLogger = Logger(label: "\(#function)", factory: { _ in
2209+
CollectEverythingLogHandler(logStore: backgroundLogStore)
2210+
})
2211+
backgroundLogger.logLevel = .trace
2212+
2213+
let localSocketPathHTTPBin = HTTPBin(bindTarget: .unixDomainSocket(path))
2214+
let localClient = HTTPClient(eventLoopGroupProvider: .shared(self.clientGroup),
2215+
backgroundActivityLogger: backgroundLogger)
2216+
defer {
2217+
XCTAssertNoThrow(try localClient.syncShutdown())
2218+
XCTAssertNoThrow(try localSocketPathHTTPBin.shutdown())
2219+
}
2220+
2221+
XCTAssertNoThrow(XCTAssertEqual(.notFound, try checkExpectationsWithLogger(type: "GET") { logger, url in
2222+
try localClient.execute(socketPath: path, urlPath: url, logger: logger).wait()
2223+
}.status))
2224+
2225+
// No background activity expected here.
2226+
XCTAssertEqual(0, backgroundLogStore.allEntries.count)
2227+
})
2228+
2229+
XCTAssertNoThrow(try TemporaryFileHelpers.withTemporaryUnixDomainSocketPathName { path in
2230+
let backgroundLogStore = CollectEverythingLogHandler.LogStore()
2231+
var backgroundLogger = Logger(label: "\(#function)", factory: { _ in
2232+
CollectEverythingLogHandler(logStore: backgroundLogStore)
2233+
})
2234+
backgroundLogger.logLevel = .trace
2235+
2236+
let localSocketPathHTTPBin = HTTPBin(ssl: true, bindTarget: .unixDomainSocket(path))
2237+
let localClient = HTTPClient(eventLoopGroupProvider: .shared(self.clientGroup),
2238+
configuration: HTTPClient.Configuration(certificateVerification: .none),
2239+
backgroundActivityLogger: backgroundLogger)
2240+
defer {
2241+
XCTAssertNoThrow(try localClient.syncShutdown())
2242+
XCTAssertNoThrow(try localSocketPathHTTPBin.shutdown())
2243+
}
2244+
2245+
XCTAssertNoThrow(XCTAssertEqual(.notFound, try checkExpectationsWithLogger(type: "GET") { logger, url in
2246+
try localClient.execute(secureSocketPath: path, urlPath: url, logger: logger).wait()
2247+
}.status))
2248+
2249+
// No background activity expected here.
2250+
XCTAssertEqual(0, backgroundLogStore.allEntries.count)
2251+
})
21382252
}
21392253

21402254
func testClosingIdleConnectionsInPoolLogsInTheBackground() {

0 commit comments

Comments
 (0)