MCPcopy
hub / github.com/grafana/dskit / TestNewRingsServiceDiscovery

Function TestNewRingsServiceDiscovery

ring/client/ring_service_discovery_test.go:58–142  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

56}
57
58func TestNewRingsServiceDiscovery(t *testing.T) {
59 tests := map[string]struct {
60 rings []*mockReadRing
61 expectedAddrs []string
62 expectedErr error
63 }{
64 "no rings": {
65 rings: nil,
66 expectedAddrs: nil,
67 },
68 "single ring with multiple instances": {
69 rings: []*mockReadRing{
70 {mockedReplicationSet: ring.ReplicationSet{Instances: []ring.InstanceDesc{
71 {Addr: "1.1.1.1"},
72 {Addr: "2.2.2.2"},
73 }}},
74 },
75 expectedAddrs: []string{"1.1.1.1", "2.2.2.2"},
76 },
77 "multiple rings with disjoint instances": {
78 rings: []*mockReadRing{
79 {mockedReplicationSet: ring.ReplicationSet{Instances: []ring.InstanceDesc{
80 {Addr: "1.1.1.1"},
81 {Addr: "2.2.2.2"},
82 }}},
83 {mockedReplicationSet: ring.ReplicationSet{Instances: []ring.InstanceDesc{
84 {Addr: "3.3.3.3"},
85 }}},
86 },
87 expectedAddrs: []string{"1.1.1.1", "2.2.2.2", "3.3.3.3"},
88 },
89 "multiple rings with overlapping instances are deduplicated": {
90 rings: []*mockReadRing{
91 {mockedReplicationSet: ring.ReplicationSet{Instances: []ring.InstanceDesc{
92 {Addr: "1.1.1.1"},
93 {Addr: "2.2.2.2"},
94 }}},
95 {mockedReplicationSet: ring.ReplicationSet{Instances: []ring.InstanceDesc{
96 {Addr: "2.2.2.2"},
97 {Addr: "3.3.3.3"},
98 }}},
99 },
100 expectedAddrs: []string{"1.1.1.1", "2.2.2.2", "3.3.3.3"},
101 },
102 "duplicate instances within a single ring are deduplicated": {
103 rings: []*mockReadRing{
104 {mockedReplicationSet: ring.ReplicationSet{Instances: []ring.InstanceDesc{
105 {Addr: "1.1.1.1"},
106 {Addr: "1.1.1.1"},
107 }}},
108 },
109 expectedAddrs: []string{"1.1.1.1"},
110 },
111 "all rings are empty": {
112 rings: []*mockReadRing{
113 {mockedErr: ring.ErrEmptyRing},
114 {mockedErr: ring.ErrEmptyRing},
115 },

Callers

nothing calls this directly

Calls 3

NewRingsServiceDiscoveryFunction · 0.85
RunMethod · 0.80
EqualMethod · 0.45

Tested by

no test coverage detected