@@ -24,7 +24,6 @@ import (
24
24
"crypto/x509"
25
25
"encoding/json"
26
26
"io"
27
- "net"
28
27
"os"
29
28
"testing"
30
29
"time"
@@ -240,23 +239,24 @@ func (s) TestAuditLogger(t *testing.T) {
240
239
wantStreamingCallCode : codes .PermissionDenied ,
241
240
},
242
241
}
243
- // Construct the credentials for the tests and the stub server
244
- serverCreds := loadServerCreds (t )
245
- clientCreds := loadClientCreds (t )
246
- ss := & stubserver.StubServer {
247
- UnaryCallF : func (ctx context.Context , in * testpb.SimpleRequest ) (* testpb.SimpleResponse , error ) {
248
- return & testpb.SimpleResponse {}, nil
249
- },
250
- FullDuplexCallF : func (stream testgrpc.TestService_FullDuplexCallServer ) error {
251
- _ , err := stream .Recv ()
252
- if err != io .EOF {
253
- return err
254
- }
255
- return nil
256
- },
257
- }
242
+
258
243
for _ , test := range tests {
259
244
t .Run (test .name , func (t * testing.T ) {
245
+ // Construct the credentials for the tests and the stub server
246
+ serverCreds := loadServerCreds (t )
247
+ clientCreds := loadClientCreds (t )
248
+ ss := & stubserver.StubServer {
249
+ UnaryCallF : func (ctx context.Context , in * testpb.SimpleRequest ) (* testpb.SimpleResponse , error ) {
250
+ return & testpb.SimpleResponse {}, nil
251
+ },
252
+ FullDuplexCallF : func (stream testgrpc.TestService_FullDuplexCallServer ) error {
253
+ _ , err := stream .Recv ()
254
+ if err != io .EOF {
255
+ return err
256
+ }
257
+ return nil
258
+ },
259
+ }
260
260
// Setup test statAuditLogger, gRPC test server with authzPolicy, unary
261
261
// and stream interceptors.
262
262
lb := & loggerBuilder {
@@ -266,25 +266,18 @@ func (s) TestAuditLogger(t *testing.T) {
266
266
audit .RegisterLoggerBuilder (lb )
267
267
i , _ := authz .NewStatic (test .authzPolicy )
268
268
269
- s := grpc .NewServer (
270
- grpc .Creds (serverCreds ),
271
- grpc .ChainUnaryInterceptor (i .UnaryInterceptor ),
272
- grpc .ChainStreamInterceptor (i .StreamInterceptor ))
269
+ s := grpc .NewServer (grpc .Creds (serverCreds ), grpc .ChainUnaryInterceptor (i .UnaryInterceptor ), grpc .ChainStreamInterceptor (i .StreamInterceptor ))
273
270
defer s .Stop ()
274
- testgrpc .RegisterTestServiceServer (s , ss )
275
- lis , err := net .Listen ("tcp" , "localhost:0" )
276
- if err != nil {
277
- t .Fatalf ("Error listening: %v" , err )
278
- }
279
- go s .Serve (lis )
271
+ ss .S = s
272
+ stubserver .StartTestService (t , ss )
280
273
281
274
// Setup gRPC test client with certificates containing a SPIFFE Id.
282
- clientConn , err := grpc .NewClient (lis . Addr (). String () , grpc .WithTransportCredentials (clientCreds ))
275
+ cc , err := grpc .NewClient (ss . Address , grpc .WithTransportCredentials (clientCreds ))
283
276
if err != nil {
284
- t .Fatalf ("grpc.NewClient(%v) failed: %v" , lis . Addr (). String () , err )
277
+ t .Fatalf ("grpc.NewClient(%v) failed: %v" , ss . Address , err )
285
278
}
286
- defer clientConn .Close ()
287
- client := testgrpc .NewTestServiceClient (clientConn )
279
+ defer cc .Close ()
280
+ client := testgrpc .NewTestServiceClient (cc )
288
281
ctx , cancel := context .WithTimeout (context .Background (), 5 * time .Second )
289
282
defer cancel ()
290
283
@@ -296,15 +289,15 @@ func (s) TestAuditLogger(t *testing.T) {
296
289
}
297
290
stream , err := client .StreamingInputCall (ctx )
298
291
if err != nil {
299
- t .Fatalf ("StreamingInputCall failed:%v" , err )
292
+ t .Fatalf ("StreamingInputCall failed: %v" , err )
300
293
}
301
294
req := & testpb.StreamingInputCallRequest {
302
295
Payload : & testpb.Payload {
303
296
Body : []byte ("hi" ),
304
297
},
305
298
}
306
299
if err := stream .Send (req ); err != nil && err != io .EOF {
307
- t .Fatalf ("stream.Send failed:%v" , err )
300
+ t .Fatalf ("stream.Send failed: %v" , err )
308
301
}
309
302
if _ , err := stream .CloseAndRecv (); status .Code (err ) != test .wantStreamingCallCode {
310
303
t .Errorf ("Unexpected stream.CloseAndRecv fail: got %v want %v" , err , test .wantStreamingCallCode )
0 commit comments