From a693dd19f244f000da40bcbac85041846b78cfc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gy=C3=B6rgy=20Krajcsovits?= Date: Fri, 30 Aug 2024 16:44:36 +0200 Subject: [PATCH] Fix: chunkenc.MockSeriesIterator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Starts its index from 0 , but users call Next() before first sample so it needs to start from -1 Signed-off-by: György Krajcsovits --- storage/interface_test.go | 37 +++++++++++++++++++++++++++++++++++++ tsdb/chunkenc/chunk.go | 2 +- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 storage/interface_test.go diff --git a/storage/interface_test.go b/storage/interface_test.go new file mode 100644 index 000000000..ba6072173 --- /dev/null +++ b/storage/interface_test.go @@ -0,0 +1,37 @@ +// Copyright 2024 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package storage_test + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "github.com/prometheus/prometheus/storage" + "github.com/prometheus/prometheus/tsdb/chunkenc" +) + +func TestMockSeries(t *testing.T) { + s := storage.MockSeries([]int64{1, 2, 3}, []float64{1, 2, 3}, []string{"__name__", "foo"}) + it := s.Iterator(nil) + ts := []int64{} + vs := []float64{} + for it.Next() == chunkenc.ValFloat { + t, v := it.At() + ts = append(ts, t) + vs = append(vs, v) + } + require.Equal(t, []int64{1, 2, 3}, ts) + require.Equal(t, []float64{1, 2, 3}, vs) +} diff --git a/tsdb/chunkenc/chunk.go b/tsdb/chunkenc/chunk.go index 1421f3b39..7082f34c3 100644 --- a/tsdb/chunkenc/chunk.go +++ b/tsdb/chunkenc/chunk.go @@ -213,7 +213,7 @@ func MockSeriesIterator(timestamps []int64, values []float64) Iterator { return &mockSeriesIterator{ timeStamps: timestamps, values: values, - currIndex: 0, + currIndex: -1, } }