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:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2021-07-21 14:43:00 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2021-07-22 15:17:25 +0300
commit498f2908061485a6f6d1a5aded469ede739bf28d (patch)
tree5c97e6d7f81d4d1752f13be3af5bcb586fcbab2a
parent67f2a06baa7d1ffa9e31f17f82aa0a536574e1dd (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.go21
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)
+}