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-10-11 13:39:25 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2021-10-11 13:39:25 +0300
commit6bd63aba12b36aa4410bf6e238b86aec68d939d9 (patch)
treee2639be850bbe71026100240cd79f0eebf00a618
parent83b2e595b465160c197bbafa7fe7e89849536099 (diff)
parent0dd69b566283fe4c238b5363acacc972e49d6d24 (diff)
Merge branch 'pks-operations-merge-eof-flakiness' into 'master'
operations: Fix flakiness due to EOF timeout Closes #3830 See merge request gitlab-org/gitaly!3955
-rw-r--r--internal/gitaly/service/operations/merge_test.go25
-rw-r--r--internal/testhelper/stream.go30
2 files changed, 9 insertions, 46 deletions
diff --git a/internal/gitaly/service/operations/merge_test.go b/internal/gitaly/service/operations/merge_test.go
index b5b2fe29a..ad6b79794 100644
--- a/internal/gitaly/service/operations/merge_test.go
+++ b/internal/gitaly/service/operations/merge_test.go
@@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
+ "io"
"os"
"os/exec"
"regexp"
@@ -91,10 +92,8 @@ func TestUserMergeBranch_successful(t *testing.T) {
secondResponse, err := mergeBidi.Recv()
require.NoError(t, err, "receive second response")
- testhelper.ReceiveEOFWithTimeout(t, func() error {
- _, err = mergeBidi.Recv()
- return err
- })
+ _, err = mergeBidi.Recv()
+ require.Equal(t, io.EOF, err)
commit, err := repo.ReadCommit(ctx, git.Revision(mergeBranchName))
require.NoError(t, err, "look up git commit after call has finished")
@@ -211,10 +210,8 @@ func TestUserMergeBranch_stableMergeIDs(t *testing.T) {
require.NoError(t, err, "receive second response")
require.Equal(t, expectedMergeID, response.BranchUpdate.CommitId)
- testhelper.ReceiveEOFWithTimeout(t, func() error {
- _, err = mergeBidi.Recv()
- return err
- })
+ _, err = mergeBidi.Recv()
+ require.Equal(t, io.EOF, err)
commit, err := repo.ReadCommit(ctx, git.Revision(mergeBranchName))
require.NoError(t, err, "look up git commit after call has finished")
@@ -410,10 +407,8 @@ func TestUserMergeBranch_ambiguousReference(t *testing.T) {
response, err := merge.Recv()
require.NoError(t, err, "receive second response")
- testhelper.ReceiveEOFWithTimeout(t, func() error {
- _, err = merge.Recv()
- return err
- })
+ _, err = merge.Recv()
+ require.Equal(t, io.EOF, err)
commit, err := repo.ReadCommit(ctx, git.Revision("refs/heads/"+mergeBranchName))
require.NoError(t, err, "look up git commit after call has finished")
@@ -469,10 +464,8 @@ func TestUserMergeBranch_failingHooks(t *testing.T) {
require.NoError(t, err, "receive second response")
require.Contains(t, secondResponse.PreReceiveError, "failure")
- testhelper.ReceiveEOFWithTimeout(t, func() error {
- _, err = mergeBidi.Recv()
- return err
- })
+ _, err = mergeBidi.Recv()
+ require.Equal(t, io.EOF, err)
}
currentBranchHead := gittest.Exec(t, cfg, "-C", repoPath, "rev-parse", mergeBranchName)
diff --git a/internal/testhelper/stream.go b/internal/testhelper/stream.go
deleted file mode 100644
index b625a48a0..000000000
--- a/internal/testhelper/stream.go
+++ /dev/null
@@ -1,30 +0,0 @@
-package testhelper
-
-import (
- "fmt"
- "io"
- "testing"
- "time"
-
- "github.com/stretchr/testify/require"
-)
-
-// ReceiveEOFWithTimeout reads to the end of the stream and will throw an
-// error if a deadlock is suspected
-func ReceiveEOFWithTimeout(t testing.TB, errorFunc func() error) {
- errCh := make(chan error, 1)
- go func() {
- errCh <- errorFunc()
- }()
-
- var err error
- select {
- case err = <-errCh:
- case <-time.After(1 * time.Second):
- err = fmt.Errorf("timed out waiting for EOF")
- }
-
- if err != nil {
- require.Equal(t, io.EOF, err)
- }
-}