github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/storage/stores/index/stats/stats_test.go (about) 1 package stats 2 3 import ( 4 "sync" 5 "testing" 6 7 "github.com/prometheus/common/model" 8 "github.com/stretchr/testify/require" 9 10 "github.com/grafana/loki/pkg/storage/stores/tsdb/index" 11 ) 12 13 func TestStatsBloom_Stream(t *testing.T) { 14 sb := BloomPool.Get() 15 var wg sync.WaitGroup 16 for i := 0; i < 40; i++ { 17 wg.Add(1) 18 go func(x int) { 19 sb.AddStream(model.Fingerprint(x % 2)) 20 wg.Done() 21 }(i) 22 } 23 wg.Wait() 24 25 require.Equal(t, uint64(2), sb.stats.Streams) 26 } 27 28 func TestStatsBloom_Chunks(t *testing.T) { 29 sb := BloomPool.Get() 30 var wg sync.WaitGroup 31 for i := 0; i < 10; i++ { 32 wg.Add(1) 33 go func(x int) { 34 sb.AddChunk(model.Fingerprint(x%2), index.ChunkMeta{ 35 Checksum: uint32(x) % 4, 36 KB: 1, 37 Entries: 1, 38 }) 39 wg.Done() 40 }(i) 41 } 42 wg.Wait() 43 44 require.Equal(t, 4, int(sb.stats.Chunks)) 45 require.Equal(t, 4<<10, int(sb.stats.Bytes)) 46 require.Equal(t, 4, int(sb.stats.Entries)) 47 }