@@ -79,6 +79,7 @@ type TestCluster struct {
79
79
clusterArgs base.TestClusterArgs
80
80
81
81
defaultTestTenantOptions base.DefaultTestTenantOptions
82
+ defaultDRPCOption base.DefaultTestDRPCOption
82
83
83
84
t serverutils.TestFataler
84
85
}
@@ -260,6 +261,40 @@ func PrintTimings(testMain time.Duration) {
260
261
}
261
262
}
262
263
264
+ // validateDefaultTestTenant checks that per-server args don't override
265
+ // the top-level DefaultTestTenant setting inconsistently.
266
+ func (tc * TestCluster ) validateDefaultTestTenant (
267
+ t serverutils.TestFataler , nodes int , defaultTestTenantOptions base.DefaultTestTenantOptions ,
268
+ ) {
269
+ for i := range nodes {
270
+ if args , ok := tc .clusterArgs .ServerArgsPerNode [i ]; ok &&
271
+ args .DefaultTestTenant != (base.DefaultTestTenantOptions {}) &&
272
+ args .DefaultTestTenant != defaultTestTenantOptions {
273
+ tc .Stopper ().Stop (context .Background ())
274
+ t .Fatalf ("improper use of DefaultTestTenantOptions in per-server args: %v vs %v\n " +
275
+ "Tip: use the top-level ServerArgs to set the default test tenant options." ,
276
+ args .DefaultTestTenant , defaultTestTenantOptions )
277
+ }
278
+ }
279
+ }
280
+
281
+ // validateDefaultDRPCOption checks that per-server args don't override
282
+ // the top-level DefaultDRPCOption setting inconsistently.
283
+ func (tc * TestCluster ) validateDefaultDRPCOption (
284
+ t serverutils.TestFataler , nodes int , defaultDRPCOption base.DefaultTestDRPCOption ,
285
+ ) {
286
+ for i := range nodes {
287
+ if args , ok := tc .clusterArgs .ServerArgsPerNode [i ]; ok &&
288
+ args .DefaultDRPCOption != base .TestDRPCUnset &&
289
+ args .DefaultDRPCOption != defaultDRPCOption {
290
+ tc .Stopper ().Stop (context .Background ())
291
+ t .Fatalf ("improper use of DefaultDRPCOption in per-server args: %v vs %v\n " +
292
+ "Tip: use the top-level ServerArgs to set the default DRPC option." ,
293
+ args .DefaultDRPCOption , defaultDRPCOption )
294
+ }
295
+ }
296
+ }
297
+
263
298
// StartTestCluster creates and starts up a TestCluster made up of `nodes`
264
299
// in-memory testing servers.
265
300
// The cluster should be stopped using TestCluster.Stopper().Stop().
@@ -314,23 +349,18 @@ func NewTestCluster(
314
349
noLocalities = false
315
350
}
316
351
317
- // Find out how to do the default test tenant.
318
- // The choice should be made by the top-level ServerArgs.
352
+ // Resolve the test tenant configuration for the cluster. The choice should
353
+ // be made by the top-level ServerArgs.
319
354
defaultTestTenantOptions := tc .clusterArgs .ServerArgs .DefaultTestTenant
320
- // API check: verify that no non-default choice was made via per-server args,
321
- // and inform the user otherwise.
322
- for i := 0 ; i < nodes ; i ++ {
323
- if args , ok := tc .clusterArgs .ServerArgsPerNode [i ]; ok &&
324
- args .DefaultTestTenant != (base.DefaultTestTenantOptions {}) &&
325
- args .DefaultTestTenant != defaultTestTenantOptions {
326
- tc .Stopper ().Stop (context .Background ())
327
- t .Fatalf ("improper use of DefaultTestTenantOptions in per-server args: %v vs %v\n " +
328
- "Tip: use the top-level ServerArgs to set the default test tenant options." ,
329
- args .DefaultTestTenant , defaultTestTenantOptions )
330
- }
331
- }
355
+ tc .validateDefaultTestTenant (t , nodes , defaultTestTenantOptions )
332
356
tc .defaultTestTenantOptions = serverutils .ShouldStartDefaultTestTenant (t , defaultTestTenantOptions )
333
357
358
+ // Resolve the DRPC configuration for the cluster. The choice should be made
359
+ // by the top-level ServerArgs.
360
+ defaultDRPCOption := tc .clusterArgs .ServerArgs .DefaultDRPCOption
361
+ tc .validateDefaultDRPCOption (t , nodes , defaultDRPCOption )
362
+ tc .defaultDRPCOption = serverutils .ShouldEnableDRPC (context .Background (), t , defaultDRPCOption )
363
+
334
364
var firstListener net.Listener
335
365
for i := 0 ; i < nodes ; i ++ {
336
366
var serverArgs base.TestServerArgs
@@ -346,8 +376,6 @@ func NewTestCluster(
346
376
serverArgs .Settings = cluster .TestingCloneClusterSettings (serverArgs .Settings )
347
377
}
348
378
349
- serverutils .TryEnableDRPCSetting (context .Background (), t , & serverArgs )
350
-
351
379
// If a reusable listener registry is provided, create reusable listeners
352
380
// for every server that doesn't have a custom listener provided. (Only
353
381
// servers with a reusable listener can be restarted).
@@ -650,9 +678,10 @@ func (tc *TestCluster) AddServer(
650
678
serverArgs .Addr = serverArgs .Listener .Addr ().String ()
651
679
}
652
680
653
- // Inject the decision that was made about whether or not to start a
654
- // test tenant server, into this new server's configuration.
681
+ // Inject the decisions that were made about test configuration
682
+ // into this new server's configuration.
655
683
serverArgs .DefaultTestTenant = tc .defaultTestTenantOptions
684
+ serverArgs .DefaultDRPCOption = tc .defaultDRPCOption
656
685
657
686
s , err := serverutils .NewServer (serverArgs )
658
687
if err != nil {
0 commit comments