Scope candidate blob readers to validation

This commit is contained in:
2026-10-09 01:30:30 +00:00
parent 33e10635b6
commit a3e993d95a
13 changed files with 244 additions and 4 deletions

View File

@@ -54,6 +54,9 @@ func BenchmarkPerformanceValidation(b *testing.B) {
if len(tree.Entries()) != len(fixture.paths) {
b.Fatalf("tree entries = %d, want %d", len(tree.Entries()), len(fixture.paths))
}
if err := tree.Close(); err != nil {
b.Fatal(err)
}
runtime.KeepAlive(tree)
}
})
@@ -77,6 +80,9 @@ func BenchmarkPerformanceValidation(b *testing.B) {
if bytesRead != fixture.totalBytes {
b.Fatalf("read %d bytes, want %d", bytesRead, fixture.totalBytes)
}
if err := tree.Close(); err != nil {
b.Fatal(err)
}
runtime.KeepAlive(tree)
}
runtime.KeepAlive(trees)
@@ -92,6 +98,9 @@ func BenchmarkPerformanceValidation(b *testing.B) {
if err := checkGoFormat(context.Background(), tree); err != nil {
b.Fatal(err)
}
if err := tree.Close(); err != nil {
b.Fatal(err)
}
runtime.KeepAlive(tree)
}
runtime.KeepAlive(trees)
@@ -109,6 +118,9 @@ func BenchmarkPerformanceValidation(b *testing.B) {
if err := checkMarkdownLinks(context.Background(), tree, false, io.Discard); err != nil {
b.Fatal(err)
}
if err := tree.Close(); err != nil {
b.Fatal(err)
}
runtime.KeepAlive(tree)
}
runtime.KeepAlive(trees)
@@ -121,6 +133,7 @@ func BenchmarkPerformanceRetainedContent(b *testing.B) {
if err != nil {
b.Fatal(err)
}
b.Cleanup(func() { _ = tree.Close() })
cache := newMarkdownCache(tree)
var markdownPaths []string
for _, entry := range tree.Entries() {
@@ -149,6 +162,9 @@ func BenchmarkPerformanceRetainedContent(b *testing.B) {
}
}
b.StopTimer()
if err := tree.Close(); err != nil {
b.Fatal(err)
}
runtime.GC()
var after runtime.MemStats
runtime.ReadMemStats(&after)
@@ -209,12 +225,16 @@ func freshPerformanceTrees(tb testing.TB, fixture performanceTree, count int) []
if err != nil {
tb.Fatal(err)
}
cleanupCandidateTree(tb, base)
trees := make([]*CandidateTree, count)
for index := range trees {
tree := *base
tree.blobs = make(map[string][]byte)
trees[index] = &tree
}
if err := base.Close(); err != nil {
tb.Fatal(err)
}
runtime.KeepAlive(base)
return trees
}
@@ -270,6 +290,9 @@ func verifyPerformanceTree(tb testing.TB, fixture performanceTree, repeated, pac
tb.Fatal("Markdown link fixture does not contain the expected repeated targets")
}
}
if err := tree.Close(); err != nil {
tb.Fatal(err)
}
objects := gitTree(tb, fixture.repository, "count-objects", "-v")
loose, packedCount := performanceObjectCounts(tb, objects)