github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/storage/stores/tsdb/util_test.go (about)

     1  package tsdb
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/prometheus/common/model"
     9  	"github.com/prometheus/prometheus/model/labels"
    10  	"github.com/stretchr/testify/require"
    11  
    12  	"github.com/grafana/loki/pkg/storage/stores/tsdb/index"
    13  )
    14  
    15  type LoadableSeries struct {
    16  	Labels labels.Labels
    17  	Chunks index.ChunkMetas
    18  }
    19  
    20  func BuildIndex(t *testing.T, dir, tenant string, cases []LoadableSeries) *TSDBFile {
    21  	b := NewBuilder()
    22  
    23  	for _, s := range cases {
    24  		b.AddSeries(s.Labels, model.Fingerprint(s.Labels.Hash()), s.Chunks)
    25  	}
    26  
    27  	dst, err := b.Build(context.Background(), dir, func(from, through model.Time, checksum uint32) Identifier {
    28  		id := SingleTenantTSDBIdentifier{
    29  			TS:       time.Now(),
    30  			From:     from,
    31  			Through:  through,
    32  			Checksum: checksum,
    33  		}
    34  		return newPrefixedIdentifier(id, dir, dir)
    35  	})
    36  	require.Nil(t, err)
    37  
    38  	idx, err := NewShippableTSDBFile(dst, false)
    39  	require.Nil(t, err)
    40  	return idx
    41  }