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

Function TestMergeLeft

ring/merge_test.go:247–372  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

245}
246
247func TestMergeLeft(t *testing.T) {
248 now := time.Now().Unix()
249
250 firstRing := func() *Desc {
251 return &Desc{
252 Ingesters: map[string]InstanceDesc{
253 "Ing 1": {Addr: "addr1", Timestamp: now, State: ACTIVE, Tokens: []uint32{30, 40, 50}},
254 "Ing 2": {Addr: "addr2", Timestamp: now, State: JOINING, Tokens: []uint32{5, 10, 20, 100, 200}},
255 },
256 }
257 }
258
259 // Not normalised because it contains duplicate and unsorted tokens.
260 firstRingNotNormalised := func() *Desc {
261 return &Desc{
262 Ingesters: map[string]InstanceDesc{
263 "Ing 1": {Addr: "addr1", Timestamp: now, State: ACTIVE, Tokens: []uint32{30, 40, 40, 50}},
264 "Ing 2": {Addr: "addr2", Timestamp: now, State: JOINING, Tokens: []uint32{20, 10, 5, 10, 20, 100, 200, 100}},
265 },
266 }
267 }
268
269 secondRing := func() *Desc {
270 return &Desc{
271 Ingesters: map[string]InstanceDesc{
272 "Ing 2": {Addr: "addr2", Timestamp: now, State: LEFT},
273 },
274 }
275 }
276
277 // Not normalised because it contains a LEFT ingester with tokens.
278 secondRingNotNormalised := func() *Desc {
279 return &Desc{
280 Ingesters: map[string]InstanceDesc{
281 "Ing 2": {Addr: "addr2", Timestamp: now, State: LEFT, Tokens: []uint32{5, 10, 20, 100, 200}},
282 },
283 }
284 }
285
286 expectedFirstSecondMerge := func() *Desc {
287 return &Desc{
288 Ingesters: map[string]InstanceDesc{
289 "Ing 1": {Addr: "addr1", Timestamp: now, State: ACTIVE, Tokens: []uint32{30, 40, 50}},
290 "Ing 2": {Addr: "addr2", Timestamp: now, State: LEFT},
291 },
292 }
293 }
294
295 thirdRing := func() *Desc {
296 return &Desc{
297 Ingesters: map[string]InstanceDesc{
298 "Ing 1": {Addr: "addr1", Timestamp: now + 10, State: LEAVING, Tokens: []uint32{30, 40, 50}},
299 "Ing 2": {Addr: "addr2", Timestamp: now, State: JOINING, Tokens: []uint32{5, 10, 20, 100, 200}}, // from firstRing
300 },
301 }
302 }
303
304 expectedFirstSecondThirdMerge := func() *Desc {

Callers

nothing calls this directly

Calls 2

mergeFunction · 0.85
EqualMethod · 0.45

Tested by

no test coverage detected