URI: 
       Refactor a benchmark to make it runnable as test - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit 54bdcaacaedec178554e696f34647801bbe61362
   DIR parent 1622510a5c651b59a79f64e9dc3cacd24832ec0b
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Mon, 17 Feb 2020 09:24:15 +0100
       
       Refactor a benchmark to make it runnable as test
       
       Diffstat:
         M hugolib/site_benchmark_new_test.go  |     123 ++++++++++++++++---------------
       
       1 file changed, 65 insertions(+), 58 deletions(-)
       ---
   DIR diff --git a/hugolib/site_benchmark_new_test.go b/hugolib/site_benchmark_new_test.go
       @@ -33,9 +33,69 @@ type siteBenchmarkTestcase struct {
                check  func(s *sitesBuilder)
        }
        
       -func getBenchmarkSiteNewTestCases() []siteBenchmarkTestcase {
       +func getBenchmarkSiteDeepContent(b testing.TB) *sitesBuilder {
       +        pageContent := func(size int) string {
       +                return getBenchmarkTestDataPageContentForMarkdown(size, benchmarkMarkdownSnippets)
       +        }
       +
       +        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"
       +                        
       +`)
        
       -        const markdownSnippets = `
       +        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 @@ This is [Relative](/all-is-relative).
        See my [About](/about/) page for details. 
        `
        
       -        pageContentForMarkdown := func(size int, markdown string) string {
       -                return `---
       -title: "My Page"
       ----
       -
       -My page content.
       -
       -` + strings.Repeat(markdown, size)
       -        }
       +func getBenchmarkSiteNewTestCases() []siteBenchmarkTestcase {
        
                pageContent := func(size int) string {
       -                return pageContentForMarkdown(size, markdownSnippets)
       +                return getBenchmarkTestDataPageContentForMarkdown(size, benchmarkMarkdownSnippets)
                }
        
                config := `
       @@ -142,52 +194,7 @@ canonifyURLs = true
                        },
        
                        {"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")