@@ -283,95 +283,111 @@ func TestGetKeyspaceShardsToWatch(t *testing.T) {
283
283
284
284
ts = memorytopo .NewServer (ctx , "test_cell" )
285
285
286
- shards1 := []string {"-40" , "40-50" , "50-60" , "60-70" , "70-80" , "80-" }
287
- keyspace1 := "test_keyspace"
288
-
289
- shards2 := []string {"-1000" , "1000-1100" , "1100-1200" , "1200-1300" , "1300-" }
290
- keyspace2 := "test_keyspace2"
291
-
292
- if err := ts .CreateKeyspace (ctx , keyspace1 , & topodatapb.Keyspace {}); err != nil {
293
- t .Fatalf ("cannot create keyspace: %v" , err )
286
+ keyspaces := []string {"test_keyspace" , "test_keyspace2" , "test_keyspace3" , "test_keyspace4" }
287
+ for _ , k := range keyspaces {
288
+ if err := ts .CreateKeyspace (ctx , k , & topodatapb.Keyspace {}); err != nil {
289
+ t .Fatalf ("cannot create keyspace: %v" , err )
290
+ }
294
291
}
295
292
296
- if err := ts .CreateKeyspace (ctx , keyspace2 , & topodatapb.Keyspace {}); err != nil {
297
- t .Fatalf ("cannot create keyspace: %v" , err )
298
- }
293
+ shards1 := []string {"-40" , "40-50" , "50-60" , "60-70" , "70-80" , "80-" }
294
+ shards2 := []string {"-1000" , "1000-1100" , "1100-1200" , "1200-1300" , "1300-" }
299
295
300
296
for _ , shard := range shards1 {
301
- if err := ts .CreateShard (ctx , keyspace1 , shard ); err != nil {
297
+ if err := ts .CreateShard (ctx , keyspaces [ 0 ] , shard ); err != nil {
302
298
t .Fatalf ("cannot create shard: %v" , err )
303
299
}
304
300
}
305
301
306
302
for _ , shard := range shards2 {
307
- if err := ts .CreateShard (ctx , keyspace2 , shard ); err != nil {
303
+ if err := ts .CreateShard (ctx , keyspaces [ 1 ] , shard ); err != nil {
308
304
t .Fatalf ("cannot create shard: %v" , err )
309
305
}
310
306
}
311
307
308
+ if err := ts .CreateShard (ctx , keyspaces [2 ], "-" ); err != nil {
309
+ t .Fatalf ("cannot create shard: %v" , err )
310
+ }
311
+
312
+ if err := ts .CreateShard (ctx , keyspaces [3 ], "0" ); err != nil {
313
+ t .Fatalf ("cannot create shard: %v" , err )
314
+ }
315
+
312
316
testcases := []* struct {
313
317
name string
314
318
clusters []string
315
319
expected []* topo.KeyspaceShard
316
320
}{
317
321
{
318
322
name : "single shard and range" ,
319
- clusters : []string {fmt .Sprintf ("%s/40-50" , keyspace1 ), fmt .Sprintf ("%s/60-80" , keyspace1 )},
323
+ clusters : []string {fmt .Sprintf ("%s/40-50" , keyspaces [ 0 ] ), fmt .Sprintf ("%s/60-80" , keyspaces [ 0 ] )},
320
324
expected : []* topo.KeyspaceShard {
321
- {Keyspace : keyspace1 , Shard : "40-50" },
322
- {Keyspace : keyspace1 , Shard : "60-70" },
323
- {Keyspace : keyspace1 , Shard : "70-80" },
325
+ {Keyspace : keyspaces [ 0 ] , Shard : "40-50" },
326
+ {Keyspace : keyspaces [ 0 ] , Shard : "60-70" },
327
+ {Keyspace : keyspaces [ 0 ] , Shard : "70-80" },
324
328
},
325
329
}, {
326
330
name : "single shard" ,
327
- clusters : []string {fmt .Sprintf ("%s/40-50" , keyspace1 )},
328
- expected : []* topo.KeyspaceShard {{Keyspace : keyspace1 , Shard : "40-50" }},
331
+ clusters : []string {fmt .Sprintf ("%s/40-50" , keyspaces [ 0 ] )},
332
+ expected : []* topo.KeyspaceShard {{Keyspace : keyspaces [ 0 ] , Shard : "40-50" }},
329
333
}, {
330
334
name : "full keyspace" ,
331
- clusters : []string {keyspace1 },
335
+ clusters : []string {keyspaces [ 0 ] },
332
336
expected : []* topo.KeyspaceShard {
333
- {Keyspace : keyspace1 , Shard : "-40" },
334
- {Keyspace : keyspace1 , Shard : "40-50" },
335
- {Keyspace : keyspace1 , Shard : "50-60" },
336
- {Keyspace : keyspace1 , Shard : "60-70" },
337
- {Keyspace : keyspace1 , Shard : "70-80" },
338
- {Keyspace : keyspace1 , Shard : "80-" },
337
+ {Keyspace : keyspaces [ 0 ] , Shard : "-40" },
338
+ {Keyspace : keyspaces [ 0 ] , Shard : "40-50" },
339
+ {Keyspace : keyspaces [ 0 ] , Shard : "50-60" },
340
+ {Keyspace : keyspaces [ 0 ] , Shard : "60-70" },
341
+ {Keyspace : keyspaces [ 0 ] , Shard : "70-80" },
342
+ {Keyspace : keyspaces [ 0 ] , Shard : "80-" },
339
343
},
340
344
}, {
341
345
name : "full keyspace with keyrange" ,
342
- clusters : []string {keyspace1 , fmt .Sprintf ("%s/60-80" , keyspace1 )},
346
+ clusters : []string {keyspaces [ 0 ] , fmt .Sprintf ("%s/60-80" , keyspaces [ 0 ] )},
343
347
expected : []* topo.KeyspaceShard {
344
- {Keyspace : keyspace1 , Shard : "-40" },
345
- {Keyspace : keyspace1 , Shard : "40-50" },
346
- {Keyspace : keyspace1 , Shard : "50-60" },
347
- {Keyspace : keyspace1 , Shard : "60-70" },
348
- {Keyspace : keyspace1 , Shard : "70-80" },
349
- {Keyspace : keyspace1 , Shard : "80-" },
348
+ {Keyspace : keyspaces [ 0 ] , Shard : "-40" },
349
+ {Keyspace : keyspaces [ 0 ] , Shard : "40-50" },
350
+ {Keyspace : keyspaces [ 0 ] , Shard : "50-60" },
351
+ {Keyspace : keyspaces [ 0 ] , Shard : "60-70" },
352
+ {Keyspace : keyspaces [ 0 ] , Shard : "70-80" },
353
+ {Keyspace : keyspaces [ 0 ] , Shard : "80-" },
350
354
},
351
355
}, {
352
356
name : "multi keyspace" ,
353
- clusters : []string {keyspace1 , fmt .Sprintf ("%s/1100-1300" , keyspace2 )},
357
+ clusters : []string {keyspaces [ 0 ] , fmt .Sprintf ("%s/1100-1300" , keyspaces [ 1 ] )},
354
358
expected : []* topo.KeyspaceShard {
355
- {Keyspace : keyspace2 , Shard : "1100-1200" },
356
- {Keyspace : keyspace2 , Shard : "1200-1300" },
357
- {Keyspace : keyspace1 , Shard : "-40" },
358
- {Keyspace : keyspace1 , Shard : "40-50" },
359
- {Keyspace : keyspace1 , Shard : "50-60" },
360
- {Keyspace : keyspace1 , Shard : "60-70" },
361
- {Keyspace : keyspace1 , Shard : "70-80" },
362
- {Keyspace : keyspace1 , Shard : "80-" },
359
+ {Keyspace : keyspaces [ 1 ] , Shard : "1100-1200" },
360
+ {Keyspace : keyspaces [ 1 ] , Shard : "1200-1300" },
361
+ {Keyspace : keyspaces [ 0 ] , Shard : "-40" },
362
+ {Keyspace : keyspaces [ 0 ] , Shard : "40-50" },
363
+ {Keyspace : keyspaces [ 0 ] , Shard : "50-60" },
364
+ {Keyspace : keyspaces [ 0 ] , Shard : "60-70" },
365
+ {Keyspace : keyspaces [ 0 ] , Shard : "70-80" },
366
+ {Keyspace : keyspaces [ 0 ] , Shard : "80-" },
363
367
},
364
368
}, {
365
369
name : "partial success with non-existent shard" ,
366
- clusters : []string {"test_keyspace3 /10-20" , fmt .Sprintf ("%s/1100-1300" , keyspace2 )},
370
+ clusters : []string {"non-existent /10-20" , fmt .Sprintf ("%s/1100-1300" , keyspaces [ 1 ] )},
367
371
expected : []* topo.KeyspaceShard {
368
- {Keyspace : keyspace2 , Shard : "1100-1200" },
369
- {Keyspace : keyspace2 , Shard : "1200-1300" },
372
+ {Keyspace : keyspaces [ 1 ] , Shard : "1100-1200" },
373
+ {Keyspace : keyspaces [ 1 ] , Shard : "1200-1300" },
370
374
},
371
375
}, {
372
376
name : "empty result" ,
373
- clusters : []string {"test_keyspace3 /10-20" },
377
+ clusters : []string {"non-existent /10-20" },
374
378
expected : nil ,
379
+ }, {
380
+ name : "single keyspace -" ,
381
+ clusters : []string {keyspaces [2 ]},
382
+ expected : []* topo.KeyspaceShard {
383
+ {Keyspace : keyspaces [2 ], Shard : "-" },
384
+ },
385
+ }, {
386
+ name : "single keyspace 0" ,
387
+ clusters : []string {keyspaces [3 ]},
388
+ expected : []* topo.KeyspaceShard {
389
+ {Keyspace : keyspaces [3 ], Shard : "0" },
390
+ },
375
391
},
376
392
}
377
393
0 commit comments