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>2022-02-01 15:07:42 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2022-02-01 17:17:55 +0300
commit450c53c7466468d0d1922d47f1dc5c27168d6e74 (patch)
tree80f1b88291d1ac15c86d29c161ff6b51a7978ebd
parenta79459c6b42fdf33d36badecd917abeb33da81fa (diff)
localrepo: Refactor tests to not read FETCH_HEAD
Some of our remote tests use the FETCH_HEAD file to determine whether expected references have been fetched. We're about to stop writing that file though, which will break these tests. Refactor them to use `localrepo.GetReferences()` to determine whether refs match after the fetch.
-rw-r--r--internal/git/localrepo/remote_extra_test.go32
-rw-r--r--internal/git/localrepo/remote_test.go11
2 files changed, 18 insertions, 25 deletions
diff --git a/internal/git/localrepo/remote_extra_test.go b/internal/git/localrepo/remote_extra_test.go
index 1b473c06e..5c40c9290 100644
--- a/internal/git/localrepo/remote_extra_test.go
+++ b/internal/git/localrepo/remote_extra_test.go
@@ -2,7 +2,6 @@ package localrepo_test
import (
"bytes"
- "fmt"
"path/filepath"
"testing"
@@ -13,7 +12,6 @@ import (
"gitlab.com/gitlab-org/gitaly/v14/internal/gitaly/service"
"gitlab.com/gitlab-org/gitaly/v14/internal/gitaly/service/hook"
"gitlab.com/gitlab-org/gitaly/v14/internal/gitaly/service/ssh"
- "gitlab.com/gitlab-org/gitaly/v14/internal/helper/text"
"gitlab.com/gitlab-org/gitaly/v14/internal/testhelper"
"gitlab.com/gitlab-org/gitaly/v14/internal/testhelper/testcfg"
"gitlab.com/gitlab-org/gitaly/v14/internal/testhelper/testserver"
@@ -66,15 +64,13 @@ func TestRepo_FetchInternal(t *testing.T) {
localrepo.FetchOpts{},
))
- fetchHead := testhelper.MustReadFile(t, filepath.Join(repoPath, "FETCH_HEAD"))
- expectedFetchHead := fmt.Sprintf("%s\t\tbranch 'master' of ssh://gitaly/internal\n", remoteOID.String())
- expectedFetchHead += fmt.Sprintf("%s\tnot-for-merge\ttag 'v1.0.0' of ssh://gitaly/internal\n", tagV100OID.String())
- expectedFetchHead += fmt.Sprintf("%s\tnot-for-merge\ttag 'v1.1.0' of ssh://gitaly/internal", tagV110OID.String())
- require.Equal(t, expectedFetchHead, text.ChompBytes(fetchHead))
-
- oid, err := repo.ResolveRevision(ctx, git.Revision("refs/heads/master"))
- require.NoError(t, err, "the object from remote should exists in local after fetch done")
- require.Equal(t, remoteOID, oid)
+ refs, err := repo.GetReferences(ctx)
+ require.NoError(t, err)
+ require.Equal(t, []git.Reference{
+ {Name: "refs/heads/master", Target: remoteOID.String()},
+ {Name: "refs/tags/v1.0.0", Target: tagV100OID.String()},
+ {Name: "refs/tags/v1.1.0", Target: tagV110OID.String()},
+ }, refs)
// Even if the gitconfig says we should write a commit graph, Gitaly should refuse
// to do so.
@@ -88,7 +84,7 @@ func TestRepo_FetchInternal(t *testing.T) {
t.Run("refspec without tags", func(t *testing.T) {
ctx := testhelper.MergeIncomingMetadata(ctx, testcfg.GitalyServersMetadataFromCfg(t, cfg))
- repoProto, repoPath := gittest.InitRepo(t, cfg, cfg.Storages[0])
+ repoProto, _ := gittest.InitRepo(t, cfg, cfg.Storages[0])
repo := localrepo.NewTestRepo(t, cfg, repoProto)
require.NoError(t, repo.FetchInternal(
@@ -96,13 +92,11 @@ func TestRepo_FetchInternal(t *testing.T) {
localrepo.FetchOpts{Tags: localrepo.FetchOptsTagsNone},
))
- fetchHead := testhelper.MustReadFile(t, filepath.Join(repoPath, "FETCH_HEAD"))
- expectedFetchHead := fmt.Sprintf("%s\t\tbranch 'master' of ssh://gitaly/internal", remoteOID.String())
- require.Equal(t, expectedFetchHead, text.ChompBytes(fetchHead))
-
- oid, err := repo.ResolveRevision(ctx, git.Revision("refs/heads/master"))
- require.NoError(t, err, "the object from remote should exists in local after fetch done")
- require.Equal(t, remoteOID, oid)
+ refs, err := repo.GetReferences(ctx)
+ require.NoError(t, err)
+ require.Equal(t, []git.Reference{
+ {Name: "refs/heads/master", Target: remoteOID.String()},
+ }, refs)
})
t.Run("object ID", func(t *testing.T) {
diff --git a/internal/git/localrepo/remote_test.go b/internal/git/localrepo/remote_test.go
index 0c5ef9c75..3a0eb19b0 100644
--- a/internal/git/localrepo/remote_test.go
+++ b/internal/git/localrepo/remote_test.go
@@ -63,18 +63,17 @@ func TestRepo_FetchRemote(t *testing.T) {
})
t.Run("ok", func(t *testing.T) {
- repo, testRepoPath := initBareWithRemote(t, "origin")
+ repo, _ := initBareWithRemote(t, "origin")
var stderr bytes.Buffer
require.NoError(t, repo.FetchRemote(ctx, "origin", FetchOpts{Stderr: &stderr}))
require.Empty(t, stderr.String(), "it should not produce output as it is called with --quite flag by default")
- fetchHeadData := testhelper.MustReadFile(t, filepath.Join(testRepoPath, "FETCH_HEAD"))
-
- fetchHead := string(fetchHeadData)
- require.Contains(t, fetchHead, "e56497bb5f03a90a51293fc6d516788730953899 not-for-merge branch ''test''")
- require.Contains(t, fetchHead, "8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b not-for-merge tag 'v1.1.0'")
+ refs, err := repo.GetReferences(ctx)
+ require.NoError(t, err)
+ require.Contains(t, refs, git.Reference{Name: "refs/remotes/origin/'test'", Target: "e56497bb5f03a90a51293fc6d516788730953899"})
+ require.Contains(t, refs, git.Reference{Name: "refs/tags/v1.1.0", Target: "8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b"})
sha, err := repo.ResolveRevision(ctx, git.Revision("refs/remotes/origin/master^{commit}"))
require.NoError(t, err, "the object from remote should exists in local after fetch done")