test(chunkenc): appending histograms with empty buckets

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
This commit is contained in:
György Krajcsovits 2025-07-18 16:03:27 +02:00
parent 46acc974c0
commit 1ed7d20951
No known key found for this signature in database
GPG Key ID: 47A8F9CE80FD7C7F
1 changed files with 38 additions and 0 deletions

View File

@ -1420,3 +1420,41 @@ func assertFirstFloatHistogramSampleHint(t *testing.T, chunk Chunk, expected his
_, v := it.AtFloatHistogram(nil)
require.Equal(t, expected, v.CounterResetHint)
}
func TestFloatHistogramEmptyBuckets(t *testing.T) {
h1 := &histogram.FloatHistogram{
PositiveSpans: []histogram.Span{
{Offset: -19, Length: 2},
{Offset: 1, Length: 2},
},
PositiveBuckets: []float64{0, 0, 0, 0},
}
c := NewFloatHistogramChunk()
app, err := c.Appender()
require.NoError(t, err)
_, _, _, err = app.AppendFloatHistogram(nil, 1, h1, false)
require.NoError(t, err)
h2 := &histogram.FloatHistogram{
PositiveSpans: []histogram.Span{
{Offset: -19, Length: 1},
{Offset: 4, Length: 1},
{Offset: 3, Length: 1},
},
PositiveBuckets: []float64{0, 0, 0},
}
newC, recoded, _, err := app.AppendFloatHistogram(nil, 2, h2, false)
require.NoError(t, err)
require.True(t, recoded)
require.NotNil(t, newC)
it := newC.Iterator(nil)
require.Equal(t, ValFloatHistogram, it.Next())
_, h := it.AtFloatHistogram(nil)
require.NoError(t, h.Validate())
require.Equal(t, ValFloatHistogram, it.Next())
_, h = it.AtFloatHistogram(nil)
require.NoError(t, h.Validate())
require.Equal(t, ValNone, it.Next())
require.NoError(t, it.Err())
}