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:
authorPavlo Strokov <pstrokov@gitlab.com>2021-04-27 19:23:28 +0300
committerPavlo Strokov <pstrokov@gitlab.com>2021-04-29 22:13:52 +0300
commit89ccf01817e30f8ea7fc072ff69d152209654274 (patch)
treef8dbd18ab3654f4f7f486bc3dff04ff6870d985b
parente0c4194d510e4fa60fbdc026d3734b462c2a6220 (diff)
Replace MustRunCommand with Exec|ExecStream in TestDeltaIslands
Usages of the MustRunCommand replaced with Exec or ExecStream in order to break dependency on the global config.Config variable. Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2699
-rw-r--r--internal/git/gittest/delta_islands.go34
-rw-r--r--internal/git/objectpool/fetch_test.go2
-rw-r--r--internal/gitaly/service/repository/gc_test.go4
-rw-r--r--internal/gitaly/service/repository/repack_test.go4
4 files changed, 22 insertions, 22 deletions
diff --git a/internal/git/gittest/delta_islands.go b/internal/git/gittest/delta_islands.go
index 4d1aab9e6..51073f529 100644
--- a/internal/git/gittest/delta_islands.go
+++ b/internal/git/gittest/delta_islands.go
@@ -12,12 +12,12 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"gitlab.com/gitlab-org/gitaly/internal/git"
- "gitlab.com/gitlab-org/gitaly/internal/testhelper"
+ "gitlab.com/gitlab-org/gitaly/internal/gitaly/config"
)
// TestDeltaIslands is based on the tests in
// https://github.com/git/git/blob/master/t/t5320-delta-islands.sh .
-func TestDeltaIslands(t *testing.T, repoPath string, repack func() error) {
+func TestDeltaIslands(t *testing.T, cfg config.Cfg, repoPath string, repack func() error) {
// Create blobs that we expect Git to use delta compression on.
blob1, err := ioutil.ReadAll(io.LimitReader(rand.Reader, 100000))
require.NoError(t, err)
@@ -27,49 +27,49 @@ func TestDeltaIslands(t *testing.T, repoPath string, repack func() error) {
// Assume Git prefers the largest blob as the delta base.
badBlob := append(blob2, "\nbad blob"...)
- blob1ID := commitBlob(t, repoPath, "refs/heads/branch1", blob1)
- blob2ID := commitBlob(t, repoPath, "refs/tags/tag2", blob2)
+ blob1ID := commitBlob(t, cfg, repoPath, "refs/heads/branch1", blob1)
+ blob2ID := commitBlob(t, cfg, repoPath, "refs/tags/tag2", blob2)
// The bad blob will only be reachable via a non-standard ref. Because of
// that it should be excluded from delta chains in the main island.
- badBlobID := commitBlob(t, repoPath, "refs/bad/ref3", badBlob)
+ badBlobID := commitBlob(t, cfg, repoPath, "refs/bad/ref3", badBlob)
// So far we have create blobs and commits but they will be in loose
// object files; we want them to be delta compressed. Run repack to make
// that happen.
- testhelper.MustRunCommand(t, nil, "git", "-C", repoPath, "repack", "-ad")
+ Exec(t, cfg, "-C", repoPath, "repack", "-ad")
- assert.Equal(t, badBlobID, deltaBase(t, repoPath, blob1ID), "expect blob 1 delta base to be bad blob after test setup")
- assert.Equal(t, badBlobID, deltaBase(t, repoPath, blob2ID), "expect blob 2 delta base to be bad blob after test setup")
+ assert.Equal(t, badBlobID, deltaBase(t, cfg, repoPath, blob1ID), "expect blob 1 delta base to be bad blob after test setup")
+ assert.Equal(t, badBlobID, deltaBase(t, cfg, repoPath, blob2ID), "expect blob 2 delta base to be bad blob after test setup")
require.NoError(t, repack(), "repack after delta island setup")
- assert.Equal(t, blob2ID, deltaBase(t, repoPath, blob1ID), "blob 1 delta base should be blob 2 after repack")
+ assert.Equal(t, blob2ID, deltaBase(t, cfg, repoPath, blob1ID), "blob 1 delta base should be blob 2 after repack")
// blob2 is the bigger of the two so it should be the delta base
- assert.Equal(t, git.ZeroOID.String(), deltaBase(t, repoPath, blob2ID), "blob 2 should not be delta compressed after repack")
+ assert.Equal(t, git.ZeroOID.String(), deltaBase(t, cfg, repoPath, blob2ID), "blob 2 should not be delta compressed after repack")
}
-func commitBlob(t *testing.T, repoPath, ref string, content []byte) string {
- hashObjectOut := testhelper.MustRunCommand(t, bytes.NewReader(content), "git", "-C", repoPath, "hash-object", "-w", "--stdin")
+func commitBlob(t *testing.T, cfg config.Cfg, repoPath, ref string, content []byte) string {
+ hashObjectOut := ExecStream(t, cfg, bytes.NewReader(content), "-C", repoPath, "hash-object", "-w", "--stdin")
blobID := chompToString(hashObjectOut)
treeSpec := fmt.Sprintf("100644 blob %s\tfile\n", blobID)
- mktreeOut := testhelper.MustRunCommand(t, strings.NewReader(treeSpec), "git", "-C", repoPath, "mktree")
+ mktreeOut := ExecStream(t, cfg, strings.NewReader(treeSpec), "-C", repoPath, "mktree")
treeID := chompToString(mktreeOut)
// No parent, that means this will be an initial commit. Not very
// realistic but it doesn't matter for delta compression.
- commitTreeOut := testhelper.MustRunCommand(t, nil, "git", "-C", repoPath, "commit-tree", "-m", "msg", treeID)
+ commitTreeOut := Exec(t, cfg, "-C", repoPath, "commit-tree", "-m", "msg", treeID)
commitID := chompToString(commitTreeOut)
- testhelper.MustRunCommand(t, nil, "git", "-C", repoPath, "update-ref", ref, commitID)
+ Exec(t, cfg, "-C", repoPath, "update-ref", ref, commitID)
return blobID
}
-func deltaBase(t *testing.T, repoPath string, blobID string) string {
- catfileOut := testhelper.MustRunCommand(t, strings.NewReader(blobID), "git", "-C", repoPath, "cat-file", "--batch-check=%(deltabase)")
+func deltaBase(t *testing.T, cfg config.Cfg, repoPath string, blobID string) string {
+ catfileOut := ExecStream(t, cfg, strings.NewReader(blobID), "-C", repoPath, "cat-file", "--batch-check=%(deltabase)")
return chompToString(catfileOut)
}
diff --git a/internal/git/objectpool/fetch_test.go b/internal/git/objectpool/fetch_test.go
index 229b84de7..81304361a 100644
--- a/internal/git/objectpool/fetch_test.go
+++ b/internal/git/objectpool/fetch_test.go
@@ -91,7 +91,7 @@ func TestFetchFromOriginDeltaIslands(t *testing.T) {
require.NoError(t, pool.FetchFromOrigin(ctx, testRepo), "seed pool")
require.NoError(t, pool.Link(ctx, testRepo))
- gittest.TestDeltaIslands(t, testRepoPath, func() error {
+ gittest.TestDeltaIslands(t, pool.cfg, testRepoPath, func() error {
// This should create a new packfile with good delta chains in the pool
if err := pool.FetchFromOrigin(ctx, testRepo); err != nil {
return err
diff --git a/internal/gitaly/service/repository/gc_test.go b/internal/gitaly/service/repository/gc_test.go
index fc554dd04..897e26bc3 100644
--- a/internal/gitaly/service/repository/gc_test.go
+++ b/internal/gitaly/service/repository/gc_test.go
@@ -316,12 +316,12 @@ func mustCreateFileWithTimes(t testing.TB, path string, mTime time.Time) {
}
func TestGarbageCollectDeltaIslands(t *testing.T) {
- _, repo, repoPath, client := setupRepositoryService(t)
+ cfg, repo, repoPath, client := setupRepositoryService(t)
ctx, cancel := testhelper.Context()
defer cancel()
- gittest.TestDeltaIslands(t, repoPath, func() error {
+ gittest.TestDeltaIslands(t, cfg, repoPath, func() error {
_, err := client.GarbageCollect(ctx, &gitalypb.GarbageCollectRequest{Repository: repo})
return err
})
diff --git a/internal/gitaly/service/repository/repack_test.go b/internal/gitaly/service/repository/repack_test.go
index e49ee8d2b..a5d110931 100644
--- a/internal/gitaly/service/repository/repack_test.go
+++ b/internal/gitaly/service/repository/repack_test.go
@@ -224,12 +224,12 @@ func TestRepackFullFailure(t *testing.T) {
}
func TestRepackFullDeltaIslands(t *testing.T) {
- _, repo, repoPath, client := setupRepositoryService(t)
+ cfg, repo, repoPath, client := setupRepositoryService(t)
ctx, cancel := testhelper.Context()
defer cancel()
- gittest.TestDeltaIslands(t, repoPath, func() error {
+ gittest.TestDeltaIslands(t, cfg, repoPath, func() error {
_, err := client.RepackFull(ctx, &gitalypb.RepackFullRequest{Repository: repo})
return err
})