@@ -2084,7 +2084,71 @@ class HTTPClientTests: XCTestCase {
20842084 logger: logger) . wait ( ) )
20852085 XCTAssertEqual ( 0 , logStore. allEntries. count)
20862086
2087+ // === Synthesized Request
2088+ XCTAssertNoThrow ( try self . defaultClient. execute ( . GET,
2089+ url: self . defaultHTTPBinURLPrefix + " get " ,
2090+ body: nil ,
2091+ deadline: nil ,
2092+ logger: logger) . wait ( ) )
2093+ XCTAssertEqual ( 0 , logStore. allEntries. count)
2094+
20872095 XCTAssertEqual ( 0 , self . backgroundLogStore. allEntries. count)
2096+
2097+
2098+ // === Synthesized Socket Path Request
2099+ XCTAssertNoThrow ( try TemporaryFileHelpers . withTemporaryUnixDomainSocketPathName { path in
2100+ let backgroundLogStore = CollectEverythingLogHandler . LogStore ( )
2101+ var backgroundLogger = Logger ( label: " \( #function) " , factory: { _ in
2102+ CollectEverythingLogHandler ( logStore: backgroundLogStore)
2103+ } )
2104+ backgroundLogger. logLevel = . trace
2105+
2106+ let localSocketPathHTTPBin = HTTPBin ( bindTarget: . unixDomainSocket( path) )
2107+ let localClient = HTTPClient ( eventLoopGroupProvider: . shared( self . clientGroup) ,
2108+ backgroundActivityLogger: backgroundLogger)
2109+ defer {
2110+ XCTAssertNoThrow ( try localClient. syncShutdown ( ) )
2111+ XCTAssertNoThrow ( try localSocketPathHTTPBin. shutdown ( ) )
2112+ }
2113+
2114+ XCTAssertNoThrow ( try localClient. execute ( . GET,
2115+ socketPath: path,
2116+ urlPath: " get " ,
2117+ body: nil ,
2118+ deadline: nil ,
2119+ logger: logger) . wait ( ) )
2120+ XCTAssertEqual ( 0 , logStore. allEntries. count)
2121+
2122+ XCTAssertEqual ( 0 , backgroundLogStore. allEntries. count)
2123+ } )
2124+
2125+ // === Synthesized Secure Socket Path Request
2126+ XCTAssertNoThrow ( try TemporaryFileHelpers . withTemporaryUnixDomainSocketPathName { path in
2127+ let backgroundLogStore = CollectEverythingLogHandler . LogStore ( )
2128+ var backgroundLogger = Logger ( label: " \( #function) " , factory: { _ in
2129+ CollectEverythingLogHandler ( logStore: backgroundLogStore)
2130+ } )
2131+ backgroundLogger. logLevel = . trace
2132+
2133+ let localSocketPathHTTPBin = HTTPBin ( ssl: true , bindTarget: . unixDomainSocket( path) )
2134+ let localClient = HTTPClient ( eventLoopGroupProvider: . shared( self . clientGroup) ,
2135+ configuration: HTTPClient . Configuration ( certificateVerification: . none) ,
2136+ backgroundActivityLogger: backgroundLogger)
2137+ defer {
2138+ XCTAssertNoThrow ( try localClient. syncShutdown ( ) )
2139+ XCTAssertNoThrow ( try localSocketPathHTTPBin. shutdown ( ) )
2140+ }
2141+
2142+ XCTAssertNoThrow ( try localClient. execute ( . GET,
2143+ secureSocketPath: path,
2144+ urlPath: " get " ,
2145+ body: nil ,
2146+ deadline: nil ,
2147+ logger: logger) . wait ( ) )
2148+ XCTAssertEqual ( 0 , logStore. allEntries. count)
2149+
2150+ XCTAssertEqual ( 0 , backgroundLogStore. allEntries. count)
2151+ } )
20882152 }
20892153
20902154 func testAllMethodsLog( ) {
@@ -2097,7 +2161,7 @@ class HTTPClientTests: XCTestCase {
20972161 logger. logLevel = . trace
20982162 logger [ metadataKey: " req " ] = " yo- \( type) "
20992163
2100- let url = self . defaultHTTPBinURLPrefix + " not-found/request/ \( type) ) "
2164+ let url = " not-found/request/ \( type) ) "
21012165 let result = try body ( logger, url)
21022166
21032167 XCTAssertGreaterThan ( logStore. allEntries. count, 0 )
@@ -2109,27 +2173,78 @@ class HTTPClientTests: XCTestCase {
21092173 }
21102174
21112175 XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " GET " ) { logger, url in
2112- try self . defaultClient. get ( url: url, logger: logger) . wait ( )
2176+ try self . defaultClient. get ( url: self . defaultHTTPBinURLPrefix + url, logger: logger) . wait ( )
21132177 } . status) )
21142178
21152179 XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " PUT " ) { logger, url in
2116- try self . defaultClient. put ( url: url, logger: logger) . wait ( )
2180+ try self . defaultClient. put ( url: self . defaultHTTPBinURLPrefix + url, logger: logger) . wait ( )
21172181 } . status) )
21182182
21192183 XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " POST " ) { logger, url in
2120- try self . defaultClient. post ( url: url, logger: logger) . wait ( )
2184+ try self . defaultClient. post ( url: self . defaultHTTPBinURLPrefix + url, logger: logger) . wait ( )
21212185 } . status) )
21222186
21232187 XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " DELETE " ) { logger, url in
2124- try self . defaultClient. delete ( url: url, logger: logger) . wait ( )
2188+ try self . defaultClient. delete ( url: self . defaultHTTPBinURLPrefix + url, logger: logger) . wait ( )
21252189 } . status) )
21262190
21272191 XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " PATCH " ) { logger, url in
2128- try self . defaultClient. patch ( url: url, logger: logger) . wait ( )
2192+ try self . defaultClient. patch ( url: self . defaultHTTPBinURLPrefix + url, logger: logger) . wait ( )
2193+ } . status) )
2194+
2195+ XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " CHECKOUT " ) { logger, url in
2196+ try self . defaultClient. execute ( . CHECKOUT, url: self . defaultHTTPBinURLPrefix + url, logger: logger) . wait ( )
21292197 } . status) )
21302198
21312199 // No background activity expected here.
21322200 XCTAssertEqual ( 0 , self . backgroundLogStore. allEntries. count)
2201+
2202+ XCTAssertNoThrow ( try TemporaryFileHelpers . withTemporaryUnixDomainSocketPathName { path in
2203+ let backgroundLogStore = CollectEverythingLogHandler . LogStore ( )
2204+ var backgroundLogger = Logger ( label: " \( #function) " , factory: { _ in
2205+ CollectEverythingLogHandler ( logStore: backgroundLogStore)
2206+ } )
2207+ backgroundLogger. logLevel = . trace
2208+
2209+ let localSocketPathHTTPBin = HTTPBin ( bindTarget: . unixDomainSocket( path) )
2210+ let localClient = HTTPClient ( eventLoopGroupProvider: . shared( self . clientGroup) ,
2211+ backgroundActivityLogger: backgroundLogger)
2212+ defer {
2213+ XCTAssertNoThrow ( try localClient. syncShutdown ( ) )
2214+ XCTAssertNoThrow ( try localSocketPathHTTPBin. shutdown ( ) )
2215+ }
2216+
2217+ XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " GET " ) { logger, url in
2218+ try localClient. execute ( socketPath: path, urlPath: url, logger: logger) . wait ( )
2219+ } . status) )
2220+
2221+ // No background activity expected here.
2222+ XCTAssertEqual ( 0 , backgroundLogStore. allEntries. count)
2223+ } )
2224+
2225+ XCTAssertNoThrow ( try TemporaryFileHelpers . withTemporaryUnixDomainSocketPathName { path in
2226+ let backgroundLogStore = CollectEverythingLogHandler . LogStore ( )
2227+ var backgroundLogger = Logger ( label: " \( #function) " , factory: { _ in
2228+ CollectEverythingLogHandler ( logStore: backgroundLogStore)
2229+ } )
2230+ backgroundLogger. logLevel = . trace
2231+
2232+ let localSocketPathHTTPBin = HTTPBin ( ssl: true , bindTarget: . unixDomainSocket( path) )
2233+ let localClient = HTTPClient ( eventLoopGroupProvider: . shared( self . clientGroup) ,
2234+ configuration: HTTPClient . Configuration ( certificateVerification: . none) ,
2235+ backgroundActivityLogger: backgroundLogger)
2236+ defer {
2237+ XCTAssertNoThrow ( try localClient. syncShutdown ( ) )
2238+ XCTAssertNoThrow ( try localSocketPathHTTPBin. shutdown ( ) )
2239+ }
2240+
2241+ XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " GET " ) { logger, url in
2242+ try localClient. execute ( secureSocketPath: path, urlPath: url, logger: logger) . wait ( )
2243+ } . status) )
2244+
2245+ // No background activity expected here.
2246+ XCTAssertEqual ( 0 , backgroundLogStore. allEntries. count)
2247+ } )
21332248 }
21342249
21352250 func testClosingIdleConnectionsInPoolLogsInTheBackground( ) {
0 commit comments