@@ -15,7 +15,7 @@ class HTTPServerTests: XCTestCase {
1515 let server = HTTPServer (
1616 configuration: . init(
1717 hostname: " localhost " ,
18- port: 8080 ,
18+ port: 0 ,
1919 supportVersions: [ . one] ,
2020 errorHandler: { error in
2121 XCTFail ( " \( error) " )
@@ -24,14 +24,45 @@ class HTTPServerTests: XCTestCase {
2424 on: self . eventLoopGroup
2525 )
2626 try server. start ( delegate: LargeResponder ( ) ) . wait ( )
27+ defer {
28+ try ! server. shutdown ( ) . wait ( )
29+ try ! server. onClose. wait ( )
30+ }
2731
28- var req = HTTPRequest ( method: . GET, url: " http://localhost:8080 / " )
32+ var req = HTTPRequest ( method: . GET, url: " http://localhost: \( server . port ) / " )
2933 req. headers. replaceOrAdd ( name: . connection, value: " close " )
3034 let res = try HTTPClient ( on: self . eventLoopGroup)
3135 . send ( req) . wait ( )
3236 XCTAssertEqual ( res. body. count, 2_000_000 )
33- try server. shutdown ( ) . wait ( )
34- try server. onClose. wait ( )
37+ }
38+
39+ func testServerPort( ) throws {
40+ struct Responder : HTTPServerDelegate {
41+ func respond( to request: HTTPRequest , on channel: Channel ) -> EventLoopFuture < HTTPResponse > {
42+ let res = HTTPResponse ( status: . ok, body: " OK " )
43+ return channel. eventLoop. makeSucceededFuture ( res)
44+ }
45+ }
46+
47+ let server = HTTPServer (
48+ configuration: . init(
49+ hostname: " localhost " ,
50+ port: 0 ,
51+ supportVersions: [ . one] ,
52+ errorHandler: { error in
53+ XCTFail ( " \( error) " )
54+ }
55+ ) ,
56+ on: self . eventLoopGroup
57+ )
58+ try server. start ( delegate: Responder ( ) ) . wait ( )
59+ defer {
60+ try ! server. shutdown ( ) . wait ( )
61+ try ! server. onClose. wait ( )
62+ }
63+
64+ XCTAssertNotNil ( server. port)
65+ XCTAssertGreaterThan ( server. port!, 0 )
3566 }
3667
3768 func testRFC1123Flip( ) throws {
0 commit comments