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-07-27 10:47:27 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2022-08-02 09:27:02 +0300
commit6937fda9ca556e7efb56c83019045c1dfdb794e1 (patch)
treefd4a3540ac022768b39c21c29258457a4b653353
parent3d33bcaaf471495788b539d2c01f0e775d99304b (diff)
gittest: Deduplicate CommitAuthor information
Lots of our tests verify `GitCommit`s of commits that have been written via the `WriteCommit()` test helper and thus need to compare whether the `CommitAuthor` matches the default commit author. This is quite verbose and duplicates information across lots of our tests. Provide a global structure as part of the `gittest` package that holds this information to reduce the duplication. Note that this requires us to change some locations to use `testhelper.ProtoEqual()` instead of the previous `require.Equal()` because Protobuf messages cannot necessarily be directly compared with each other.
-rw-r--r--internal/git/gittest/commit.go9
-rw-r--r--internal/gitaly/service/commit/find_commit_test.go23
-rw-r--r--internal/gitaly/service/commit/list_all_commits_test.go25
-rw-r--r--internal/gitaly/service/operations/rebase_test.go7
-rw-r--r--internal/gitaly/service/ref/find_all_tags_test.go72
-rw-r--r--internal/gitaly/service/ref/find_tag_test.go37
6 files changed, 42 insertions, 131 deletions
diff --git a/internal/git/gittest/commit.go b/internal/git/gittest/commit.go
index 3ffc1035a..fe0b0a914 100644
--- a/internal/git/gittest/commit.go
+++ b/internal/git/gittest/commit.go
@@ -13,6 +13,7 @@ import (
"gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/config"
"gitlab.com/gitlab-org/gitaly/v15/internal/helper/text"
"gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb"
+ "google.golang.org/protobuf/types/known/timestamppb"
)
var (
@@ -29,6 +30,14 @@ var (
DefaultCommitterSignature = fmt.Sprintf(
"%s <%s> %d %s", DefaultCommitterName, DefaultCommitterMail, DefaultCommitTime.Unix(), DefaultCommitTime.Format("-0700"),
)
+ // DefaultCommitAuthor is the Protobuf message representation of the default committer and
+ // author used to create commits.
+ DefaultCommitAuthor = &gitalypb.CommitAuthor{
+ Name: []byte(DefaultCommitterName),
+ Email: []byte(DefaultCommitterMail),
+ Date: timestamppb.New(DefaultCommitTime),
+ Timezone: []byte("+0100"),
+ }
)
type writeCommitConfig struct {
diff --git a/internal/gitaly/service/commit/find_commit_test.go b/internal/gitaly/service/commit/find_commit_test.go
index 42470db91..583c5f755 100644
--- a/internal/gitaly/service/commit/find_commit_test.go
+++ b/internal/gitaly/service/commit/find_commit_test.go
@@ -10,7 +10,6 @@ import (
"github.com/stretchr/testify/require"
"gitlab.com/gitlab-org/gitaly/v15/internal/git"
"gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest"
- "gitlab.com/gitlab-org/gitaly/v15/internal/git/localrepo"
"gitlab.com/gitlab-org/gitaly/v15/internal/helper"
"gitlab.com/gitlab-org/gitaly/v15/internal/testhelper"
"gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb"
@@ -27,15 +26,11 @@ func TestSuccessfulFindCommitRequest(t *testing.T) {
ctx := testhelper.Context(t)
cfg, repoProto, repoPath, client := setupCommitServiceWithRepo(ctx, t)
- repo := localrepo.NewTestRepo(t, cfg, repoProto)
-
bigMessage := "An empty commit with REALLY BIG message\n\n" + strings.Repeat("MOAR!\n", 20*1024)
bigCommitID := gittest.WriteCommit(t, cfg, repoPath,
gittest.WithBranch("local-big-commits"), gittest.WithMessage(bigMessage),
gittest.WithParents("60ecb67744cb56576c30214ff52294f8ce2def98"),
)
- bigCommit, err := repo.ReadCommit(ctx, git.Revision(bigCommitID))
- require.NoError(t, err)
testCases := []struct {
description string
@@ -200,20 +195,10 @@ func TestSuccessfulFindCommitRequest(t *testing.T) {
description: "with a very large message",
revision: bigCommitID.String(),
commit: &gitalypb.GitCommit{
- Id: bigCommitID.String(),
- Subject: []byte("An empty commit with REALLY BIG message"),
- Author: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: &timestamppb.Timestamp{Seconds: bigCommit.Author.Date.Seconds},
- Timezone: []byte("+0100"),
- },
- Committer: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: &timestamppb.Timestamp{Seconds: bigCommit.Committer.Date.Seconds},
- Timezone: []byte("+0100"),
- },
+ Id: bigCommitID.String(),
+ Subject: []byte("An empty commit with REALLY BIG message"),
+ Author: gittest.DefaultCommitAuthor,
+ Committer: gittest.DefaultCommitAuthor,
ParentIds: []string{"60ecb67744cb56576c30214ff52294f8ce2def98"},
Body: []byte(bigMessage[:helper.MaxCommitOrTagMessageSize]),
BodySize: int64(len(bigMessage)),
diff --git a/internal/gitaly/service/commit/list_all_commits_test.go b/internal/gitaly/service/commit/list_all_commits_test.go
index c0af3db84..ae30a7fa3 100644
--- a/internal/gitaly/service/commit/list_all_commits_test.go
+++ b/internal/gitaly/service/commit/list_all_commits_test.go
@@ -13,7 +13,6 @@ import (
"gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest"
"gitlab.com/gitlab-org/gitaly/v15/internal/testhelper"
"gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb"
- "google.golang.org/protobuf/types/known/timestamppb"
)
func TestListAllCommits(t *testing.T) {
@@ -126,23 +125,13 @@ func TestListAllCommits(t *testing.T) {
require.NoError(t, err)
require.Equal(t, []*gitalypb.GitCommit{{
- Id: commitID.String(),
- Subject: []byte("message"),
- Body: []byte("message"),
- BodySize: 7,
- TreeId: "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
- Author: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: &timestamppb.Timestamp{Seconds: 1572776879},
- Timezone: []byte("+0100"),
- },
- Committer: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: &timestamppb.Timestamp{Seconds: 1572776879},
- Timezone: []byte("+0100"),
- },
+ Id: commitID.String(),
+ Subject: []byte("message"),
+ Body: []byte("message"),
+ BodySize: 7,
+ TreeId: "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
+ Author: gittest.DefaultCommitAuthor,
+ Committer: gittest.DefaultCommitAuthor,
}}, receiveCommits(t, stream))
})
}
diff --git a/internal/gitaly/service/operations/rebase_test.go b/internal/gitaly/service/operations/rebase_test.go
index 7bfbf37d6..8f7742c25 100644
--- a/internal/gitaly/service/operations/rebase_test.go
+++ b/internal/gitaly/service/operations/rebase_test.go
@@ -173,12 +173,7 @@ func TestUserRebaseConfirmable_skipEmptyCommits(t *testing.T) {
Id: "ef7f98be1f753f1a9fa895d999a855611d691629",
ParentIds: []string{theirs.String()},
TreeId: "b68aeb18813d7f2e180f2cc0bccc128511438b29",
- Author: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- },
+ Author: gittest.DefaultCommitAuthor,
Committer: &gitalypb.CommitAuthor{
Name: gittest.TestUser.Name,
Email: gittest.TestUser.Email,
diff --git a/internal/gitaly/service/ref/find_all_tags_test.go b/internal/gitaly/service/ref/find_all_tags_test.go
index 6ae5ec5fe..d270ad956 100644
--- a/internal/gitaly/service/ref/find_all_tags_test.go
+++ b/internal/gitaly/service/ref/find_all_tags_test.go
@@ -11,7 +11,6 @@ import (
"testing"
"time"
- "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"gitlab.com/gitlab-org/gitaly/v15/internal/git"
"gitlab.com/gitlab-org/gitaly/v15/internal/git/catfile"
@@ -97,12 +96,7 @@ func TestFindAllTags_successful(t *testing.T) {
TargetCommit: gitCommit,
Message: []byte("commit tag with a commit sha as the name"),
MessageSize: 40,
- Tagger: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- },
+ Tagger: gittest.DefaultCommitAuthor,
},
{
Name: []byte("tag-of-tag"),
@@ -110,12 +104,7 @@ func TestFindAllTags_successful(t *testing.T) {
TargetCommit: gitCommit,
Message: []byte("tag of a tag"),
MessageSize: 12,
- Tagger: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- },
+ Tagger: gittest.DefaultCommitAuthor,
},
{
Name: []byte("v1.0.0"),
@@ -176,12 +165,7 @@ func TestFindAllTags_successful(t *testing.T) {
Id: annotatedTagID.String(),
Message: []byte("Blob tag"),
MessageSize: 8,
- Tagger: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- },
+ Tagger: gittest.DefaultCommitAuthor,
},
{
Name: []byte("v1.3.0"),
@@ -208,12 +192,7 @@ func TestFindAllTags_successful(t *testing.T) {
Message: []byte(bigMessage[:helper.MaxCommitOrTagMessageSize]),
MessageSize: int64(len(bigMessage)),
TargetCommit: gitCommit,
- Tagger: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- },
+ Tagger: gittest.DefaultCommitAuthor,
},
}
@@ -242,23 +221,13 @@ func TestFindAllTags_simpleNestedTags(t *testing.T) {
Name: []byte("my/nested/tag"),
Id: tagID.String(),
TargetCommit: &gitalypb.GitCommit{
- Id: commitID.String(),
- Body: []byte("message"),
- BodySize: 7,
- Subject: []byte("message"),
- TreeId: git.ObjectHashSHA1.EmptyTreeOID.String(),
- Author: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- },
- Committer: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- },
+ Id: commitID.String(),
+ Body: []byte("message"),
+ BodySize: 7,
+ Subject: []byte("message"),
+ TreeId: git.ObjectHashSHA1.EmptyTreeOID.String(),
+ Author: gittest.DefaultCommitAuthor,
+ Committer: gittest.DefaultCommitAuthor,
},
},
},
@@ -303,20 +272,14 @@ func TestFindAllTags_duplicateAnnotatedTags(t *testing.T) {
receivedTags = append(receivedTags, r.GetTags()...)
}
- commitAuthor := &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- }
commit := &gitalypb.GitCommit{
Id: commitID.String(),
TreeId: "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
Body: []byte("message"),
BodySize: 7,
Subject: []byte("message"),
- Author: commitAuthor,
- Committer: commitAuthor,
+ Author: gittest.DefaultCommitAuthor,
+ Committer: gittest.DefaultCommitAuthor,
}
testhelper.ProtoEqual(t, []*gitalypb.Tag{
@@ -426,12 +389,7 @@ func TestFindAllTags_nestedTags(t *testing.T) {
Id: tagID.String(),
Message: []byte(tagMessage),
MessageSize: int64(len([]byte(tagMessage))),
- Tagger: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- },
+ Tagger: gittest.DefaultCommitAuthor,
}
if info.Type == "commit" {
@@ -460,7 +418,7 @@ func TestFindAllTags_nestedTags(t *testing.T) {
require.Len(t, receivedTags, len(expectedTags))
for _, receivedTag := range receivedTags {
- assert.Equal(t, expectedTags[string(receivedTag.Name)], receivedTag)
+ testhelper.ProtoEqual(t, expectedTags[string(receivedTag.Name)], receivedTag)
}
})
}
diff --git a/internal/gitaly/service/ref/find_tag_test.go b/internal/gitaly/service/ref/find_tag_test.go
index 6461e9e77..d9359a31b 100644
--- a/internal/gitaly/service/ref/find_tag_test.go
+++ b/internal/gitaly/service/ref/find_tag_test.go
@@ -69,12 +69,7 @@ func TestFindTag_successful(t *testing.T) {
TargetCommit: gitCommit,
Message: []byte("commit tag with a commit sha as the name"),
MessageSize: 40,
- Tagger: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- },
+ Tagger: gittest.DefaultCommitAuthor,
},
{
Name: []byte("tag-of-tag"),
@@ -82,12 +77,7 @@ func TestFindTag_successful(t *testing.T) {
TargetCommit: gitCommit,
Message: []byte("tag of a tag"),
MessageSize: 12,
- Tagger: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- },
+ Tagger: gittest.DefaultCommitAuthor,
},
{
Name: []byte("v1.0.0"),
@@ -135,12 +125,7 @@ func TestFindTag_successful(t *testing.T) {
Id: annotatedTagID.String(),
Message: []byte("Blob tag"),
MessageSize: 8,
- Tagger: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- },
+ Tagger: gittest.DefaultCommitAuthor,
},
{
Name: []byte("v1.3.0"),
@@ -167,12 +152,7 @@ func TestFindTag_successful(t *testing.T) {
Message: []byte(bigMessage[:helper.MaxCommitOrTagMessageSize]),
MessageSize: int64(len(bigMessage)),
TargetCommit: gitCommit,
- Tagger: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- },
+ Tagger: gittest.DefaultCommitAuthor,
},
}
@@ -263,12 +243,7 @@ func TestFindTag_nestedTag(t *testing.T) {
Id: tagID.String(),
Message: []byte(tagMessage),
MessageSize: int64(len([]byte(tagMessage))),
- Tagger: &gitalypb.CommitAuthor{
- Name: []byte(gittest.DefaultCommitterName),
- Email: []byte(gittest.DefaultCommitterMail),
- Date: timestamppb.New(gittest.DefaultCommitTime),
- Timezone: []byte("+0100"),
- },
+ Tagger: gittest.DefaultCommitAuthor,
}
if info.Type == "commit" {
commit, err := catfile.GetCommit(ctx, objectReader, git.Revision(tc.originalOid))
@@ -279,7 +254,7 @@ func TestFindTag_nestedTag(t *testing.T) {
resp, err := client.FindTag(ctx, rpcRequest)
require.NoError(t, err)
- require.Equal(t, expectedTag, resp.GetTag())
+ testhelper.ProtoEqual(t, expectedTag, resp.GetTag())
})
}
}