github.com/sequix/cortex@v1.1.6/pkg/chunk/cache/tiered_test.go (about) 1 package cache_test 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/sequix/cortex/pkg/chunk/cache" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestTieredSimple(t *testing.T) { 12 for i := 1; i < 10; i++ { 13 caches := []cache.Cache{} 14 for j := 0; j <= i; j++ { 15 caches = append(caches, cache.NewMockCache()) 16 } 17 cache := cache.NewTiered(caches) 18 testCache(t, cache) 19 } 20 } 21 22 func TestTiered(t *testing.T) { 23 level1, level2 := cache.NewMockCache(), cache.NewMockCache() 24 cache := cache.NewTiered([]cache.Cache{level1, level2}) 25 26 level1.Store(context.Background(), []string{"key1"}, [][]byte{[]byte("hello")}) 27 level2.Store(context.Background(), []string{"key2"}, [][]byte{[]byte("world")}) 28 29 keys, bufs, missing := cache.Fetch(context.Background(), []string{"key1", "key2", "key3"}) 30 require.Equal(t, []string{"key1", "key2"}, keys) 31 require.Equal(t, [][]byte{[]byte("hello"), []byte("world")}, bufs) 32 require.Equal(t, []string{"key3"}, missing) 33 }