MCPcopy Create free account
hub / github.com/cortexproject/cortex / TestDesc_RingsCompare

Function TestDesc_RingsCompare

pkg/ring/model_test.go:372–470  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

370}
371
372func TestDesc_RingsCompare(t *testing.T) {
373 tests := map[string]struct {
374 r1, r2 *Desc
375 expected CompareResult
376 }{
377 "nil rings": {
378 r1: nil,
379 r2: nil,
380 expected: Equal,
381 },
382 "one nil, one empty ring": {
383 r1: nil,
384 r2: &Desc{Ingesters: map[string]InstanceDesc{}},
385 expected: Equal,
386 },
387 "two empty rings": {
388 r1: &Desc{Ingesters: map[string]InstanceDesc{}},
389 r2: &Desc{Ingesters: map[string]InstanceDesc{}},
390 expected: Equal,
391 },
392 "same single instance": {
393 r1: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1"}}},
394 r2: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1"}}},
395 expected: Equal,
396 },
397 "same number of instances, from active to readOnly": {
398 r1: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", State: ACTIVE}}},
399 r2: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", State: READONLY}}},
400 expected: EqualButReadOnly,
401 },
402 "same number of instances, from readOnly to active": {
403 r1: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", State: READONLY}}},
404 r2: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", State: ACTIVE}}},
405 expected: EqualButReadOnly,
406 },
407 "same number of instances, prioritize readOnly than timestamp changes": {
408 r1: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", State: ACTIVE, Timestamp: 123456}}},
409 r2: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", State: READONLY, Timestamp: 789012}}},
410 expected: EqualButReadOnly,
411 },
412 "same single instance, different timestamp": {
413 r1: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", Timestamp: 123456}}},
414 r2: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", Timestamp: 789012}}},
415 expected: EqualButStatesAndTimestamps,
416 },
417 "same single instance, different state": {
418 r1: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", State: ACTIVE}}},
419 r2: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", State: JOINING}}},
420 expected: EqualButStatesAndTimestamps,
421 },
422 "same single instance, different registered timestamp": {
423 r1: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", State: ACTIVE, RegisteredTimestamp: 1}}},
424 r2: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", State: ACTIVE, RegisteredTimestamp: 2}}},
425 expected: Different,
426 },
427 "instance in different zone": {
428 r1: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", Zone: "one"}}},
429 r2: &Desc{Ingesters: map[string]InstanceDesc{"ing1": {Addr: "addr1", Zone: "two"}}},

Callers

nothing calls this directly

Calls 3

RingCompareMethod · 0.80
RunMethod · 0.65
EqualMethod · 0.65

Tested by

no test coverage detected