mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-29 20:32:09 -05:00
cache: Add concurrent cache test
This commit is contained in:
parent
fe132e1c3e
commit
b3c8056de2
1 changed files with 44 additions and 0 deletions
44
cache/partitioned_lazy_cache_test.go
vendored
44
cache/partitioned_lazy_cache_test.go
vendored
|
@ -15,6 +15,7 @@ package cache
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
@ -90,3 +91,46 @@ func TestNewPartitionedLazyCache(t *testing.T) {
|
||||||
assert.Error(err)
|
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()
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue