Add a TOML front matter benchmark
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 27 Jul 2021 17:24:19 +0000 (19:24 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 27 Jul 2021 17:27:54 +0000 (19:27 +0200)
hugolib/site_benchmark_new_test.go

index 228dbeb5d1de26bfa4176601d3200403af9ef1a7..ea3f223dcef0db38c173d8ea21d88eff89e69088 100644 (file)
@@ -35,7 +35,7 @@ type siteBenchmarkTestcase struct {
 
 func getBenchmarkSiteDeepContent(b testing.TB) *sitesBuilder {
        pageContent := func(size int) string {
-               return getBenchmarkTestDataPageContentForMarkdown(size, "", benchmarkMarkdownSnippets)
+               return getBenchmarkTestDataPageContentForMarkdown(size, false, "", benchmarkMarkdownSnippets)
        }
 
        sb := newTestSitesBuilder(b).WithConfigFile("toml", `
@@ -85,7 +85,7 @@ contentDir="content/sv"
        return sb
 }
 
-func getBenchmarkTestDataPageContentForMarkdown(size int, category, markdown string) string {
+func getBenchmarkTestDataPageContentForMarkdown(size int, toml bool, category, markdown string) string {
        base := `---
 title: "My Page"
 %s
@@ -93,10 +93,23 @@ title: "My Page"
 
 My page content.
 `
+       if toml {
+               base = `+++
+title="My Page"
+%s
++++
+
+My page content.
+`
+
+       }
 
        var categoryKey string
        if category != "" {
                categoryKey = fmt.Sprintf("categories: [%s]", category)
+               if toml {
+                       categoryKey = fmt.Sprintf("categories=[%s]", category)
+               }
        }
        base = fmt.Sprintf(base, categoryKey)
 
@@ -119,11 +132,11 @@ See my [About](/about/) page for details.
 
 func getBenchmarkSiteNewTestCases() []siteBenchmarkTestcase {
        pageContentWithCategory := func(size int, category string) string {
-               return getBenchmarkTestDataPageContentForMarkdown(size, category, benchmarkMarkdownSnippets)
+               return getBenchmarkTestDataPageContentForMarkdown(size, false, category, benchmarkMarkdownSnippets)
        }
 
        pageContent := func(size int) string {
-               return getBenchmarkTestDataPageContentForMarkdown(size, "", benchmarkMarkdownSnippets)
+               return getBenchmarkTestDataPageContentForMarkdown(size, false, "", benchmarkMarkdownSnippets)
        }
 
        config := `
@@ -217,6 +230,20 @@ canonifyURLs = true
                                s.Assert(len(s.H.Sites[0].RegularPages()), qt.Equals, 30)
                        },
                },
+               {
+                       "TOML front matter", func(b testing.TB) *sitesBuilder {
+                               sb := newTestSitesBuilder(b).WithConfigFile("toml", config)
+                               for i := 1; i <= 200; i++ {
+                                       content := getBenchmarkTestDataPageContentForMarkdown(1, true, "\"a\", \"b\", \"c\"", benchmarkMarkdownSnippets)
+                                       sb.WithContent(fmt.Sprintf("content/p%d.md", i), content)
+                               }
+
+                               return sb
+                       },
+                       func(s *sitesBuilder) {
+
+                       },
+               },
                {
                        "Many HTML templates", func(b testing.TB) *sitesBuilder {
                                pageTemplateTemplate := `