Skip to content

Commit 945f7f7

Browse files
authored
Shutdown server gracefully in h2 transport tests (#1996)
Motivation: The h2 transport tests cancel the task group running them when the test has completed. Cancelling the server makes apple/swift-nio#2813 more likely to occur. Modifications: - Tell the server to stop listening and let the test stop gracefully Result: Fewer runtime issues
1 parent 0aad709 commit 945f7f7

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

Tests/GRPCHTTP2TransportTests/HTTP2TransportTests.swift

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ final class HTTP2TransportTests: XCTestCase {
5757
) async throws {
5858
for pair in transport {
5959
try await withThrowingTaskGroup(of: Void.self) { group in
60-
let address = try await self.runServer(
60+
let (server, address) = try await self.runServer(
6161
in: &group,
6262
kind: pair.server,
6363
enableControlService: enableControlService,
@@ -94,8 +94,8 @@ final class HTTP2TransportTests: XCTestCase {
9494
XCTFail("Unexpected error: '\(error)' (\(pair))")
9595
}
9696

97+
server.stopListening()
9798
client.close()
98-
group.cancelAll()
9999
}
100100
}
101101
}
@@ -139,7 +139,7 @@ final class HTTP2TransportTests: XCTestCase {
139139
kind: Transport.Kind,
140140
enableControlService: Bool,
141141
compression: CompressionAlgorithmSet
142-
) async throws -> GRPCHTTP2Core.SocketAddress {
142+
) async throws -> (GRPCServer, GRPCHTTP2Core.SocketAddress) {
143143
let services = enableControlService ? [ControlService()] : []
144144

145145
switch kind {
@@ -156,7 +156,8 @@ final class HTTP2TransportTests: XCTestCase {
156156
try await server.run()
157157
}
158158

159-
return try await transport.listeningAddress
159+
let address = try await transport.listeningAddress
160+
return (server, address)
160161

161162
case .niots:
162163
#if canImport(Network)
@@ -172,7 +173,8 @@ final class HTTP2TransportTests: XCTestCase {
172173
try await server.run()
173174
}
174175

175-
return try await transport.listeningAddress
176+
let address = try await transport.listeningAddress
177+
return (server, address)
176178
#else
177179
throw XCTSkip("Transport not supported on this platform")
178180
#endif

0 commit comments

Comments
 (0)