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 }