diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2021-07-21 14:43:00 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2021-07-22 15:17:25 +0300 |
commit | 498f2908061485a6f6d1a5aded469ede739bf28d (patch) | |
tree | 5c97e6d7f81d4d1752f13be3af5bcb586fcbab2a | |
parent | 67f2a06baa7d1ffa9e31f17f82aa0a536574e1dd (diff) |
repository: Demonstrate failing GetObjectDirectorySize with quarantine
The `GetObjectDirectorySize()` RPC is failing with manually set up
quarantine directories. Add a test which demonstrate the failure such
that it's easier to see what changes when we fix it.
-rw-r--r-- | internal/gitaly/service/repository/size_test.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/internal/gitaly/service/repository/size_test.go b/internal/gitaly/service/repository/size_test.go index 9bc1842f5..d9a7434c4 100644 --- a/internal/gitaly/service/repository/size_test.go +++ b/internal/gitaly/service/repository/size_test.go @@ -4,6 +4,8 @@ import ( "testing" "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitaly/v14/internal/git/quarantine" + "gitlab.com/gitlab-org/gitaly/v14/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/v14/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb" "google.golang.org/grpc/codes" @@ -75,3 +77,22 @@ func TestSuccessfulGetObjectDirectorySizeRequest(t *testing.T) { "repository size %d should be at least %d", response.Size, testRepoMinSizeKB, ) } + +func TestGetObjectDirectorySize_quarantine(t *testing.T) { + t.Parallel() + + cfg, repo, _, client := setupRepositoryService(t) + locator := config.NewLocator(cfg) + + ctx, cancel := testhelper.Context() + defer cancel() + + quarantine, err := quarantine.New(ctx, repo, locator) + require.NoError(t, err) + + response, err := client.GetObjectDirectorySize(ctx, &gitalypb.GetObjectDirectorySizeRequest{ + Repository: quarantine.QuarantinedRepo(), + }) + require.EqualError(t, err, "rpc error: code = InvalidArgument desc = GetObjectDirectoryPath: relative path escapes root directory") + require.Nil(t, response) +} |