mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
Add benchmark for content edits
This commit is contained in:
parent
56d0b65887
commit
1622510a5c
1 changed files with 61 additions and 17 deletions
|
@ -22,6 +22,8 @@ import (
|
|||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/gohugoio/hugo/resources/page"
|
||||
|
||||
qt "github.com/frankban/quicktest"
|
||||
)
|
||||
|
||||
|
@ -370,26 +372,68 @@ func TestBenchmarkSiteNew(b *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
// TODO(bep) eventually remove the old (too complicated setup).
|
||||
func BenchmarkSiteNew(b *testing.B) {
|
||||
rnd := rand.New(rand.NewSource(32))
|
||||
benchmarks := getBenchmarkSiteNewTestCases()
|
||||
|
||||
for _, edit := range []bool{true, false} {
|
||||
for _, bm := range benchmarks {
|
||||
b.Run(bm.name, func(b *testing.B) {
|
||||
name := bm.name
|
||||
if edit {
|
||||
name += "/Edit"
|
||||
}
|
||||
b.Run(name, func(b *testing.B) {
|
||||
sites := make([]*sitesBuilder, b.N)
|
||||
for i := 0; i < b.N; i++ {
|
||||
sites[i] = bm.create(b)
|
||||
if edit {
|
||||
sites[i].Running()
|
||||
}
|
||||
}
|
||||
|
||||
b.ResetTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
if edit {
|
||||
b.StopTimer()
|
||||
}
|
||||
s := sites[i]
|
||||
err := s.BuildE(BuildCfg{})
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
bm.check(s)
|
||||
|
||||
if edit {
|
||||
if edit {
|
||||
b.StartTimer()
|
||||
}
|
||||
// Edit a random page in a random language.
|
||||
pages := s.H.Sites[rnd.Intn(len(s.H.Sites))].Pages()
|
||||
var p page.Page
|
||||
count := 0
|
||||
for {
|
||||
count++
|
||||
if count > 100 {
|
||||
panic("infinite loop")
|
||||
}
|
||||
p = pages[rnd.Intn(len(pages))]
|
||||
if !p.File().IsZero() {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
s.EditFiles(p.File().Filename(), fmt.Sprintf(`---
|
||||
title: %s
|
||||
---
|
||||
|
||||
Edited!!`, p.Title()))
|
||||
|
||||
err := s.BuildE(BuildCfg{})
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue