aboutsummaryrefslogtreecommitdiff
path: root/plugin/pkg/cache/cache_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/pkg/cache/cache_test.go')
-rw-r--r--plugin/pkg/cache/cache_test.go25
1 files changed, 24 insertions, 1 deletions
diff --git a/plugin/pkg/cache/cache_test.go b/plugin/pkg/cache/cache_test.go
index 0c56bb9b3..2714967a6 100644
--- a/plugin/pkg/cache/cache_test.go
+++ b/plugin/pkg/cache/cache_test.go
@@ -3,12 +3,23 @@ package cache
import "testing"
func TestCacheAddAndGet(t *testing.T) {
- c := New(4)
+ const N = shardSize * 4
+ c := New(N)
c.Add(1, 1)
if _, found := c.Get(1); !found {
t.Fatal("Failed to find inserted record")
}
+
+ for i := 0; i < N; i++ {
+ c.Add(uint64(i), 1)
+ }
+ for i := 0; i < N; i++ {
+ c.Add(uint64(i), 1)
+ if c.Len() != N {
+ t.Fatal("A item was unnecessarily evicted from the cache")
+ }
+ }
}
func TestCacheLen(t *testing.T) {
@@ -30,6 +41,18 @@ func TestCacheLen(t *testing.T) {
}
}
+func TestCacheSharding(t *testing.T) {
+ c := New(shardSize)
+ for i := 0; i < shardSize*2; i++ {
+ c.Add(uint64(i), 1)
+ }
+ for i, s := range c.shards {
+ if s.Len() == 0 {
+ t.Errorf("Failed to populate shard: %d", i)
+ }
+ }
+}
+
func BenchmarkCache(b *testing.B) {
b.ReportAllocs()