aboutsummaryrefslogtreecommitdiff
path: root/object
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-06-12 11:32:05 +0000
committerGravatar Runxi Yu2026-06-12 11:32:05 +0000
commit1bc09ebc30f0f6fa922f28581d3161cd290a1a3f (patch)
treedd4a22b1e69c6326c39c36f4aba4ee66eb65dfcc /object
parentinternal/mru: Test that sync places new keys first (diff)
object/store/loose: Use SeedHistory
Diffstat (limited to 'object')
-rw-r--r--object/store/loose/helpers_test.go71
1 files changed, 28 insertions, 43 deletions
diff --git a/object/store/loose/helpers_test.go b/object/store/loose/helpers_test.go
index abfc53e6..db2c5bd2 100644
--- a/object/store/loose/helpers_test.go
+++ b/object/store/loose/helpers_test.go
@@ -2,7 +2,6 @@ package loose_test
import (
"os"
- "strings"
"testing"
"lindenii.org/go/furgit/internal/testgit"
@@ -47,62 +46,48 @@ func openLooseStore(t *testing.T, repo *testgit.Repo) *loose.Loose {
return looseStore
}
-// gitOracleObjects builds one object of each kind with git
-// and precomputes each one's expected content body and full serialized form.
+// gitOracleObjects seeds the repository with history
+// and precomputes every seeded object's
+// expected content body and full serialized form.
func gitOracleObjects(t *testing.T, repo *testgit.Repo) []gitOracleObject {
t.Helper()
- blobID, err := repo.HashObject(t, typ.Blob, strings.NewReader("blob body\n"))
+ seeded, err := repo.SeedHistory(t)
if err != nil {
- t.Fatalf("HashObject(blob): %v", err)
+ t.Fatalf("SeedHistory: %v", err)
}
- treeID, err := repo.MkTree(t, []testgit.TreeEntry{
- {Mode: "100644", Type: typ.Blob, OID: blobID, Name: "file"},
- })
- if err != nil {
- t.Fatalf("MkTree: %v", err)
- }
-
- commitID, err := repo.CommitTree(t, treeID, testgit.CommitTreeOptions{Message: "subject\n\nbody"})
- if err != nil {
- t.Fatalf("CommitTree: %v", err)
- }
-
- tagID, err := repo.TagAnnotated(t, "v1", commitID, testgit.TagAnnotatedOptions{Message: "tag message"})
- if err != nil {
- t.Fatalf("TagAnnotated: %v", err)
- }
-
- kinds := []struct {
+ groups := []struct {
name string
ty typ.Type
- id id.ObjectID
+ oids []id.ObjectID
}{
- {name: "blob", ty: typ.Blob, id: blobID},
- {name: "tree", ty: typ.Tree, id: treeID},
- {name: "commit", ty: typ.Commit, id: commitID},
- {name: "tag", ty: typ.Tag, id: tagID},
+ {name: "blob", ty: typ.Blob, oids: seeded.Blobs},
+ {name: "tree", ty: typ.Tree, oids: seeded.Trees},
+ {name: "commit", ty: typ.Commit, oids: seeded.Commits},
+ {name: "tag", ty: typ.Tag, oids: seeded.Tags},
}
- objects := make([]gitOracleObject, 0, len(kinds))
+ objects := make([]gitOracleObject, 0, len(seeded.All()))
- for _, kind := range kinds {
- body, err := repo.CatFile(t, kind.ty, kind.id)
- if err != nil {
- t.Fatalf("CatFile(%s): %v", kind.name, err)
- }
+ for _, group := range groups {
+ for _, oid := range group.oids {
+ body, err := repo.CatFile(t, group.ty, oid)
+ if err != nil {
+ t.Fatalf("CatFile(%s %s): %v", group.name, oid, err)
+ }
- raw := header.Append(nil, kind.ty, uint64(len(body)))
- raw = append(raw, body...)
+ raw := header.Append(nil, group.ty, uint64(len(body)))
+ raw = append(raw, body...)
- objects = append(objects, gitOracleObject{
- name: kind.name,
- ty: kind.ty,
- id: kind.id,
- body: body,
- raw: raw,
- })
+ objects = append(objects, gitOracleObject{
+ name: group.name + " " + oid.String(),
+ ty: group.ty,
+ id: oid,
+ body: body,
+ raw: raw,
+ })
+ }
}
return objects