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  }