ref: 54bdcaacaedec178554e696f34647801bbe61362
parent: 1622510a5c651b59a79f64e9dc3cacd24832ec0b
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Mon Feb 17 04:24:15 EST 2020
Refactor a benchmark to make it runnable as test
--- a/hugolib/site_benchmark_new_test.go
+++ b/hugolib/site_benchmark_new_test.go
@@ -33,10 +33,70 @@
check func(s *sitesBuilder)
}
-func getBenchmarkSiteNewTestCases() []siteBenchmarkTestcase {+func getBenchmarkSiteDeepContent(b testing.TB) *sitesBuilder {+ pageContent := func(size int) string {+ return getBenchmarkTestDataPageContentForMarkdown(size, benchmarkMarkdownSnippets)
+ }
- const markdownSnippets = `
+ sb := newTestSitesBuilder(b).WithConfigFile("toml", `+baseURL = "https://example.com"
+[languages]
+[languages.en]
+weight=1
+contentDir="content/en"
+[languages.fr]
+weight=2
+contentDir="content/fr"
+[languages.no]
+weight=3
+contentDir="content/no"
+[languages.sv]
+weight=4
+contentDir="content/sv"
+
+`)
+
+ createContent := func(dir, name string) {+ sb.WithContent(filepath.Join("content", dir, name), pageContent(1))+ }
+
+ createBundledFiles := func(dir string) {+ sb.WithContent(filepath.Join("content", dir, "data.json"), `{ "hello": "world" }`)+ for i := 1; i <= 3; i++ {+ sb.WithContent(filepath.Join("content", dir, fmt.Sprintf("page%d.md", i)), pageContent(1))+ }
+ }
+
+ for _, lang := range []string{"en", "fr", "no", "sv"} {+ for level := 1; level <= 5; level++ {+ sectionDir := path.Join(lang, strings.Repeat("section/", level))+ createContent(sectionDir, "_index.md")
+ createBundledFiles(sectionDir)
+ for i := 1; i <= 3; i++ {+ leafBundleDir := path.Join(sectionDir, fmt.Sprintf("bundle%d", i))+ createContent(leafBundleDir, "index.md")
+ createBundledFiles(path.Join(leafBundleDir, "assets1"))
+ createBundledFiles(path.Join(leafBundleDir, "assets1", "assets2"))
+ }
+ }
+ }
+
+ return sb
+}
+
+func getBenchmarkTestDataPageContentForMarkdown(size int, markdown string) string {+ return `---
+title: "My Page"
+---
+
+My page content.
+
+` + strings.Repeat(markdown, size)
+}
+
+const benchmarkMarkdownSnippets = `
+
## Links
@@ -49,18 +109,10 @@
See my [About](/about/) page for details.
`
- pageContentForMarkdown := func(size int, markdown string) string {- return `---
-title: "My Page"
----
+func getBenchmarkSiteNewTestCases() []siteBenchmarkTestcase {-My page content.
-
-` + strings.Repeat(markdown, size)
- }
-
pageContent := func(size int) string {- return pageContentForMarkdown(size, markdownSnippets)
+ return getBenchmarkTestDataPageContentForMarkdown(size, benchmarkMarkdownSnippets)
}
config := `
@@ -142,52 +194,7 @@
},
{"Deep content tree", func(b testing.TB) *sitesBuilder {-
- sb := newTestSitesBuilder(b).WithConfigFile("toml", `-baseURL = "https://example.com"
-
-[languages]
-[languages.en]
-weight=1
-contentDir="content/en"
-[languages.fr]
-weight=2
-contentDir="content/fr"
-[languages.no]
-weight=3
-contentDir="content/no"
-[languages.sv]
-weight=4
-contentDir="content/sv"
-
-`)
-
- createContent := func(dir, name string) {- sb.WithContent(filepath.Join("content", dir, name), pageContent(1))- }
-
- createBundledFiles := func(dir string) {- sb.WithContent(filepath.Join("content", dir, "data.json"), `{ "hello": "world" }`)- for i := 1; i <= 3; i++ {- sb.WithContent(filepath.Join("content", dir, fmt.Sprintf("page%d.md", i)), pageContent(1))- }
- }
-
- for _, lang := range []string{"en", "fr", "no", "sv"} {- for level := 1; level <= 5; level++ {- sectionDir := path.Join(lang, strings.Repeat("section/", level))- createContent(sectionDir, "_index.md")
- createBundledFiles(sectionDir)
- for i := 1; i <= 3; i++ {- leafBundleDir := path.Join(sectionDir, fmt.Sprintf("bundle%d", i))- createContent(leafBundleDir, "index.md")
- createBundledFiles(path.Join(leafBundleDir, "assets1"))
- createBundledFiles(path.Join(leafBundleDir, "assets1", "assets2"))
- }
- }
- }
-
- return sb
+ return getBenchmarkSiteDeepContent(b)
},
func(s *sitesBuilder) { s.CheckExists("public/blog/mybundle/index.html")--
⑨