@@ -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