MCPcopy
hub / github.com/prometheus/prometheus / TestSampleRingMixed

Function TestSampleRingMixed

storage/buffer_test.go:110–160  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

108}
109
110func TestSampleRingMixed(t *testing.T) {
111 h1 := tsdbutil.GenerateTestHistogram(1)
112 h2 := tsdbutil.GenerateTestHistogram(2)
113
114 // With ValNone as the preferred type, nothing should be initialized.
115 r := newSampleRing(10, 2, chunkenc.ValNone)
116 require.Empty(t, r.fBuf)
117 require.Empty(t, r.hBuf)
118 require.Empty(t, r.fhBuf)
119 require.Empty(t, r.iBuf)
120
121 // But then mixed adds should work as expected.
122 r.addF(fSample{st: 10, t: 11, f: 3.14})
123 r.addH(hSample{st: 20, t: 21, h: h1})
124
125 it := r.iterator()
126
127 require.Equal(t, chunkenc.ValFloat, it.Next())
128 ts, f := it.At()
129 require.Equal(t, int64(11), ts)
130 require.Equal(t, 3.14, f)
131 require.Equal(t, int64(10), it.AtST())
132 require.Equal(t, chunkenc.ValHistogram, it.Next())
133 var h *histogram.Histogram
134 ts, h = it.AtHistogram()
135 require.Equal(t, int64(21), ts)
136 require.Equal(t, h1, h)
137 require.Equal(t, int64(20), it.AtST())
138 require.Equal(t, chunkenc.ValNone, it.Next())
139
140 r.reset()
141 it = r.iterator()
142 require.Equal(t, chunkenc.ValNone, it.Next())
143
144 r.addF(fSample{st: 30, t: 31, f: 4.2})
145 r.addH(hSample{st: 40, t: 41, h: h2})
146
147 it = r.iterator()
148
149 require.Equal(t, chunkenc.ValFloat, it.Next())
150 ts, f = it.At()
151 require.Equal(t, int64(31), ts)
152 require.Equal(t, 4.2, f)
153 require.Equal(t, int64(30), it.AtST())
154 require.Equal(t, chunkenc.ValHistogram, it.Next())
155 ts, h = it.AtHistogram()
156 require.Equal(t, int64(41), ts)
157 require.Equal(t, h2, h)
158 require.Equal(t, int64(40), it.AtST())
159 require.Equal(t, chunkenc.ValNone, it.Next())
160}
161
162func TestSampleRingAtFloatHistogram(t *testing.T) {
163 fh1 := tsdbutil.GenerateTestFloatHistogram(1)

Callers

nothing calls this directly

Calls 10

GenerateTestHistogramFunction · 0.92
newSampleRingFunction · 0.85
addFMethod · 0.80
addHMethod · 0.80
NextMethod · 0.65
AtMethod · 0.65
AtSTMethod · 0.65
AtHistogramMethod · 0.65
iteratorMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…