aboutsummaryrefslogtreecommitdiff
path: root/repository/traversal_bench_test.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-06 01:48:44 +0800
committerGravatar Runxi Yu2026-03-06 01:48:44 +0800
commit120509f0aad0e945d8e0fc90a822fa904fb70b68 (patch)
tree20a541f059591b35795a1a5d3b7dcf48ec711b6a /repository/traversal_bench_test.go
parentrefstore/loose: Fix package-level comment (diff)
signatureNo signature
repository: Refactor v0.1.55
Diffstat (limited to 'repository/traversal_bench_test.go')
-rw-r--r--repository/traversal_bench_test.go73
1 files changed, 0 insertions, 73 deletions
diff --git a/repository/traversal_bench_test.go b/repository/traversal_bench_test.go
deleted file mode 100644
index ada0f8d8..00000000
--- a/repository/traversal_bench_test.go
+++ /dev/null
@@ -1,73 +0,0 @@
-package repository_test
-
-import (
- "os"
- "strings"
- "testing"
-
- "codeberg.org/lindenii/furgit/object"
- "codeberg.org/lindenii/furgit/repository"
-)
-
-const benchRepoPathEnv = "FURGIT_BENCH_REPO"
-
-// BenchmarkTraverseHeadTree measures iterative traversal of HEAD's root tree.
-//
-// Set FURGIT_BENCH_REPO to a repository path (typically .git or a bare repo)
-// before running this benchmark.
-func BenchmarkTraverseHeadTree(b *testing.B) {
- repoPath := strings.TrimSpace(os.Getenv(benchRepoPathEnv))
- if repoPath == "" {
- b.Fatalf("missing %s", benchRepoPathEnv)
- }
-
- root, err := os.OpenRoot(repoPath)
- if err != nil {
- b.Fatalf("os.OpenRoot(%q): %v", repoPath, err)
- }
-
- b.Cleanup(func() {
- _ = root.Close()
- })
-
- repo, err := repository.Open(root)
- if err != nil {
- b.Fatalf("repository.Open(root for %q): %v", repoPath, err)
- }
-
- b.Cleanup(func() {
- _ = repo.Close()
- })
-
- head, err := repo.Refs().ResolveFully("HEAD")
- if err != nil {
- b.Fatalf("ResolveRefFully(HEAD): %v", err)
- }
-
- stored, err := repo.ReadStored(head.ID)
- if err != nil {
- b.Fatalf("ReadStored(%s): %v", head.ID, err)
- }
-
- commit, ok := stored.Object().(*object.Commit)
- if !ok {
- b.Fatalf("HEAD object type %T, want *object.Commit", stored.Object())
- }
-
- b.ReportAllocs()
- b.ResetTimer()
-
- var lastCount int
- for b.Loop() {
- lastCount, err = traverseTreeIter(repo, commit.Tree)
- if err != nil {
- b.Fatalf("traverseTreeIter: %v", err)
- }
- }
-
- b.StopTimer()
-
- if lastCount <= 0 {
- b.Fatalf("traverseTreeIter count = %d, want > 0", lastCount)
- }
-}