diff options
author | Hordur Freyr Yngvason <hfyngvason@gitlab.com> | 2022-03-16 23:44:14 +0300 |
---|---|---|
committer | John Cai <jcai@gitlab.com> | 2022-03-16 23:44:14 +0300 |
commit | 0b704aa54a9e48baadcc2c7e9d03ce84eb49bd39 (patch) | |
tree | ebbfaad79c374ef6e7e961932400b9e6404faf66 /internal/gitaly/service | |
parent | 8b033b1763e80468b4f11a572e1425d1064692e2 (diff) |
Fix error handling in GetTreeEntries
Diffstat (limited to 'internal/gitaly/service')
-rw-r--r-- | internal/gitaly/service/commit/tree_entries.go | 2 | ||||
-rw-r--r-- | internal/gitaly/service/commit/tree_entries_test.go | 24 |
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 } } |