From df73a4c6f1b58075316ba7449fbfb127b9fbb79d Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 29 Mar 2026 14:42:13 +0000 Subject: commitquery: Reorganize --- commitquery/ancestor_unit_test.go | 117 -------------------------------------- 1 file changed, 117 deletions(-) delete mode 100644 commitquery/ancestor_unit_test.go (limited to 'commitquery/ancestor_unit_test.go') diff --git a/commitquery/ancestor_unit_test.go b/commitquery/ancestor_unit_test.go deleted file mode 100644 index 8cb147a6..00000000 --- a/commitquery/ancestor_unit_test.go +++ /dev/null @@ -1,117 +0,0 @@ -package commitquery_test - -import ( - "errors" - "fmt" - "testing" - - giterrors "codeberg.org/lindenii/furgit/errors" - "codeberg.org/lindenii/furgit/internal/testgit" - objectid "codeberg.org/lindenii/furgit/object/id" - "codeberg.org/lindenii/furgit/object/store/memory" - objecttree "codeberg.org/lindenii/furgit/object/tree" - objecttype "codeberg.org/lindenii/furgit/object/type" - - "codeberg.org/lindenii/furgit/commitquery" -) - -// ancestorCommitBody serializes one minimal commit body. -func ancestorCommitBody(tree objectid.ObjectID, parents ...objectid.ObjectID) []byte { - buf := fmt.Appendf(nil, "tree %s\n", tree.String()) - for _, parent := range parents { - buf = append(buf, fmt.Appendf(nil, "parent %s\n", parent.String())...) - } - - buf = append(buf, []byte("\nmsg\n")...) - - return buf -} - -// ancestorTagBody serializes one minimal annotated tag body. -func ancestorTagBody(target objectid.ObjectID, targetType objecttype.Type) []byte { - targetName, ok := targetType.Name() - if !ok { - panic("invalid tag target type") - } - - return fmt.Appendf(nil, "object %s\ntype %s\ntag t\n\nmsg\n", target.String(), targetName) -} - -// mustSerializeAncestorTree serializes one tree or fails the test. -func mustSerializeAncestorTree(tb testing.TB, tree *objecttree.Tree) []byte { - tb.Helper() - - body, err := tree.SerializeWithoutHeader() - if err != nil { - tb.Fatalf("SerializeWithoutHeader: %v", err) - } - - return body -} - -func TestIs(t *testing.T) { - t.Parallel() - - testgit.ForEachAlgorithm(t, func(t *testing.T, algo objectid.Algorithm) { //nolint:thelper - store := memory.New(algo) - blob := store.AddObject(objecttype.TypeBlob, []byte("blob\n")) - tree := store.AddObject(objecttype.TypeTree, mustSerializeAncestorTree(t, &objecttree.Tree{Entries: []objecttree.TreeEntry{{ - Mode: objecttree.FileModeRegular, - Name: []byte("f"), - ID: blob, - }}})) - c1 := store.AddObject(objecttype.TypeCommit, ancestorCommitBody(tree)) - c2 := store.AddObject(objecttype.TypeCommit, ancestorCommitBody(tree, c1)) - otherBlob := store.AddObject(objecttype.TypeBlob, []byte("other-blob\n")) - otherTree := store.AddObject(objecttype.TypeTree, mustSerializeAncestorTree(t, &objecttree.Tree{Entries: []objecttree.TreeEntry{{ - Mode: objecttree.FileModeRegular, - Name: []byte("g"), - ID: otherBlob, - }}})) - c3 := store.AddObject(objecttype.TypeCommit, ancestorCommitBody(otherTree)) - tag := store.AddObject(objecttype.TypeTag, ancestorTagBody(c2, objecttype.TypeCommit)) - - ok, err := commitquery.New(store, nil).IsAncestor(c1, tag) - if err != nil { - t.Fatalf("Is(c1, tag): %v", err) - } - - if !ok { - t.Fatal("expected c1 to be ancestor of tag->c2") - } - - ok, err = commitquery.New(store, nil).IsAncestor(c3, c2) - if err != nil { - t.Fatalf("Is(c3, c2): %v", err) - } - - if ok { - t.Fatal("did not expect c3 to be ancestor of c2") - } - }) -} - -func TestIsRejectsNonCommitAfterPeel(t *testing.T) { - t.Parallel() - - testgit.ForEachAlgorithm(t, func(t *testing.T, algo objectid.Algorithm) { //nolint:thelper - store := memory.New(algo) - blob := store.AddObject(objecttype.TypeBlob, []byte("blob\n")) - tree := store.AddObject(objecttype.TypeTree, mustSerializeAncestorTree(t, &objecttree.Tree{Entries: []objecttree.TreeEntry{{ - Mode: objecttree.FileModeRegular, - Name: []byte("f"), - ID: blob, - }}})) - commit := store.AddObject(objecttype.TypeCommit, ancestorCommitBody(tree)) - tagToTree := store.AddObject(objecttype.TypeTag, ancestorTagBody(tree, objecttype.TypeTree)) - - _, err := commitquery.New(store, nil).IsAncestor(commit, tagToTree) - if err == nil { - t.Fatal("expected error") - } - - if _, ok := errors.AsType[*giterrors.ObjectTypeError](err); !ok { - t.Fatalf("expected ObjectTypeError, got %T (%v)", err, err) - } - }) -} -- cgit v1.3.1-10-gc9f91