@@ -169,6 +169,8 @@ func main() {
169
169
logger .Fatalf ("only one of TLS, ALTS, google default creds, or compute engine creds can be used" )
170
170
}
171
171
172
+ ctx := context .Background ()
173
+
172
174
var credsChosen credsMode
173
175
switch {
174
176
case * useTLS :
@@ -242,7 +244,7 @@ func main() {
242
244
}
243
245
opts = append (opts , grpc .WithPerRPCCredentials (jwtCreds ))
244
246
} else if * testCase == "oauth2_auth_token" {
245
- opts = append (opts , grpc .WithPerRPCCredentials (oauth.TokenSource {TokenSource : oauth2 .StaticTokenSource (interop .GetToken (* serviceAccountKeyFile , * oauthScope ))}))
247
+ opts = append (opts , grpc .WithPerRPCCredentials (oauth.TokenSource {TokenSource : oauth2 .StaticTokenSource (interop .GetToken (ctx , * serviceAccountKeyFile , * oauthScope ))}))
246
248
}
247
249
}
248
250
if len (* serviceConfigJSON ) > 0 {
@@ -265,105 +267,107 @@ func main() {
265
267
}
266
268
defer conn .Close ()
267
269
tc := testgrpc .NewTestServiceClient (conn )
270
+ ctxWithDeadline , cancel := context .WithTimeout (ctx , time .Duration (* soakOverallTimeoutSeconds )* time .Second )
271
+ defer cancel ()
268
272
switch * testCase {
269
273
case "empty_unary" :
270
- interop .DoEmptyUnaryCall (tc )
274
+ interop .DoEmptyUnaryCall (ctx , tc )
271
275
logger .Infoln ("EmptyUnaryCall done" )
272
276
case "large_unary" :
273
- interop .DoLargeUnaryCall (tc )
277
+ interop .DoLargeUnaryCall (ctx , tc )
274
278
logger .Infoln ("LargeUnaryCall done" )
275
279
case "client_streaming" :
276
- interop .DoClientStreaming (tc )
280
+ interop .DoClientStreaming (ctx , tc )
277
281
logger .Infoln ("ClientStreaming done" )
278
282
case "server_streaming" :
279
- interop .DoServerStreaming (tc )
283
+ interop .DoServerStreaming (ctx , tc )
280
284
logger .Infoln ("ServerStreaming done" )
281
285
case "ping_pong" :
282
- interop .DoPingPong (tc )
286
+ interop .DoPingPong (ctx , tc )
283
287
logger .Infoln ("Pingpong done" )
284
288
case "empty_stream" :
285
- interop .DoEmptyStream (tc )
289
+ interop .DoEmptyStream (ctx , tc )
286
290
logger .Infoln ("Emptystream done" )
287
291
case "timeout_on_sleeping_server" :
288
- interop .DoTimeoutOnSleepingServer (tc )
292
+ interop .DoTimeoutOnSleepingServer (ctx , tc )
289
293
logger .Infoln ("TimeoutOnSleepingServer done" )
290
294
case "compute_engine_creds" :
291
295
if credsChosen != credsTLS {
292
296
logger .Fatalf ("TLS credentials need to be set for compute_engine_creds test case." )
293
297
}
294
- interop .DoComputeEngineCreds (tc , * defaultServiceAccount , * oauthScope )
298
+ interop .DoComputeEngineCreds (ctx , tc , * defaultServiceAccount , * oauthScope )
295
299
logger .Infoln ("ComputeEngineCreds done" )
296
300
case "service_account_creds" :
297
301
if credsChosen != credsTLS {
298
302
logger .Fatalf ("TLS credentials need to be set for service_account_creds test case." )
299
303
}
300
- interop .DoServiceAccountCreds (tc , * serviceAccountKeyFile , * oauthScope )
304
+ interop .DoServiceAccountCreds (ctx , tc , * serviceAccountKeyFile , * oauthScope )
301
305
logger .Infoln ("ServiceAccountCreds done" )
302
306
case "jwt_token_creds" :
303
307
if credsChosen != credsTLS {
304
308
logger .Fatalf ("TLS credentials need to be set for jwt_token_creds test case." )
305
309
}
306
- interop .DoJWTTokenCreds (tc , * serviceAccountKeyFile )
310
+ interop .DoJWTTokenCreds (ctx , tc , * serviceAccountKeyFile )
307
311
logger .Infoln ("JWTtokenCreds done" )
308
312
case "per_rpc_creds" :
309
313
if credsChosen != credsTLS {
310
314
logger .Fatalf ("TLS credentials need to be set for per_rpc_creds test case." )
311
315
}
312
- interop .DoPerRPCCreds (tc , * serviceAccountKeyFile , * oauthScope )
316
+ interop .DoPerRPCCreds (ctx , tc , * serviceAccountKeyFile , * oauthScope )
313
317
logger .Infoln ("PerRPCCreds done" )
314
318
case "oauth2_auth_token" :
315
319
if credsChosen != credsTLS {
316
320
logger .Fatalf ("TLS credentials need to be set for oauth2_auth_token test case." )
317
321
}
318
- interop .DoOauth2TokenCreds (tc , * serviceAccountKeyFile , * oauthScope )
322
+ interop .DoOauth2TokenCreds (ctx , tc , * serviceAccountKeyFile , * oauthScope )
319
323
logger .Infoln ("Oauth2TokenCreds done" )
320
324
case "google_default_credentials" :
321
325
if credsChosen != credsGoogleDefaultCreds {
322
326
logger .Fatalf ("GoogleDefaultCredentials need to be set for google_default_credentials test case." )
323
327
}
324
- interop .DoGoogleDefaultCredentials (tc , * defaultServiceAccount )
328
+ interop .DoGoogleDefaultCredentials (ctx , tc , * defaultServiceAccount )
325
329
logger .Infoln ("GoogleDefaultCredentials done" )
326
330
case "compute_engine_channel_credentials" :
327
331
if credsChosen != credsComputeEngineCreds {
328
332
logger .Fatalf ("ComputeEngineCreds need to be set for compute_engine_channel_credentials test case." )
329
333
}
330
- interop .DoComputeEngineChannelCredentials (tc , * defaultServiceAccount )
334
+ interop .DoComputeEngineChannelCredentials (ctx , tc , * defaultServiceAccount )
331
335
logger .Infoln ("ComputeEngineChannelCredentials done" )
332
336
case "cancel_after_begin" :
333
- interop .DoCancelAfterBegin (tc )
337
+ interop .DoCancelAfterBegin (ctx , tc )
334
338
logger .Infoln ("CancelAfterBegin done" )
335
339
case "cancel_after_first_response" :
336
- interop .DoCancelAfterFirstResponse (tc )
340
+ interop .DoCancelAfterFirstResponse (ctx , tc )
337
341
logger .Infoln ("CancelAfterFirstResponse done" )
338
342
case "status_code_and_message" :
339
- interop .DoStatusCodeAndMessage (tc )
343
+ interop .DoStatusCodeAndMessage (ctx , tc )
340
344
logger .Infoln ("StatusCodeAndMessage done" )
341
345
case "special_status_message" :
342
- interop .DoSpecialStatusMessage (tc )
346
+ interop .DoSpecialStatusMessage (ctx , tc )
343
347
logger .Infoln ("SpecialStatusMessage done" )
344
348
case "custom_metadata" :
345
- interop .DoCustomMetadata (tc )
349
+ interop .DoCustomMetadata (ctx , tc )
346
350
logger .Infoln ("CustomMetadata done" )
347
351
case "unimplemented_method" :
348
- interop .DoUnimplementedMethod (conn )
352
+ interop .DoUnimplementedMethod (conn , ctx )
349
353
logger .Infoln ("UnimplementedMethod done" )
350
354
case "unimplemented_service" :
351
- interop .DoUnimplementedService (testgrpc .NewUnimplementedServiceClient (conn ))
355
+ interop .DoUnimplementedService (testgrpc .NewUnimplementedServiceClient (conn ), ctx )
352
356
logger .Infoln ("UnimplementedService done" )
353
357
case "pick_first_unary" :
354
- interop .DoPickFirstUnary (tc )
358
+ interop .DoPickFirstUnary (ctx , tc )
355
359
logger .Infoln ("PickFirstUnary done" )
356
360
case "rpc_soak" :
357
- interop .DoSoakTest (tc , serverAddr , opts , false /* resetChannel */ , * soakIterations , * soakMaxFailures , * soakRequestSize , * soakResponseSize , time .Duration (* soakPerIterationMaxAcceptableLatencyMs )* time .Millisecond , time .Duration (* soakMinTimeMsBetweenRPCs )* time .Millisecond , time . Now (). Add ( time . Duration ( * soakOverallTimeoutSeconds ) * time . Second ) )
361
+ interop .DoSoakTest (ctxWithDeadline , tc , serverAddr , opts , false /* resetChannel */ , * soakIterations , * soakMaxFailures , * soakRequestSize , * soakResponseSize , time .Duration (* soakPerIterationMaxAcceptableLatencyMs )* time .Millisecond , time .Duration (* soakMinTimeMsBetweenRPCs )* time .Millisecond )
358
362
logger .Infoln ("RpcSoak done" )
359
363
case "channel_soak" :
360
- interop .DoSoakTest (tc , serverAddr , opts , true /* resetChannel */ , * soakIterations , * soakMaxFailures , * soakRequestSize , * soakResponseSize , time .Duration (* soakPerIterationMaxAcceptableLatencyMs )* time .Millisecond , time .Duration (* soakMinTimeMsBetweenRPCs )* time .Millisecond , time . Now (). Add ( time . Duration ( * soakOverallTimeoutSeconds ) * time . Second ) )
364
+ interop .DoSoakTest (ctxWithDeadline , tc , serverAddr , opts , true /* resetChannel */ , * soakIterations , * soakMaxFailures , * soakRequestSize , * soakResponseSize , time .Duration (* soakPerIterationMaxAcceptableLatencyMs )* time .Millisecond , time .Duration (* soakMinTimeMsBetweenRPCs )* time .Millisecond )
361
365
logger .Infoln ("ChannelSoak done" )
362
366
case "orca_per_rpc" :
363
- interop .DoORCAPerRPCTest (tc )
367
+ interop .DoORCAPerRPCTest (ctx , tc )
364
368
logger .Infoln ("ORCAPerRPC done" )
365
369
case "orca_oob" :
366
- interop .DoORCAOOBTest (tc )
370
+ interop .DoORCAOOBTest (ctx , tc )
367
371
logger .Infoln ("ORCAOOB done" )
368
372
default :
369
373
logger .Fatal ("Unsupported test case: " , * testCase )
0 commit comments