mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-25 22:00:58 +02:00
Fix some change detection issues on server reloads
* Fix change detection when .GetPage/site.GetPage is used from shortcode * Fix stale content for GetPage results with short name lookups on server reloads Fixes #7623 Fixes #7624 Fixes #7625
This commit is contained in:
@@ -14,6 +14,9 @@
|
||||
package identity
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"strconv"
|
||||
"testing"
|
||||
|
||||
qt "github.com/frankban/quicktest"
|
||||
@@ -29,6 +32,54 @@ func TestIdentityManager(t *testing.T) {
|
||||
c.Assert(im.Search(testIdentity{name: "notfound"}), qt.Equals, nil)
|
||||
}
|
||||
|
||||
func BenchmarkIdentityManager(b *testing.B) {
|
||||
|
||||
createIds := func(num int) []Identity {
|
||||
ids := make([]Identity, num)
|
||||
for i := 0; i < num; i++ {
|
||||
ids[i] = testIdentity{name: fmt.Sprintf("id%d", i)}
|
||||
}
|
||||
return ids
|
||||
|
||||
}
|
||||
|
||||
b.Run("Add", func(b *testing.B) {
|
||||
c := qt.New(b)
|
||||
b.StopTimer()
|
||||
ids := createIds(b.N)
|
||||
im := NewManager(testIdentity{"first"})
|
||||
b.StartTimer()
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
im.Add(ids[i])
|
||||
}
|
||||
|
||||
b.StopTimer()
|
||||
c.Assert(im.GetIdentities(), qt.HasLen, b.N+1)
|
||||
})
|
||||
|
||||
b.Run("Search", func(b *testing.B) {
|
||||
c := qt.New(b)
|
||||
b.StopTimer()
|
||||
ids := createIds(b.N)
|
||||
im := NewManager(testIdentity{"first"})
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
im.Add(ids[i])
|
||||
}
|
||||
|
||||
b.StartTimer()
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
name := "id" + strconv.Itoa(rand.Intn(b.N))
|
||||
id := im.Search(testIdentity{name: name})
|
||||
c.Assert(id.GetIdentity().Name(), qt.Equals, name)
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
type testIdentity struct {
|
||||
name string
|
||||
}
|
||||
|
Reference in New Issue
Block a user