Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHordur Freyr Yngvason <hfyngvason@gitlab.com>2022-03-16 23:44:14 +0300
committerJohn Cai <jcai@gitlab.com>2022-03-16 23:44:14 +0300
commit0b704aa54a9e48baadcc2c7e9d03ce84eb49bd39 (patch)
treeebbfaad79c374ef6e7e961932400b9e6404faf66
parent8b033b1763e80468b4f11a572e1425d1064692e2 (diff)
Fix error handling in GetTreeEntries
-rw-r--r--internal/gitaly/service/commit/tree_entries.go2
-rw-r--r--internal/gitaly/service/commit/tree_entries_test.go24
2 files changed, 20 insertions, 6 deletions
diff --git a/internal/gitaly/service/commit/tree_entries.go b/internal/gitaly/service/commit/tree_entries.go
index 8002ec7fe..96bf79693 100644
--- a/internal/gitaly/service/commit/tree_entries.go
+++ b/internal/gitaly/service/commit/tree_entries.go
@@ -98,7 +98,7 @@ func (s *server) sendTreeEntries(
rootTreeInfo, err := repo.ResolveRevision(ctx, git.Revision(revision+"^{tree}"))
if err != nil {
- if catfile.IsNotFound(err) {
+ if errors.Is(err, git.ErrReferenceNotFound) {
return nil
}
diff --git a/internal/gitaly/service/commit/tree_entries_test.go b/internal/gitaly/service/commit/tree_entries_test.go
index c61e9ca50..e27e2286b 100644
--- a/internal/gitaly/service/commit/tree_entries_test.go
+++ b/internal/gitaly/service/commit/tree_entries_test.go
@@ -15,6 +15,7 @@ import (
"gitlab.com/gitlab-org/gitaly/v14/internal/testhelper"
"gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb"
"google.golang.org/grpc/codes"
+ "google.golang.org/grpc/status"
)
func TestGetTreeEntries_curlyBraces(t *testing.T) {
@@ -379,6 +380,19 @@ func TestGetTreeEntries_successful(t *testing.T) {
entries: nil,
},
{
+ description: "with a non-existing revision, nonrecursive",
+ revision: []byte("this-revision-does-not-exist"),
+ path: []byte("."),
+ entries: nil,
+ },
+ {
+ description: "with a non-existing revision, recursive",
+ revision: []byte("this-revision-does-not-exist"),
+ path: []byte("."),
+ entries: nil,
+ recursive: true,
+ },
+ {
description: "with root path and sorted by trees first",
revision: []byte(commitID),
path: []byte("."),
@@ -488,7 +502,7 @@ func TestGetTreeEntries_unsuccessful(t *testing.T) {
revision: []byte(commitID),
path: []byte("."),
pageToken: "non-existent",
- expectedError: fmt.Errorf("could not get find starting OID: non-existent"),
+ expectedError: status.Error(codes.Unknown, "could not find starting OID: non-existent"),
},
}
@@ -699,11 +713,11 @@ func getTreeEntriesFromTreeEntryClient(t *testing.T, client gitalypb.CommitServi
for {
resp, err := client.Recv()
- if err == io.EOF {
- break
- }
if expectedError == nil {
+ if err == io.EOF {
+ break
+ }
require.NoError(t, err)
entries = append(entries, resp.Entries...)
@@ -714,7 +728,7 @@ func getTreeEntriesFromTreeEntryClient(t *testing.T, client gitalypb.CommitServi
require.Equal(t, nil, resp.PaginationCursor)
}
} else {
- require.Error(t, expectedError, err)
+ testhelper.RequireGrpcError(t, expectedError, err)
break
}
}