Add some cagegories to the site collections benchmarks
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 18 Feb 2020 17:52:35 +0000 (18:52 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 18 Feb 2020 17:52:35 +0000 (18:52 +0100)
hugolib/site_benchmark_new_test.go

index a97c0808c81ff08f90142a93e42328f19dd6d2a1..2e3842d3877db41cb8d928e4757679ac6e207015 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, "", benchmarkMarkdownSnippets)
        }
 
        sb := newTestSitesBuilder(b).WithConfigFile("toml", `
@@ -85,14 +85,22 @@ contentDir="content/sv"
        return sb
 }
 
-func getBenchmarkTestDataPageContentForMarkdown(size int, markdown string) string {
-       return `---
+func getBenchmarkTestDataPageContentForMarkdown(size int, category, markdown string) string {
+       base := `---
 title: "My Page"
+%s
 ---
 
 My page content.
+`
+
+       var categoryKey string
+       if category != "" {
+               categoryKey = fmt.Sprintf("categories: [%s]", category)
+       }
+       base = fmt.Sprintf(base, categoryKey)
 
-` + strings.Repeat(markdown, size)
+       return base + strings.Repeat(markdown, size)
 }
 
 const benchmarkMarkdownSnippets = `
@@ -111,8 +119,12 @@ See my [About](/about/) page for details.
 
 func getBenchmarkSiteNewTestCases() []siteBenchmarkTestcase {
 
+       pageContentWithCategory := func(size int, category string) string {
+               return getBenchmarkTestDataPageContentForMarkdown(size, category, benchmarkMarkdownSnippets)
+       }
+
        pageContent := func(size int) string {
-               return getBenchmarkTestDataPageContentForMarkdown(size, benchmarkMarkdownSnippets)
+               return getBenchmarkTestDataPageContentForMarkdown(size, "", benchmarkMarkdownSnippets)
        }
 
        config := `
@@ -315,12 +327,22 @@ contentDir="content/sv"
                        
 `)
 
-                       sb.WithTemplatesAdded("index.html", pageTemplateTemplate)
-                       sb.WithTemplatesAdded("_default/single.html", pageTemplateTemplate)
-                       sb.WithTemplatesAdded("_default/list.html", pageTemplateTemplate)
+                       sb.WithTemplates("index.html", pageTemplateTemplate)
+                       sb.WithTemplates("_default/single.html", pageTemplateTemplate)
+                       sb.WithTemplates("_default/list.html", pageTemplateTemplate)
+
+                       r := rand.New(rand.NewSource(99))
 
                        createContent := func(dir, name string) {
-                               sb.WithContent(filepath.Join("content", dir, name), pageContent(1))
+                               var content string
+                               if strings.Contains(name, "_index") {
+                                       content = pageContent(1)
+
+                               } else {
+                                       content = pageContentWithCategory(1, fmt.Sprintf("category%d", r.Intn(5)+1))
+                               }
+
+                               sb.WithContent(filepath.Join("content", dir, name), content)
                        }
 
                        createBundledFiles := func(dir string) {
@@ -330,8 +352,6 @@ contentDir="content/sv"
                                }
                        }
 
-                       r := rand.New(rand.NewSource(99))
-
                        for _, lang := range []string{"en", "fr", "no", "sv"} {
                                for level := 1; level <= r.Intn(5)+1; level++ {
                                        sectionDir := path.Join(lang, strings.Repeat("section/", level))