github.com/sequix/cortex@v1.1.6/pkg/chunk/storage/caching_fixtures.go (about)

     1  package storage
     2  
     3  import (
     4  	"time"
     5  
     6  	"github.com/sequix/cortex/pkg/util/flagext"
     7  	"github.com/sequix/cortex/pkg/util/validation"
     8  
     9  	"github.com/sequix/cortex/pkg/chunk/cache"
    10  	"github.com/sequix/cortex/pkg/chunk/gcp"
    11  
    12  	"github.com/sequix/cortex/pkg/chunk"
    13  	"github.com/sequix/cortex/pkg/chunk/testutils"
    14  )
    15  
    16  type fixture struct {
    17  	fixture testutils.Fixture
    18  }
    19  
    20  func (f fixture) Name() string { return "caching-store" }
    21  func (f fixture) Clients() (chunk.IndexClient, chunk.ObjectClient, chunk.TableClient, chunk.SchemaConfig, error) {
    22  	limits, err := defaultLimits()
    23  	if err != nil {
    24  		return nil, nil, nil, chunk.SchemaConfig{}, err
    25  	}
    26  	indexClient, objectClient, tableClient, schemaConfig, err := f.fixture.Clients()
    27  	indexClient = newCachingIndexClient(indexClient, cache.NewFifoCache("index-fifo", cache.FifoCacheConfig{
    28  		Size:     500,
    29  		Validity: 5 * time.Minute,
    30  	}), 5*time.Minute, limits)
    31  	return indexClient, objectClient, tableClient, schemaConfig, err
    32  }
    33  func (f fixture) Teardown() error { return f.fixture.Teardown() }
    34  
    35  // Fixtures for unit testing the caching storage.
    36  var Fixtures = []testutils.Fixture{
    37  	fixture{gcp.Fixtures[0]},
    38  }
    39  
    40  func defaultLimits() (*validation.Overrides, error) {
    41  	var defaults validation.Limits
    42  	flagext.DefaultValues(&defaults)
    43  	defaults.CardinalityLimit = 5
    44  	return validation.NewOverrides(defaults)
    45  }