diff options
author | John Cai <jcai@gitlab.com> | 2019-06-20 23:15:53 +0300 |
---|---|---|
committer | John Cai <jcai@gitlab.com> | 2019-06-20 23:15:53 +0300 |
commit | 348541f4c75009e328613fb3b38547edc14fd997 (patch) | |
tree | 6c1b26afd26460740d148e584ed67c5900904f9c | |
parent | 2471571e8f3195b0f2ae84d6e4a2d47d3cfa03a2 (diff) | |
parent | 2a06333fd44f07d4a66026be9e1811b8d62fe639 (diff) |
Merge branch 'jv-size-tests' into 'master'
Simplify tests of RepositorySize and GetObjectDirectorySize
See merge request gitlab-org/gitaly!1320
-rw-r--r-- | internal/service/repository/size_test.go | 43 |
1 files changed, 16 insertions, 27 deletions
diff --git a/internal/service/repository/size_test.go b/internal/service/repository/size_test.go index 7fa08c243..48dbc9f84 100644 --- a/internal/service/repository/size_test.go +++ b/internal/service/repository/size_test.go @@ -2,17 +2,18 @@ package repository import ( "context" - "os" - "path" "testing" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" - "gitlab.com/gitlab-org/gitaly/internal/config" "gitlab.com/gitlab-org/gitaly/internal/testhelper" "google.golang.org/grpc/codes" ) +// We assume that the combined size of the Git objects in the test +// repository, even in optimally packed state, is greater than this. +const testRepoMinSizeKB = 10000 + func TestSuccessfulRepositorySizeRequest(t *testing.T) { server, serverSocketPath := runRepoServer(t) defer server.Stop() @@ -20,33 +21,19 @@ func TestSuccessfulRepositorySizeRequest(t *testing.T) { client, conn := newRepositoryClient(t, serverSocketPath) defer conn.Close() - storageName := "default" - storagePath, found := config.StoragePath(storageName) - if !found { - t.Fatalf("No %q storage was found", storageName) - } + repo := testhelper.TestRepository() - repoCopyPath := path.Join(storagePath, "fixed-size-repo.git") - testhelper.MustRunCommand(t, nil, "cp", "-R", "testdata/fixed-size-repo.git", repoCopyPath) - // run `sync` because some filesystems (e.g. ZFS and BTRFS) do lazy-writes - // which leads to `du` returning 0 bytes used until it's finally written to disk. - testhelper.MustRunCommand(t, nil, "sync") - defer os.RemoveAll(repoCopyPath) - - request := &gitalypb.RepositorySizeRequest{ - Repository: &gitalypb.Repository{ - StorageName: storageName, - RelativePath: "fixed-size-repo.git", - }, - } + request := &gitalypb.RepositorySizeRequest{Repository: repo} ctx, cancel := context.WithCancel(context.Background()) defer cancel() response, err := client.RepositorySize(ctx, request) require.NoError(t, err) - // We can't test for an exact size because it will be different for systems with different sector sizes, - // so we settle for anything greater than zero. - require.True(t, response.Size > 0, "size must be greater than zero") + + require.True(t, + response.Size > testRepoMinSizeKB, + "repository size %d should be at least %d", response.Size, testRepoMinSizeKB, + ) } func TestFailedRepositorySizeRequest(t *testing.T) { @@ -99,7 +86,9 @@ func TestSuccessfulGetObjectDirectorySizeRequest(t *testing.T) { response, err := client.GetObjectDirectorySize(ctx, request) require.NoError(t, err) - // We can't test for an exact size because it will be different for systems with different sector sizes, - // so we settle for anything greater than zero. - require.True(t, response.Size > 0, "size must be greater than zero") + + require.True(t, + response.Size > testRepoMinSizeKB, + "repository size %d should be at least %d", response.Size, testRepoMinSizeKB, + ) } |