diff --git a/markup/goldmark/integration_test.go b/markup/goldmark/integration_test.go index 387d7be66..fd90a6824 100644 --- a/markup/goldmark/integration_test.go +++ b/markup/goldmark/integration_test.go @@ -14,6 +14,7 @@ package goldmark_test import ( + "fmt" "testing" "github.com/gohugoio/hugo/hugolib" @@ -59,3 +60,57 @@ foo
`) } + +func BenchmarkSiteWithRenderHooks(b *testing.B) { + files := ` +-- config.toml -- +-- layouts/_default/_markup/render-heading.html -- + + {{ .Text | safeHTML }} + # + +-- layouts/_default/_markup/render-link.html -- +{{ .Text | safeHTML }} +-- layouts/_default/single.html -- +{{ .Content }} +` + + content := ` + +## Hello1 [Test](https://example.com) + +A. + +## Hello2 [Test](https://example.com) + +B. + +## Hello3 [Test](https://example.com) + +C. + +## Hello3 [Test](https://example.com) + +D. +` + + for i := 1; i < 100; i++ { + files += fmt.Sprintf("\n-- content/posts/p%d.md --\n"+content, i+1) + } + + cfg := hugolib.IntegrationTestConfig{ + T: b, + TxtarString: files, + } + builders := make([]*hugolib.IntegrationTestBuilder, b.N) + + for i := range builders { + builders[i] = hugolib.NewIntegrationTestBuilder(cfg) + } + + b.ResetTimer() + + for i := 0; i < b.N; i++ { + builders[i].Build() + } +}