]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Add a shortcode benchmark
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 29 May 2022 13:14:32 +0000 (15:14 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 29 May 2022 13:21:08 +0000 (15:21 +0200)
hugolib/shortcode_test.go

index e9af2371f06bd65373dddd30c4cc96e5d937e2cd..7926a820392f0eb2d0fde9997e1fa348fe470c1a 100644 (file)
@@ -297,6 +297,58 @@ func BenchmarkReplaceShortcodeTokens(b *testing.B) {
        }
 }
 
+func BenchmarkShortcodesInSite(b *testing.B) {
+       files := `
+-- config.toml --
+-- layouts/shortcodes/mark1.md --
+{{ .Inner }}
+-- layouts/shortcodes/mark2.md --
+1. Item Mark2 1
+1. Item Mark2 2
+   1. Item Mark2 2-1
+1. Item Mark2 3
+-- layouts/_default/single.html --
+{{ .Content }}
+`
+
+       content := `
+---
+title: "Markdown Shortcode"
+---
+
+## List
+
+1. List 1
+       {{§ mark1 §}}
+       1. Item Mark1 1
+       1. Item Mark1 2
+       {{§ mark2 §}}
+       {{§ /mark1 §}}
+
+`
+
+       for i := 1; i < 100; i++ {
+               files += fmt.Sprintf("\n-- content/posts/p%d.md --\n"+content, i+1)
+       }
+       files = strings.ReplaceAll(files, "§", "%")
+
+       cfg := IntegrationTestConfig{
+               T:           b,
+               TxtarString: files,
+       }
+       builders := make([]*IntegrationTestBuilder, b.N)
+
+       for i := range builders {
+               builders[i] = NewIntegrationTestBuilder(cfg)
+       }
+
+       b.ResetTimer()
+
+       for i := 0; i < b.N; i++ {
+               builders[i].Build()
+       }
+}
+
 func TestReplaceShortcodeTokens(t *testing.T) {
        t.Parallel()
        for i, this := range []struct {