Skip to content

Commit

Permalink
cache: Add concurrent cache test
Browse files Browse the repository at this point in the history
  • Loading branch information
bep committed Jun 28, 2017
1 parent fe132e1 commit b3c8056
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions cache/partitioned_lazy_cache_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ package cache

import (
"errors"
"sync"
"testing"

"github.com/stretchr/testify/require"
Expand Down Expand Up @@ -90,3 +91,46 @@ func TestNewPartitionedLazyCache(t *testing.T) {
assert.Error(err)

}

func TestConcurrentPartitionedLazyCache(t *testing.T) {
t.Parallel()

assert := require.New(t)

var wg sync.WaitGroup

p1 := Partition{
Key: "p1",
Load: func() (map[string]interface{}, error) {
return map[string]interface{}{
"p1_1": "p1v1",
"p1_2": "p1v2",
"p1_nil": nil,
}, nil
},
}

p2 := Partition{
Key: "p2",
Load: func() (map[string]interface{}, error) {
return map[string]interface{}{
"p2_1": "p2v1",
"p2_2": "p2v2",
"p2_3": "p2v3",
}, nil
},
}

cache := NewPartitionedLazyCache(p1, p2)

for j := 0; j < 100; j++ {
wg.Add(1)
go func() {
defer wg.Done()
v, err := cache.Get("p1", "p1_1")
assert.NoError(err)
assert.Equal("p1v1", v)
}()
}
wg.Wait()
}

0 comments on commit b3c8056

Please sign in to comment.