diff options
author | Bjørn Erik Pedersen <[email protected]> | 2023-02-21 11:00:43 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2023-02-21 11:00:43 +0100 |
commit | 28540ed131812988b8e5706f272996f5348005fc (patch) | |
tree | 974e241be9004dadc0febe9414d83149a5bcc1c7 /related | |
parent | 9af78d11003ed22b6281e47e1ac19568cf1cca81 (diff) | |
download | hugo-28540ed131812988b8e5706f272996f5348005fc.tar.gz hugo-28540ed131812988b8e5706f272996f5348005fc.zip |
related: Add benchmark
Diffstat (limited to 'related')
-rw-r--r-- | related/integration_test.go | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/related/integration_test.go b/related/integration_test.go new file mode 100644 index 000000000..ba9eba71c --- /dev/null +++ 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() + } +} |