@@ -154,8 +154,7 @@ struct HTTP2TransportTLSEnabledTests {
154
154
155
155
@Test (
156
156
" Error is surfaced when server fails client verification " ,
157
- arguments: TransportKind . supported,
158
- TransportKind . supported
157
+ arguments: [ TransportKind . posix] , [ TransportKind . posix]
159
158
)
160
159
// Verification should fail because the client does not offer a cert that
161
160
// the server can use for mutual verification.
@@ -229,8 +228,6 @@ struct HTTP2TransportTLSEnabledTests {
229
228
enum TLSEnabledTestsError : Error {
230
229
case failedToImportPKCS12
231
230
case unexpectedListeningAddress
232
- case serverError( cause: any Error )
233
- case clientError( cause: any Error )
234
231
}
235
232
236
233
struct Config < Transport, Security> {
@@ -477,98 +474,57 @@ struct HTTP2TransportTLSEnabledTests {
477
474
serverConfig: ServerConfig ,
478
475
_ test: ( ControlClient < NIOClientTransport > ) async throws -> Void
479
476
) async throws {
480
- try await withThrowingDiscardingTaskGroup { group in
481
- let server = self . makeServer ( config: serverConfig)
482
-
483
- group. addTask {
484
- do {
485
- try await server. serve ( )
486
- } catch {
487
- throw TLSEnabledTestsError . serverError ( cause: error)
488
- }
489
- }
477
+ let serverTransport : NIOServerTransport
478
+ switch serverConfig {
479
+ case . posix( let posix) :
480
+ serverTransport = NIOServerTransport (
481
+ . http2NIOPosix(
482
+ address: . ipv4( host: " 127.0.0.1 " , port: 0 ) ,
483
+ transportSecurity: posix. security,
484
+ config: posix. transport
485
+ )
486
+ )
487
+ #if canImport(Network)
488
+ case . transportServices( let config) :
489
+ serverTransport = NIOServerTransport (
490
+ . http2NIOTS(
491
+ address: . ipv4( host: " 127.0.0.1 " , port: 0 ) ,
492
+ transportSecurity: config. security,
493
+ config: config. transport
494
+ )
495
+ )
496
+ #endif
497
+ }
490
498
499
+ try await withGRPCServer ( transport: serverTransport, services: [ ControlService ( ) ] ) { server in
491
500
guard let address = try await server. listeningAddress? . ipv4 else {
492
501
throw TLSEnabledTestsError . unexpectedListeningAddress
493
502
}
494
503
495
504
let target : any ResolvableTarget = . ipv4( host: address. host, port: address. port)
496
- let client = try self . makeClient ( config: clientConfig, target: target)
497
-
498
- group. addTask {
499
- do {
500
- try await client. runConnections ( )
501
- } catch {
502
- throw TLSEnabledTestsError . clientError ( cause: error)
503
- }
504
- }
505
-
506
- let control = ControlClient ( wrapping: client)
507
- try await test ( control)
508
-
509
- client. beginGracefulShutdown ( )
510
- server. beginGracefulShutdown ( )
511
- }
512
- }
513
-
514
- private func makeServer( config: ServerConfig ) -> GRPCServer < NIOServerTransport > {
515
- let services = [ ControlService ( ) ]
516
-
517
- switch config {
518
- case . posix( let config) :
519
- return GRPCServer (
520
- transport: NIOServerTransport (
505
+ let clientTransport : NIOClientTransport
506
+ switch clientConfig {
507
+ case . posix( let config) :
508
+ clientTransport = try NIOClientTransport (
521
509
. http2NIOPosix(
522
- address : . ipv4 ( host : " 127.0.0.1 " , port : 0 ) ,
510
+ target : target ,
523
511
transportSecurity: config. security,
524
512
config: config. transport
525
513
)
526
- ) ,
527
- services: services
528
- )
529
-
530
- #if canImport(Network)
531
- case . transportServices( let config) :
532
- return GRPCServer (
533
- transport: NIOServerTransport (
534
- . http2NIOTS(
535
- address: . ipv4( host: " 127.0.0.1 " , port: 0 ) ,
536
- transportSecurity: config. security,
537
- config: config. transport
538
- )
539
- ) ,
540
- services: services
541
- )
542
- #endif
543
- }
544
- }
545
-
546
- private func makeClient(
547
- config: ClientConfig ,
548
- target: any ResolvableTarget
549
- ) throws -> GRPCClient < NIOClientTransport > {
550
- switch config {
551
- case . posix( let config) :
552
- let transport = try HTTP2ClientTransport . Posix (
553
- target: target,
554
- transportSecurity: config. security,
555
- config: config. transport,
556
- serviceConfig: ServiceConfig ( )
557
- )
558
- return GRPCClient ( transport: NIOClientTransport ( transport) )
514
+ )
515
+ #if canImport(Network)
516
+ case . transportServices( let config) :
517
+ clientTransport = try NIOClientTransport (
518
+ . http2NIOTS( target: target, transportSecurity: config. security, config: config. transport)
519
+ )
520
+ #endif
521
+ }
559
522
560
- #if canImport(Network)
561
- case . transportServices( let config) :
562
- let transport = try HTTP2ClientTransport . TransportServices (
563
- target: target,
564
- transportSecurity: config. security,
565
- config: config. transport,
566
- serviceConfig: ServiceConfig ( )
567
- )
568
- return GRPCClient ( transport: NIOClientTransport ( transport) )
569
- #endif
523
+ try await withGRPCClient ( transport: clientTransport) { client in
524
+ let control = ControlClient ( wrapping: client)
525
+ try await test ( control)
526
+ }
570
527
}
571
-
572
528
}
573
529
574
530
private func executeUnaryRPC( control: ControlClient < NIOClientTransport > ) async throws {
0 commit comments