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

Function TestMerge

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

Source from the content-addressed store, hash-verified

71}
72
73func TestMerge(t *testing.T) {
74 now := time.Now().Unix()
75
76 firstRing := func() *Desc {
77 return &Desc{
78 Ingesters: map[string]InstanceDesc{
79 "Ing 1": {Addr: "addr1", Timestamp: now, State: ACTIVE, Tokens: []uint32{30, 40, 50}},
80 "Ing 2": {Addr: "addr2", Timestamp: now, State: JOINING, Tokens: []uint32{5, 10, 20, 100, 200}},
81 },
82 }
83 }
84
85 secondRing := func() *Desc {
86 return &Desc{
87 Ingesters: map[string]InstanceDesc{
88 "Ing 3": {Addr: "addr3", Timestamp: now + 5, State: ACTIVE, Tokens: []uint32{150, 250, 350}},
89 "Ing 2": {Addr: "addr2", Timestamp: now + 5, State: ACTIVE, Tokens: []uint32{5, 10, 20, 100, 200}},
90 },
91 }
92 }
93
94 thirdRing := func() *Desc {
95 return &Desc{
96 Ingesters: map[string]InstanceDesc{
97 "Ing 1": {Addr: "addr1", Timestamp: now + 10, State: LEAVING, Tokens: []uint32{30, 40, 50}},
98 "Ing 3": {Addr: "addr3", Timestamp: now + 10, State: ACTIVE, Tokens: []uint32{150, 250, 350}},
99 },
100 }
101 }
102
103 expectedFirstSecondMerge := func() *Desc {
104 return &Desc{
105 Ingesters: map[string]InstanceDesc{
106 "Ing 1": {Addr: "addr1", Timestamp: now, State: ACTIVE, Tokens: []uint32{30, 40, 50}},
107 "Ing 2": {Addr: "addr2", Timestamp: now + 5, State: ACTIVE, Tokens: []uint32{5, 10, 20, 100, 200}},
108 "Ing 3": {Addr: "addr3", Timestamp: now + 5, State: ACTIVE, Tokens: []uint32{150, 250, 350}},
109 },
110 }
111 }
112
113 expectedFirstSecondThirdMerge := func() *Desc {
114 return &Desc{
115 Ingesters: map[string]InstanceDesc{
116 "Ing 1": {Addr: "addr1", Timestamp: now + 10, State: LEAVING, Tokens: []uint32{30, 40, 50}},
117 "Ing 2": {Addr: "addr2", Timestamp: now + 5, State: ACTIVE, Tokens: []uint32{5, 10, 20, 100, 200}},
118 "Ing 3": {Addr: "addr3", Timestamp: now + 10, State: ACTIVE, Tokens: []uint32{150, 250, 350}},
119 },
120 }
121 }
122
123 fourthRing := func() *Desc {
124 return &Desc{
125 Ingesters: map[string]InstanceDesc{
126 "Ing 1": {Addr: "addr1", Timestamp: now + 10, State: LEFT, Tokens: []uint32{30, 40, 50}},
127 },
128 }
129 }
130

Callers

nothing calls this directly

Calls 2

mergeFunction · 0.85
EqualMethod · 0.45

Tested by

no test coverage detected