diff options
| author | 2026-03-06 21:19:56 +0800 | |
|---|---|---|
| committer | 2026-03-07 00:34:30 +0800 | |
| commit | 01d15bccf3b1dcc51516b1f64d50950b31d7f8fb (patch) | |
| tree | e491fcc762c67c1ef4ce54faafc5dafdb734ae8a /refstore | |
| parent | objectstored/refstore: Weird ireturn behavior (diff) | |
| signature | No signature | |
Urgh I made some wrong amends and I'm too tired to separate the commits out this time
ancestor: Split out of reachability
mergebase: Add merge base routines
internal/commitquery: Add commit query context engine thingy
internal/peel: Shared tag peeling
errors: Shared object query errors
internal/testgit: Add rooted repo helpers; remove raw path access
objectstore/memory: Add in-memory object store
objectid: Add Compare helper
Diffstat (limited to 'refstore')
| -rw-r--r-- | refstore/loose/loose_test.go | 37 | ||||
| -rw-r--r-- | refstore/packed/packed_test.go | 25 |
2 files changed, 20 insertions, 42 deletions
diff --git a/refstore/loose/loose_test.go b/refstore/loose/loose_test.go index 7b295bbb..912d7c9e 100644 --- a/refstore/loose/loose_test.go +++ b/refstore/loose/loose_test.go @@ -2,8 +2,6 @@ package loose_test import ( "errors" - "os" - "path/filepath" "slices" "testing" @@ -14,15 +12,10 @@ import ( "codeberg.org/lindenii/furgit/refstore/loose" ) -func openLooseStore(t *testing.T, repoPath string, algo objectid.Algorithm) *loose.Store { +func openLooseStore(t *testing.T, testRepo *testgit.TestRepo, algo objectid.Algorithm) *loose.Store { t.Helper() - root, err := os.OpenRoot(repoPath) - if err != nil { - t.Fatalf("OpenRoot(%q): %v", repoPath, err) - } - - t.Cleanup(func() { _ = root.Close() }) + root := testRepo.OpenGitRoot(t) store, err := loose.New(root, algo) if err != nil { @@ -40,7 +33,7 @@ func TestLooseResolveAndResolveFully(t *testing.T) { testRepo.UpdateRef(t, "refs/heads/main", commitID) testRepo.SymbolicRef(t, "HEAD", "refs/heads/main") - store := openLooseStore(t, testRepo.Dir(), algo) + store := openLooseStore(t, testRepo, algo) resolvedHead, err := store.Resolve("HEAD") if err != nil { @@ -93,7 +86,7 @@ func TestLooseResolveFullyCycle(t *testing.T) { testRepo.SymbolicRef(t, "refs/heads/a", "refs/heads/b") testRepo.SymbolicRef(t, "refs/heads/b", "refs/heads/a") - store := openLooseStore(t, testRepo.Dir(), algo) + store := openLooseStore(t, testRepo, algo) _, err := store.ResolveFully("refs/heads/a") if err == nil { @@ -112,7 +105,7 @@ func TestLooseListPattern(t *testing.T) { testRepo.UpdateRef(t, "refs/tags/v1.0.0", commitID) testRepo.SymbolicRef(t, "HEAD", "refs/heads/main") - store := openLooseStore(t, testRepo.Dir(), algo) + store := openLooseStore(t, testRepo, algo) allRefs, err := store.List("") if err != nil { @@ -161,7 +154,7 @@ func TestLooseListPatternMatrix(t *testing.T) { testRepo.UpdateRef(t, "refs/tags/v1", commitID) testRepo.SymbolicRef(t, "HEAD", "refs/heads/main") - store := openLooseStore(t, testRepo.Dir(), algo) + store := openLooseStore(t, testRepo, algo) tests := []struct { pattern string @@ -223,21 +216,11 @@ func TestLooseMalformedDetachedRef(t *testing.T) { testgit.ForEachAlgorithm(t, func(t *testing.T, algo objectid.Algorithm) { //nolint:thelper testRepo := testgit.NewRepo(t, testgit.RepoOptions{ObjectFormat: algo, Bare: true}) - refPath := filepath.Join(testRepo.Dir(), "refs", "heads", "bad") - - err := os.MkdirAll(filepath.Dir(refPath), 0o755) - if err != nil { - t.Fatalf("MkdirAll: %v", err) - } - - err = os.WriteFile(refPath, []byte("not-a-hash\n"), 0o644) - if err != nil { - t.Fatalf("WriteFile: %v", err) - } + testRepo.WriteFileAll(t, "refs/heads/bad", []byte("not-a-hash\n"), 0o755, 0o644) - store := openLooseStore(t, testRepo.Dir(), algo) + store := openLooseStore(t, testRepo, algo) - _, err = store.Resolve("refs/heads/bad") + _, err := store.Resolve("refs/heads/bad") if err == nil { t.Fatalf("Resolve(malformed) expected error") } @@ -253,7 +236,7 @@ func TestLooseShorten(t *testing.T) { testRepo.UpdateRef(t, "refs/tags/main", commitID) testRepo.UpdateRef(t, "refs/remotes/origin/main", commitID) - store := openLooseStore(t, testRepo.Dir(), algo) + store := openLooseStore(t, testRepo, algo) shortHead, err := store.Shorten("refs/heads/main") if err != nil { diff --git a/refstore/packed/packed_test.go b/refstore/packed/packed_test.go index 9d6b2fe1..e5a56dda 100644 --- a/refstore/packed/packed_test.go +++ b/refstore/packed/packed_test.go @@ -14,15 +14,10 @@ import ( "codeberg.org/lindenii/furgit/refstore/packed" ) -func openPackedRefStoreFromRepo(t *testing.T, repoPath string, algo objectid.Algorithm) *packed.Store { +func openPackedRefStoreFromRepo(t *testing.T, testRepo *testgit.TestRepo, algo objectid.Algorithm) *packed.Store { t.Helper() - root, err := os.OpenRoot(repoPath) - if err != nil { - t.Fatalf("OpenRoot(repo): %v", err) - } - - defer func() { _ = root.Close() }() + root := testRepo.OpenGitRoot(t) store, err := packed.New(root, algo) if err != nil { @@ -37,11 +32,6 @@ func openPackedRefStoreFromContent(t *testing.T, content string, algo objectid.A dir := t.TempDir() - err := os.WriteFile(dir+"/packed-refs", []byte(content), 0o644) - if err != nil { - t.Fatalf("WriteFile(packed-refs): %v", err) - } - root, err := os.OpenRoot(dir) if err != nil { t.Fatalf("OpenRoot(temp): %v", err) @@ -49,6 +39,11 @@ func openPackedRefStoreFromContent(t *testing.T, content string, algo objectid.A defer func() { _ = root.Close() }() + err = root.WriteFile("packed-refs", []byte(content), 0o644) + if err != nil { + t.Fatalf("WriteFile(packed-refs): %v", err) + } + return packed.New(root, algo) } @@ -61,7 +56,7 @@ func TestPackedResolveAndPeeled(t *testing.T) { tagID := testRepo.TagAnnotated(t, "v1.0.0", commitID, "annotated tag") testRepo.PackRefs(t, "--all", "--prune") - store := openPackedRefStoreFromRepo(t, testRepo.Dir(), algo) + store := openPackedRefStoreFromRepo(t, testRepo, algo) resolvedMain, err := store.Resolve("refs/heads/main") if err != nil { @@ -125,7 +120,7 @@ func TestPackedListAndShorten(t *testing.T) { testRepo.UpdateRef(t, "refs/remotes/origin/main", commitID) testRepo.PackRefs(t, "--all", "--prune") - store := openPackedRefStoreFromRepo(t, testRepo.Dir(), algo) + store := openPackedRefStoreFromRepo(t, testRepo, algo) all, err := store.List("") if err != nil { @@ -180,7 +175,7 @@ func TestPackedListPatternMatrix(t *testing.T) { testRepo.UpdateRef(t, "refs/tags/v1", commitID) testRepo.PackRefs(t, "--all", "--prune") - store := openPackedRefStoreFromRepo(t, testRepo.Dir(), algo) + store := openPackedRefStoreFromRepo(t, testRepo, algo) tests := []struct { pattern string |
