URI: 
       related: Add benchmark - 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 28540ed131812988b8e5706f272996f5348005fc
   DIR parent 9af78d11003ed22b6281e47e1ac19568cf1cca81
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Tue, 21 Feb 2023 11:00:43 +0100
       
       related: Add benchmark
       
       Diffstat:
         A related/integration_test.go         |      74 +++++++++++++++++++++++++++++++
       
       1 file changed, 74 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/related/integration_test.go b/related/integration_test.go
       @@ -0,0 +1,74 @@
       +// Copyright 2023 The Hugo Authors. All rights reserved.
       +//
       +// Licensed under the Apache License, Version 2.0 (the "License");
       +// you may not use this file except in compliance with the License.
       +// You may obtain a copy of the License at
       +// http://www.apache.org/licenses/LICENSE-2.0
       +//
       +// Unless required by applicable law or agreed to in writing, software
       +// distributed under the License is distributed on an "AS IS" BASIS,
       +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
       +// See the License for the specific language governing permissions and
       +// limitations under the License.
       +
       +package related_test
       +
       +import (
       +        "fmt"
       +        "math/rand"
       +        "testing"
       +
       +        "github.com/gohugoio/hugo/hugolib"
       +)
       +
       +func BenchmarkRelatedSite(b *testing.B) {
       +        files := `
       +-- config.toml --
       +baseURL = "http://example.com/"
       +disableKinds = ["taxonomy", "term", "RSS", "sitemap", "robotsTXT"]
       +[related]
       +  includeNewer = false
       +  threshold = 80
       +  toLower = false
       +[[related.indices]]
       +  name = 'keywords'
       +  weight = 70        
       +-- layouts/_default/single.html --
       +Len related: {{ site.RegularPages.Related . | len }}
       +`
       +
       +        createContent := func(n int) string {
       +                base := `---
       +title: "Page %d"
       +keywords: ['k%d']
       +---
       +`
       +
       +                for i := 0; i < 32; i++ {
       +                        base += fmt.Sprintf("\n## Title %d", rand.Intn(100))
       +                }
       +
       +                return fmt.Sprintf(base, n, rand.Intn(32))
       +
       +        }
       +
       +        for i := 1; i < 100; i++ {
       +                files += fmt.Sprintf("\n-- content/posts/p%d.md --\n"+createContent(i+1), i+1)
       +        }
       +
       +        cfg := hugolib.IntegrationTestConfig{
       +                T:           b,
       +                TxtarString: files,
       +        }
       +        builders := make([]*hugolib.IntegrationTestBuilder, b.N)
       +
       +        for i := range builders {
       +                builders[i] = hugolib.NewIntegrationTestBuilder(cfg)
       +        }
       +
       +        b.ResetTimer()
       +
       +        for i := 0; i < b.N; i++ {
       +                builders[i].Build()
       +        }
       +}