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-03-15 16:30:26 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2021-03-15 16:30:26 +0300
commit0fc3e28a00fe119679257707dadfb1b9e3354b28 (patch)
treeb5e2eceac30fb9623e56b834ce0152c6b12cc4b6
parent64df0089888030a60286ac176071d62a45684e9c (diff)
parenta8a3ee6b046f7ec850f2a1752d850cd056f59880 (diff)
Merge branch 'smh-remove-deferrer' into 'master'
Replace testhelper.Deferrer with t.Cleanup See merge request gitlab-org/gitaly!3250
-rw-r--r--internal/cache/cachedb_test.go3
-rw-r--r--internal/cache/walker_test.go6
-rw-r--r--internal/git/catfile/batch_test.go32
-rw-r--r--internal/git/command_factory_test.go6
-rw-r--r--internal/git/hooks_options_test.go3
-rw-r--r--internal/git/hooks_payload_test.go6
-rw-r--r--internal/git/housekeeping/housekeeping_test.go25
-rw-r--r--internal/git/localrepo/config_test.go23
-rw-r--r--internal/git/localrepo/objects_test.go35
-rw-r--r--internal/git/localrepo/refs_test.go21
-rw-r--r--internal/git/localrepo/remote_test.go37
-rw-r--r--internal/git/localrepo/repo_test.go14
-rw-r--r--internal/git/log/commit_test.go17
-rw-r--r--internal/git/log/tag_test.go3
-rw-r--r--internal/git/objectpool/clone_test.go19
-rw-r--r--internal/git/objectpool/fetch_test.go12
-rw-r--r--internal/git/objectpool/link_test.go12
-rw-r--r--internal/git/objectpool/pool_test.go18
-rw-r--r--internal/git/reference_test.go3
-rw-r--r--internal/git/remoterepo/repository_test.go3
-rw-r--r--internal/git/stats/analyzehttp_test.go6
-rw-r--r--internal/git/stats/git_test.go3
-rw-r--r--internal/git/stats/profile_test.go3
-rw-r--r--internal/git/updateref/updateref_test.go32
-rw-r--r--internal/gitaly/hook/custom_test.go18
-rw-r--r--internal/gitaly/hook/postreceive_test.go6
-rw-r--r--internal/gitaly/hook/prereceive_test.go6
-rw-r--r--internal/gitaly/hook/transactions_test.go6
-rw-r--r--internal/gitaly/hook/update_test.go3
-rw-r--r--internal/gitaly/linguist/linguist_test.go9
-rw-r--r--internal/gitaly/rubyserver/concurrency_test.go3
-rw-r--r--internal/gitaly/rubyserver/health_test.go5
-rw-r--r--internal/gitaly/rubyserver/proxy_test.go9
-rw-r--r--internal/gitaly/rubyserver/rubyserver_test.go3
-rw-r--r--internal/gitaly/service/objectpool/alternates_test.go12
-rw-r--r--internal/gitaly/service/objectpool/create_test.go9
-rw-r--r--internal/gitaly/service/objectpool/fetch_into_object_pool_test.go9
-rw-r--r--internal/gitaly/service/objectpool/get_test.go9
-rw-r--r--internal/gitaly/service/objectpool/link_test.go18
-rw-r--r--internal/gitaly/service/objectpool/reduplicate_test.go3
-rw-r--r--internal/gitaly/service/objectpool/testhelper_test.go15
-rw-r--r--internal/gitaly/service/smarthttp/inforefs_test.go27
-rw-r--r--internal/gitaly/service/smarthttp/receive_pack_test.go29
-rw-r--r--internal/gitaly/service/smarthttp/upload_pack_test.go23
-rw-r--r--internal/gitaly/transaction/manager_test.go6
-rw-r--r--internal/middleware/commandstatshandler/commandstatshandler_test.go3
-rw-r--r--internal/praefect/server_test.go3
-rw-r--r--internal/testhelper/deferrer.go38
-rw-r--r--internal/testhelper/deferrer_test.go83
-rw-r--r--internal/testhelper/testcfg/gitaly_builder.go21
50 files changed, 197 insertions, 521 deletions
diff --git a/internal/cache/cachedb_test.go b/internal/cache/cachedb_test.go
index 9ee64c33b..184305600 100644
--- a/internal/cache/cachedb_test.go
+++ b/internal/cache/cachedb_test.go
@@ -32,8 +32,7 @@ func testMain(m *testing.M) int {
}
func TestStreamDBNaiveKeyer(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
testRepo1, _, _ := gittest.CloneRepoAtStorage(t, cfg.Storages[0], "repository-1")
testRepo2, _, _ := gittest.CloneRepoAtStorage(t, cfg.Storages[0], "repository-2")
diff --git a/internal/cache/walker_test.go b/internal/cache/walker_test.go
index 6c2a35174..1c7139ba0 100644
--- a/internal/cache/walker_test.go
+++ b/internal/cache/walker_test.go
@@ -16,8 +16,7 @@ import (
)
func TestDiskCacheObjectWalker(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
var shouldExist, shouldNotExist []string
@@ -71,8 +70,7 @@ func TestDiskCacheObjectWalker(t *testing.T) {
}
func TestDiskCacheInitialClear(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
cacheDir := tempdir.CacheDir(cfg.Storages[0])
diff --git a/internal/git/catfile/batch_test.go b/internal/git/catfile/batch_test.go
index 448382fbe..570e878d5 100644
--- a/internal/git/catfile/batch_test.go
+++ b/internal/git/catfile/batch_test.go
@@ -21,28 +21,22 @@ import (
"google.golang.org/grpc/metadata"
)
-func setupBatch(t *testing.T, ctx context.Context) (Batch, testhelper.Cleanup) {
+func setupBatch(t *testing.T, ctx context.Context) Batch {
t.Helper()
- var deferrer testhelper.Deferrer
- defer deferrer.Call()
-
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- deferrer.Add(cleanup)
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
c, err := New(ctx, git.NewExecCommandFactory(cfg), repo)
require.NoError(t, err)
- cleaner := deferrer.Relocate()
- return c, cleaner.Call
+ return c
}
func TestInfo(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- c, cleanup := setupBatch(t, ctx)
- defer cleanup()
+ c := setupBatch(t, ctx)
testCases := []struct {
desc string
@@ -74,8 +68,7 @@ func TestBlob(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- c, cleanup := setupBatch(t, ctx)
- defer cleanup()
+ c := setupBatch(t, ctx)
gitignoreBytes, err := ioutil.ReadFile("testdata/blob-dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82")
require.NoError(t, err)
@@ -138,8 +131,7 @@ func TestCommit(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- c, cleanup := setupBatch(t, ctx)
- defer cleanup()
+ c := setupBatch(t, ctx)
commitBytes, err := ioutil.ReadFile("testdata/commit-e63f41fe459e62e1228fcef60d7189127aeba95a")
require.NoError(t, err)
@@ -173,8 +165,7 @@ func TestTag(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- c, cleanup := setupBatch(t, ctx)
- defer cleanup()
+ c := setupBatch(t, ctx)
tagBytes, err := ioutil.ReadFile("testdata/tag-a509fa67c27202a2bc9dd5e014b4af7e6063ac76")
require.NoError(t, err)
@@ -237,8 +228,7 @@ func TestTree(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- c, cleanup := setupBatch(t, ctx)
- defer cleanup()
+ c := setupBatch(t, ctx)
treeBytes, err := ioutil.ReadFile("testdata/tree-7e2f26d033ee47cd0745649d1a28277c56197921")
require.NoError(t, err)
@@ -301,8 +291,7 @@ func TestRepeatedCalls(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- c, cleanup := setupBatch(t, ctx)
- defer cleanup()
+ c := setupBatch(t, ctx)
treeOid := git.Revision("7e2f26d033ee47cd0745649d1a28277c56197921")
treeBytes, err := ioutil.ReadFile("testdata/tree-7e2f26d033ee47cd0745649d1a28277c56197921")
@@ -360,8 +349,7 @@ func TestSpawnFailure(t *testing.T) {
ctx1, cancel1 := testhelper.Context()
defer cancel1()
- cfg, testRepo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, testRepo, _ := testcfg.BuildWithRepo(t)
gitCmdFactory := git.NewExecCommandFactory(cfg)
diff --git a/internal/git/command_factory_test.go b/internal/git/command_factory_test.go
index 6d00eff9d..127936180 100644
--- a/internal/git/command_factory_test.go
+++ b/internal/git/command_factory_test.go
@@ -16,8 +16,7 @@ import (
)
func TestGitCommandProxy(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
requestReceived := false
@@ -49,8 +48,7 @@ func TestGitCommandProxy(t *testing.T) {
}
func TestExecCommandFactory_NewWithDir(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
gitCmdFactory := git.NewExecCommandFactory(cfg)
diff --git a/internal/git/hooks_options_test.go b/internal/git/hooks_options_test.go
index a9feb3367..cb3d0b453 100644
--- a/internal/git/hooks_options_test.go
+++ b/internal/git/hooks_options_test.go
@@ -12,8 +12,7 @@ import (
)
func TestWithRefHook(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
ctx, cancel := testhelper.Context()
defer cancel()
diff --git a/internal/git/hooks_payload_test.go b/internal/git/hooks_payload_test.go
index a19ef5797..6baba418a 100644
--- a/internal/git/hooks_payload_test.go
+++ b/internal/git/hooks_payload_test.go
@@ -11,8 +11,7 @@ import (
)
func TestHooksPayload(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
tx := metadata.Transaction{
ID: 1234,
@@ -123,8 +122,7 @@ func TestHooksPayload(t *testing.T) {
})
t.Run("payload with fallback git path", func(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
cfg.Git.BinPath = ""
env, err := git.NewHooksPayload(cfg, repo, nil, nil, nil, git.ReceivePackHooks).Env()
diff --git a/internal/git/housekeeping/housekeeping_test.go b/internal/git/housekeeping/housekeeping_test.go
index ffdd068a7..3e8457294 100644
--- a/internal/git/housekeeping/housekeeping_test.go
+++ b/internal/git/housekeeping/housekeeping_test.go
@@ -200,8 +200,7 @@ func TestPerform(t *testing.T) {
for _, tc := range testcases {
t.Run(tc.name, func(t *testing.T) {
- cfg, repoProto, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repoProto, repoPath := testcfg.BuildWithRepo(t)
repo := localrepo.New(git.NewExecCommandFactory(cfg), repoProto, cfg)
ctx, cancel := testhelper.Context()
@@ -287,8 +286,7 @@ func TestPerform_references(t *testing.T) {
for _, tc := range testcases {
t.Run(tc.desc, func(t *testing.T) {
- cfg, repoProto, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repoProto, repoPath := testcfg.BuildWithRepo(t)
repo := localrepo.New(git.NewExecCommandFactory(cfg), repoProto, cfg)
for _, ref := range tc.refs {
@@ -396,8 +394,7 @@ func TestPerform_emptyRefDirs(t *testing.T) {
for _, tc := range testcases {
t.Run(tc.name, func(t *testing.T) {
- cfg, repoProto, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repoProto, repoPath := testcfg.BuildWithRepo(t)
repo := localrepo.New(git.NewExecCommandFactory(cfg), repoProto, cfg)
ctx, cancel := testhelper.Context()
@@ -431,8 +428,7 @@ func testPerformWithSpecificFile(t *testing.T, file string, finder staleFileFind
ctx, cancel := testhelper.Context()
defer cancel()
- cfg, repoProto, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repoProto, repoPath := testcfg.BuildWithRepo(t)
repo := localrepo.New(git.NewExecCommandFactory(cfg), repoProto, cfg)
for _, tc := range []struct {
@@ -546,8 +542,7 @@ func TestPerform_referenceLocks(t *testing.T) {
},
} {
t.Run(tc.desc, func(t *testing.T) {
- cfg, repoProto, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repoProto, repoPath := testcfg.BuildWithRepo(t)
repo := localrepo.New(git.NewExecCommandFactory(cfg), repoProto, cfg)
for _, e := range tc.entries {
@@ -650,23 +645,19 @@ func TestShouldRemoveTemporaryObject(t *testing.T) {
}
func TestPerformRepoDoesNotExist(t *testing.T) {
- cfg, repoProto, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repoProto, repoPath := testcfg.BuildWithRepo(t)
repo := localrepo.New(git.NewExecCommandFactory(cfg), repoProto, cfg)
ctx, cancel := testhelper.Context()
defer cancel()
- // We call `cleanup()` early to make sure the repository doesn't exist anymore in an
- // otherwise well-configured storage.
- cleanup()
+ require.NoError(t, os.RemoveAll(repoPath))
require.NoError(t, Perform(ctx, repo))
}
func TestPerform_UnsetConfiguration(t *testing.T) {
- cfg, repoProto, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repoProto, _ := testcfg.BuildWithRepo(t)
repo := localrepo.New(git.NewExecCommandFactory(cfg), repoProto, cfg)
ctx, cancel := testhelper.Context()
diff --git a/internal/git/localrepo/config_test.go b/internal/git/localrepo/config_test.go
index 67cb9d92e..f945c4e6a 100644
--- a/internal/git/localrepo/config_test.go
+++ b/internal/git/localrepo/config_test.go
@@ -16,22 +16,16 @@ import (
"gitlab.com/gitlab-org/gitaly/internal/testhelper/testcfg"
)
-func setupRepoConfig(t *testing.T) (Config, string, func()) {
+func setupRepoConfig(t *testing.T) (Config, string) {
t.Helper()
- var deferrer testhelper.Deferrer
- defer deferrer.Call()
-
- cfg, cleanup := testcfg.Build(t)
- deferrer.Add(cleanup)
+ cfg := testcfg.Build(t)
repoProto, repoPath, cleanup := gittest.InitBareRepoAt(t, cfg.Storages[0])
- deferrer.Add(cleanup)
+ t.Cleanup(cleanup)
repo := New(git.NewExecCommandFactory(cfg), repoProto, cfg)
-
- cleaner := deferrer.Relocate()
- return repo.Config(), repoPath, cleaner.Call
+ return repo.Config(), repoPath
}
func TestRepo_Config(t *testing.T) {
@@ -69,8 +63,7 @@ func TestConfig_Add(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repoConfig, repoPath, cleanup := setupRepoConfig(t)
- defer cleanup()
+ repoConfig, repoPath := setupRepoConfig(t)
t.Run("ok", func(t *testing.T) {
require.NoError(t, repoConfig.Add(ctx, "key.one", "1", git.ConfigAddOpts{}))
@@ -164,8 +157,7 @@ func TestConfig_GetRegexp(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repoConfig, repoPath, cleanup := setupRepoConfig(t)
- defer cleanup()
+ repoConfig, repoPath := setupRepoConfig(t)
t.Run("ok", func(t *testing.T) {
testhelper.MustRunCommand(t, nil, "git", "-C", repoPath, "config", "--add", "key.one", "one")
@@ -272,8 +264,7 @@ func TestConfig_UnsetAll(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repoConfig, repoPath, cleanup := setupRepoConfig(t)
- defer cleanup()
+ repoConfig, repoPath := setupRepoConfig(t)
t.Run("unset single value", func(t *testing.T) {
testhelper.MustRunCommand(t, nil, "git", "-C", repoPath, "config", "--add", "key.one", "key-one")
diff --git a/internal/git/localrepo/objects_test.go b/internal/git/localrepo/objects_test.go
index ef293ef93..a25305ba7 100644
--- a/internal/git/localrepo/objects_test.go
+++ b/internal/git/localrepo/objects_test.go
@@ -21,28 +21,22 @@ import (
"gitlab.com/gitlab-org/gitaly/proto/go/gitalypb"
)
-func setupRepo(t *testing.T, bare bool) (*Repo, string, func()) {
+func setupRepo(t *testing.T, bare bool) (*Repo, string) {
t.Helper()
- var deferrer testhelper.Deferrer
- defer deferrer.Call()
-
- cfg, cleanup := testcfg.Build(t)
- deferrer.Add(cleanup)
+ cfg := testcfg.Build(t)
var repoProto *gitalypb.Repository
var repoPath string
+ var repoCleanUp func()
if bare {
- repoProto, repoPath, cleanup = gittest.InitBareRepoAt(t, cfg.Storages[0])
+ repoProto, repoPath, repoCleanUp = gittest.InitBareRepoAt(t, cfg.Storages[0])
} else {
- repoProto, repoPath, cleanup = gittest.CloneRepoAtStorage(t, cfg.Storages[0], t.Name())
+ repoProto, repoPath, repoCleanUp = gittest.CloneRepoAtStorage(t, cfg.Storages[0], t.Name())
}
- deferrer.Add(cleanup)
-
- repo := New(git.NewExecCommandFactory(cfg), repoProto, cfg)
+ t.Cleanup(repoCleanUp)
- cleaner := deferrer.Relocate()
- return repo, repoPath, cleaner.Call
+ return New(git.NewExecCommandFactory(cfg), repoProto, cfg), repoPath
}
type ReaderFunc func([]byte) (int, error)
@@ -53,8 +47,7 @@ func TestRepo_WriteBlob(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repo, repoPath, cleanup := setupRepo(t, true)
- defer cleanup()
+ repo, repoPath := setupRepo(t, true)
for _, tc := range []struct {
desc string
@@ -177,8 +170,7 @@ func TestRepo_WriteTag(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repo, repoPath, cleanup := setupRepo(t, false)
- defer cleanup()
+ repo, repoPath := setupRepo(t, false)
for _, tc := range []struct {
desc string
@@ -226,8 +218,7 @@ func TestRepo_ReadObject(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repo, _, cleanup := setupRepo(t, false)
- defer cleanup()
+ repo, _ := setupRepo(t, false)
for _, tc := range []struct {
desc string
@@ -259,8 +250,7 @@ func TestRepo_ReadCommit(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repo, _, cleanup := setupRepo(t, false)
- defer cleanup()
+ repo, _ := setupRepo(t, false)
for _, tc := range []struct {
desc string
@@ -398,8 +388,7 @@ func TestRepo_IsAncestor(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repo, _, cleanup := setupRepo(t, false)
- defer cleanup()
+ repo, _ := setupRepo(t, false)
for _, tc := range []struct {
desc string
diff --git a/internal/git/localrepo/refs_test.go b/internal/git/localrepo/refs_test.go
index 89f0ff36d..cf91c7b65 100644
--- a/internal/git/localrepo/refs_test.go
+++ b/internal/git/localrepo/refs_test.go
@@ -22,8 +22,7 @@ func TestRepo_ContainsRef(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repo, _, cleanup := setupRepo(t, false)
- defer cleanup()
+ repo, _ := setupRepo(t, false)
testcases := []struct {
desc string
@@ -60,8 +59,7 @@ func TestRepo_GetReference(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repo, _, cleanup := setupRepo(t, false)
- defer cleanup()
+ repo, _ := setupRepo(t, false)
testcases := []struct {
desc string
@@ -109,8 +107,7 @@ func TestRepo_GetReferenceWithAmbiguousRefs(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repo, _, cleanup := setupRepo(t, false)
- defer cleanup()
+ repo, _ := setupRepo(t, false)
// Disable hooks
repo.cfg.Ruby.Dir = "/var/empty"
@@ -146,8 +143,7 @@ func TestRepo_GetReferences(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repo, _, cleanup := setupRepo(t, false)
- defer cleanup()
+ repo, _ := setupRepo(t, false)
masterBranch, err := repo.GetReference(ctx, "refs/heads/master")
require.NoError(t, err)
@@ -216,8 +212,7 @@ func TestRepo_GetRemoteReferences(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- cfg, clean := testcfg.Build(t)
- defer clean()
+ cfg := testcfg.Build(t)
storagePath, ok := cfg.StoragePath("default")
require.True(t, ok)
@@ -288,8 +283,7 @@ func TestRepo_GetBranches(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repo, _, cleanup := setupRepo(t, false)
- defer cleanup()
+ repo, _ := setupRepo(t, false)
refs, err := repo.GetBranches(ctx)
require.NoError(t, err)
@@ -300,8 +294,7 @@ func TestRepo_UpdateRef(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- repo, _, cleanup := setupRepo(t, false)
- defer cleanup()
+ repo, _ := setupRepo(t, false)
// Disable hooks
repo.cfg.Ruby.Dir = "/var/empty"
diff --git a/internal/git/localrepo/remote_test.go b/internal/git/localrepo/remote_test.go
index 009cf205a..453d0b045 100644
--- a/internal/git/localrepo/remote_test.go
+++ b/internal/git/localrepo/remote_test.go
@@ -19,29 +19,24 @@ import (
"gitlab.com/gitlab-org/gitaly/proto/go/gitalypb"
)
-func setupRepoRemote(t *testing.T, bare bool) (Remote, string, func()) {
+func setupRepoRemote(t *testing.T, bare bool) (Remote, string) {
t.Helper()
- var deferrer testhelper.Deferrer
- defer deferrer.Call()
-
- cfg, cleanup := testcfg.Build(t)
- deferrer.Add(cleanup)
+ cfg := testcfg.Build(t)
cfg.Ruby.Dir = "/var/empty"
var repoProto *gitalypb.Repository
var repoPath string
+ var repoCleanUp func()
if bare {
- repoProto, repoPath, cleanup = gittest.InitBareRepoAt(t, cfg.Storages[0])
+ repoProto, repoPath, repoCleanUp = gittest.InitBareRepoAt(t, cfg.Storages[0])
} else {
- repoProto, repoPath, cleanup = gittest.CloneRepoAtStorage(t, cfg.Storages[0], t.Name())
+ repoProto, repoPath, repoCleanUp = gittest.CloneRepoAtStorage(t, cfg.Storages[0], t.Name())
}
- deferrer.Add(cleanup)
- repo := New(git.NewExecCommandFactory(cfg), repoProto, cfg)
+ t.Cleanup(repoCleanUp)
- cleaner := deferrer.Relocate()
- return repo.Remote(), repoPath, cleaner.Call
+ return New(git.NewExecCommandFactory(cfg), repoProto, cfg).Remote(), repoPath
}
func TestRepo_Remote(t *testing.T) {
@@ -95,8 +90,7 @@ func TestRemote_Add(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- remote, repoPath, cleanup := setupRepoRemote(t, false)
- defer cleanup()
+ remote, repoPath := setupRepoRemote(t, false)
testhelper.MustRunCommand(t, nil, "git", "-C", repoPath, "remote", "remove", "origin")
@@ -170,8 +164,7 @@ func TestRemote_Remove(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- remote, repoPath, cleanup := setupRepoRemote(t, true)
- defer cleanup()
+ remote, repoPath := setupRepoRemote(t, true)
t.Run("ok", func(t *testing.T) {
testhelper.MustRunCommand(t, nil, "git", "-C", repoPath, "remote", "add", "first", "http://some.com.git")
@@ -195,8 +188,7 @@ func TestRemote_Remove(t *testing.T) {
})
t.Run("don't remove local branches", func(t *testing.T) {
- remote, repoPath, cleanup := setupRepoRemote(t, false)
- defer cleanup()
+ remote, repoPath := setupRepoRemote(t, false)
// configure remote as fetch mirror
testhelper.MustRunCommand(t, nil, "git", "-C", repoPath, "config", "remote.origin.fetch", "+refs/*:refs/*")
@@ -218,8 +210,7 @@ func TestRemote_Exists(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- remote, _, cleanup := setupRepoRemote(t, false)
- defer cleanup()
+ remote, _ := setupRepoRemote(t, false)
found, err := remote.Exists(ctx, "origin")
require.NoError(t, err)
@@ -256,8 +247,7 @@ func TestRemote_SetURL(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- remote, repoPath, cleanup := setupRepoRemote(t, true)
- defer cleanup()
+ remote, repoPath := setupRepoRemote(t, true)
t.Run("invalid argument", func(t *testing.T) {
for _, tc := range []struct {
@@ -310,8 +300,7 @@ func TestRepo_FetchRemote(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- remoteCmd, remoteRepoPath, cleanup := setupRepoRemote(t, false)
- defer cleanup()
+ remoteCmd, remoteRepoPath := setupRepoRemote(t, false)
cfg := remoteCmd.repo.cfg
initBareWithRemote := func(t *testing.T, remote string) (*Repo, string, testhelper.Cleanup) {
diff --git a/internal/git/localrepo/repo_test.go b/internal/git/localrepo/repo_test.go
index 0f93fa947..67da2ac34 100644
--- a/internal/git/localrepo/repo_test.go
+++ b/internal/git/localrepo/repo_test.go
@@ -14,8 +14,7 @@ import (
)
func TestRepo(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
gittest.TestRepository(t, cfg, func(t testing.TB, pbRepo *gitalypb.Repository) git.Repository {
t.Helper()
@@ -25,8 +24,7 @@ func TestRepo(t *testing.T) {
func TestRepo_Path(t *testing.T) {
t.Run("valid repository", func(t *testing.T) {
- cfg, repoProto, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repoProto, repoPath := testcfg.BuildWithRepo(t)
repo := New(git.NewExecCommandFactory(cfg), repoProto, cfg)
path, err := repo.Path()
@@ -35,19 +33,17 @@ func TestRepo_Path(t *testing.T) {
})
t.Run("deleted repository", func(t *testing.T) {
- cfg, repoProto, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repoProto, repoPath := testcfg.BuildWithRepo(t)
repo := New(git.NewExecCommandFactory(cfg), repoProto, cfg)
- cleanup()
+ require.NoError(t, os.RemoveAll(repoPath))
_, err := repo.Path()
require.Equal(t, codes.NotFound, helper.GrpcCode(err))
})
t.Run("non-git repository", func(t *testing.T) {
- cfg, repoProto, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repoProto, repoPath := testcfg.BuildWithRepo(t)
repo := New(git.NewExecCommandFactory(cfg), repoProto, cfg)
// Recreate the repository as a simple empty directory to simulate
diff --git a/internal/git/log/commit_test.go b/internal/git/log/commit_test.go
index f9b9580dc..918308dde 100644
--- a/internal/git/log/commit_test.go
+++ b/internal/git/log/commit_test.go
@@ -28,20 +28,15 @@ func testMain(m *testing.M) int {
return m.Run()
}
-func setupBatch(t *testing.T, ctx context.Context) (config.Cfg, catfile.Batch, *gitalypb.Repository, testhelper.Cleanup) {
+func setupBatch(t *testing.T, ctx context.Context) (config.Cfg, catfile.Batch, *gitalypb.Repository) {
t.Helper()
- var deferrer testhelper.Deferrer
- defer deferrer.Call()
-
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- deferrer.Add(cleanup)
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
c, err := catfile.New(ctx, git.NewExecCommandFactory(cfg), repo)
require.NoError(t, err)
- cleaner := deferrer.Relocate()
- return cfg, c, repo, cleaner.Call
+ return cfg, c, repo
}
func TestParseRawCommit(t *testing.T) {
@@ -141,8 +136,7 @@ func TestGetCommitCatfile(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- _, c, _, cleanup := setupBatch(t, ctx)
- defer cleanup()
+ _, c, _ := setupBatch(t, ctx)
ctx = metadata.NewIncomingContext(ctx, metadata.MD{})
@@ -189,8 +183,7 @@ func TestGetCommitCatfileWithTrailers(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- cfg, c, testRepo, cleanup := setupBatch(t, ctx)
- defer cleanup()
+ cfg, c, testRepo := setupBatch(t, ctx)
ctx = metadata.NewIncomingContext(ctx, metadata.MD{})
diff --git a/internal/git/log/tag_test.go b/internal/git/log/tag_test.go
index 72801ea48..8065816a9 100644
--- a/internal/git/log/tag_test.go
+++ b/internal/git/log/tag_test.go
@@ -18,8 +18,7 @@ func TestGetTag(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- cfg, c, testRepo, cleanup := setupBatch(t, ctx)
- defer cleanup()
+ cfg, c, testRepo := setupBatch(t, ctx)
testRepoPath := filepath.Join(cfg.Storages[0].Path, testRepo.RelativePath)
diff --git a/internal/git/objectpool/clone_test.go b/internal/git/objectpool/clone_test.go
index 25f59eac8..4cd5b4c68 100644
--- a/internal/git/objectpool/clone_test.go
+++ b/internal/git/objectpool/clone_test.go
@@ -14,33 +14,27 @@ import (
"gitlab.com/gitlab-org/gitaly/proto/go/gitalypb"
)
-func setupObjectPool(t *testing.T) (*ObjectPool, *gitalypb.Repository, func()) {
+func setupObjectPool(t *testing.T) (*ObjectPool, *gitalypb.Repository) {
t.Helper()
- var deferrer testhelper.Deferrer
- defer deferrer.Call()
-
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- deferrer.Add(cleanup)
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
pool, err := NewObjectPool(cfg, config.NewLocator(cfg), git.NewExecCommandFactory(cfg), repo.GetStorageName(), gittest.NewObjectPoolName(t))
require.NoError(t, err)
- deferrer.Add(func() {
+ t.Cleanup(func() {
if err := pool.Remove(context.TODO()); err != nil {
panic(err)
}
})
- cleaner := deferrer.Relocate()
- return pool, repo, cleaner.Call
+ return pool, repo
}
func TestClone(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
require.NoError(t, pool.clone(ctx, testRepo))
defer pool.Remove(ctx)
@@ -53,8 +47,7 @@ func TestCloneExistingPool(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
require.NoError(t, pool.clone(ctx, testRepo))
defer pool.Remove(ctx)
diff --git a/internal/git/objectpool/fetch_test.go b/internal/git/objectpool/fetch_test.go
index bc3ae9834..229b84de7 100644
--- a/internal/git/objectpool/fetch_test.go
+++ b/internal/git/objectpool/fetch_test.go
@@ -17,8 +17,7 @@ func TestFetchFromOriginDangling(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
require.NoError(t, pool.FetchFromOrigin(ctx, testRepo), "seed pool")
@@ -86,8 +85,7 @@ func TestFetchFromOriginDeltaIslands(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
testRepoPath := filepath.Join(pool.cfg.Storages[0].Path, testRepo.RelativePath)
require.NoError(t, pool.FetchFromOrigin(ctx, testRepo), "seed pool")
@@ -110,8 +108,7 @@ func TestFetchFromOriginBitmapHashCache(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
require.NoError(t, pool.FetchFromOrigin(ctx, testRepo), "seed pool")
@@ -136,8 +133,7 @@ func TestFetchFromOriginRefUpdates(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
testRepoPath := filepath.Join(pool.cfg.Storages[0].Path, testRepo.RelativePath)
poolPath := pool.FullPath()
diff --git a/internal/git/objectpool/link_test.go b/internal/git/objectpool/link_test.go
index 08fe1f08c..faa8dd1f7 100644
--- a/internal/git/objectpool/link_test.go
+++ b/internal/git/objectpool/link_test.go
@@ -16,8 +16,7 @@ func TestLink(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
require.NoError(t, pool.Remove(ctx), "make sure pool does not exist prior to creation")
require.NoError(t, pool.Create(ctx, testRepo), "create pool")
@@ -50,8 +49,7 @@ func TestLinkRemoveBitmap(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
require.NoError(t, pool.Init(ctx))
testRepoPath := filepath.Join(pool.cfg.Storages[0].Path, testRepo.RelativePath)
@@ -96,8 +94,7 @@ func TestUnlink(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
require.Error(t, pool.Unlink(ctx, testRepo), "removing a non-existing pool should be an error")
@@ -114,8 +111,7 @@ func TestLinkAbsoluteLinkExists(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
testRepoPath := filepath.Join(pool.cfg.Storages[0].Path, testRepo.RelativePath)
diff --git a/internal/git/objectpool/pool_test.go b/internal/git/objectpool/pool_test.go
index 83a1f456c..54afde019 100644
--- a/internal/git/objectpool/pool_test.go
+++ b/internal/git/objectpool/pool_test.go
@@ -16,8 +16,7 @@ import (
)
func TestNewObjectPool(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
locator := config.NewLocator(cfg)
@@ -32,8 +31,7 @@ func TestNewFromRepoSuccess(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
require.NoError(t, pool.Create(ctx, testRepo))
require.NoError(t, pool.Link(ctx, testRepo))
@@ -45,8 +43,7 @@ func TestNewFromRepoSuccess(t *testing.T) {
}
func TestNewFromRepoNoObjectPool(t *testing.T) {
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
testRepoPath := filepath.Join(pool.cfg.Storages[0].Path, testRepo.RelativePath)
@@ -97,8 +94,7 @@ func TestCreate(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
testRepoPath := filepath.Join(pool.cfg.Storages[0].Path, testRepo.RelativePath)
@@ -131,8 +127,7 @@ func TestCreateSubDirsExist(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
err := pool.Create(ctx, testRepo)
require.NoError(t, err)
@@ -148,8 +143,7 @@ func TestRemove(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- pool, testRepo, cleanup := setupObjectPool(t)
- defer cleanup()
+ pool, testRepo := setupObjectPool(t)
err := pool.Create(ctx, testRepo)
require.NoError(t, err)
diff --git a/internal/git/reference_test.go b/internal/git/reference_test.go
index 6e9683338..47ce72e8c 100644
--- a/internal/git/reference_test.go
+++ b/internal/git/reference_test.go
@@ -10,8 +10,7 @@ import (
)
func TestCheckRefFormat(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
ctx, cancel := testhelper.Context()
defer cancel()
diff --git a/internal/git/remoterepo/repository_test.go b/internal/git/remoterepo/repository_test.go
index ca1996ede..01413e77b 100644
--- a/internal/git/remoterepo/repository_test.go
+++ b/internal/git/remoterepo/repository_test.go
@@ -16,8 +16,7 @@ import (
)
func TestRepository(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
serverSocketPath, cleanup := testserver.RunGitalyServer(t, cfg, nil)
defer cleanup()
diff --git a/internal/git/stats/analyzehttp_test.go b/internal/git/stats/analyzehttp_test.go
index ab5e22e93..d4971a34b 100644
--- a/internal/git/stats/analyzehttp_test.go
+++ b/internal/git/stats/analyzehttp_test.go
@@ -14,8 +14,7 @@ import (
)
func TestClone(t *testing.T) {
- cfg, _, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, _, repoPath := testcfg.BuildWithRepo(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -73,8 +72,7 @@ func TestClone(t *testing.T) {
}
func TestCloneWithAuth(t *testing.T) {
- cfg, _, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, _, repoPath := testcfg.BuildWithRepo(t)
ctx, cancel := testhelper.Context()
defer cancel()
diff --git a/internal/git/stats/git_test.go b/internal/git/stats/git_test.go
index 5a811b36a..bd9c76aa4 100644
--- a/internal/git/stats/git_test.go
+++ b/internal/git/stats/git_test.go
@@ -21,8 +21,7 @@ import (
)
func TestLogObjectInfo(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
repo1, repoPath1, cleanup1 := gittest.CloneRepoAtStorage(t, cfg.Storages[0], t.Name()+"-1")
defer cleanup1()
diff --git a/internal/git/stats/profile_test.go b/internal/git/stats/profile_test.go
index 6ba41c568..25d6102ec 100644
--- a/internal/git/stats/profile_test.go
+++ b/internal/git/stats/profile_test.go
@@ -14,8 +14,7 @@ import (
)
func TestRepositoryProfile(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
testRepo, testRepoPath, cleanup := gittest.InitBareRepoAt(t, cfg.Storages[0])
defer cleanup()
diff --git a/internal/git/updateref/updateref_test.go b/internal/git/updateref/updateref_test.go
index 4d46ee2c7..8da1d1664 100644
--- a/internal/git/updateref/updateref_test.go
+++ b/internal/git/updateref/updateref_test.go
@@ -28,14 +28,10 @@ func testMain(m *testing.M) int {
return m.Run()
}
-func setupUpdater(t *testing.T, ctx context.Context) (config.Cfg, *localrepo.Repo, *Updater, func()) {
+func setupUpdater(t *testing.T, ctx context.Context) (config.Cfg, *localrepo.Repo, *Updater) {
t.Helper()
- var deferrer testhelper.Deferrer
- defer deferrer.Call()
-
- cfg, protoRepo, _, cleanup := testcfg.BuildWithRepo(t)
- deferrer.Add(cleanup)
+ cfg, protoRepo, _ := testcfg.BuildWithRepo(t)
gitCmdFactory := git.NewExecCommandFactory(cfg)
repo := localrepo.New(gitCmdFactory, protoRepo, cfg)
@@ -43,16 +39,14 @@ func setupUpdater(t *testing.T, ctx context.Context) (config.Cfg, *localrepo.Rep
updater, err := New(ctx, cfg, gitCmdFactory, repo)
require.NoError(t, err)
- cleaner := deferrer.Relocate()
- return cfg, repo, updater, cleaner.Call
+ return cfg, repo, updater
}
func TestCreate(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- _, repo, updater, cleanup := setupUpdater(t, ctx)
- defer cleanup()
+ _, repo, updater := setupUpdater(t, ctx)
headCommit, err := repo.ReadCommit(ctx, "HEAD")
require.NoError(t, err)
@@ -73,8 +67,7 @@ func TestUpdate(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- _, repo, updater, cleanup := setupUpdater(t, ctx)
- defer cleanup()
+ _, repo, updater := setupUpdater(t, ctx)
headCommit, err := repo.ReadCommit(ctx, "HEAD")
require.NoError(t, err)
@@ -110,8 +103,7 @@ func TestDelete(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- _, repo, updater, cleanup := setupUpdater(t, ctx)
- defer cleanup()
+ _, repo, updater := setupUpdater(t, ctx)
ref := git.ReferenceName("refs/heads/feature")
@@ -127,8 +119,7 @@ func TestBulkOperation(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- _, repo, updater, cleanup := setupUpdater(t, ctx)
- defer cleanup()
+ _, repo, updater := setupUpdater(t, ctx)
headCommit, err := repo.ReadCommit(ctx, "HEAD")
require.NoError(t, err)
@@ -149,8 +140,7 @@ func TestContextCancelAbortsRefChanges(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- cfg, repo, _, cleanup := setupUpdater(t, ctx)
- defer cleanup()
+ cfg, repo, _ := setupUpdater(t, ctx)
headCommit, err := repo.ReadCommit(ctx, "HEAD")
require.NoError(t, err)
@@ -176,8 +166,7 @@ func TestUpdater_closingStdinAbortsChanges(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- _, repo, updater, cleanup := setupUpdater(t, ctx)
- defer cleanup()
+ _, repo, updater := setupUpdater(t, ctx)
headCommit, err := repo.ReadCommit(ctx, "HEAD")
require.NoError(t, err)
@@ -203,8 +192,7 @@ func TestUpdater_capturesStderr(t *testing.T) {
ctx, cancel := testhelper.Context()
defer cancel()
- _, _, updater, cleanup := setupUpdater(t, ctx)
- defer cleanup()
+ _, _, updater := setupUpdater(t, ctx)
ref := "refs/heads/a"
newValue := strings.Repeat("1", 40)
diff --git a/internal/gitaly/hook/custom_test.go b/internal/gitaly/hook/custom_test.go
index d7fb309e5..f466638ef 100644
--- a/internal/gitaly/hook/custom_test.go
+++ b/internal/gitaly/hook/custom_test.go
@@ -51,8 +51,7 @@ echo "$0"
exit 0`)
func TestCustomHooksSuccess(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
testCases := []struct {
hookName string
@@ -103,8 +102,7 @@ func TestCustomHooksSuccess(t *testing.T) {
}
func TestCustomHookPartialFailure(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
globalCustomHooksDir, cleanup := testhelper.TempDir(t)
defer cleanup()
@@ -179,8 +177,7 @@ func TestCustomHookPartialFailure(t *testing.T) {
}
func TestCustomHooksMultipleHooks(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
globalCustomHooksDir, cleanup := testhelper.TempDir(t)
defer cleanup()
@@ -229,8 +226,7 @@ func TestCustomHooksMultipleHooks(t *testing.T) {
}
func TestCustomHooksWithSymlinks(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
globalCustomHooksDir, cleanup := testhelper.TempDir(t)
defer cleanup()
@@ -300,8 +296,7 @@ func TestCustomHooksWithSymlinks(t *testing.T) {
}
func TestMultilineStdin(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
globalCustomHooksDir, cleanup := testhelper.TempDir(t)
defer cleanup()
@@ -334,8 +329,7 @@ old3 new3 ref3
}
func TestMultipleScriptsStdin(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
globalCustomHooksDir, cleanup := testhelper.TempDir(t)
defer cleanup()
diff --git a/internal/gitaly/hook/postreceive_test.go b/internal/gitaly/hook/postreceive_test.go
index 8fececbbc..36071a883 100644
--- a/internal/gitaly/hook/postreceive_test.go
+++ b/internal/gitaly/hook/postreceive_test.go
@@ -61,8 +61,7 @@ func TestPrintAlert(t *testing.T) {
}
func TestPostReceive_customHook(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
hookManager := NewManager(config.NewLocator(cfg), transaction.NewManager(cfg), GitlabAPIStub, cfg)
@@ -243,8 +242,7 @@ func (m *postreceiveAPIMock) PostReceive(ctx context.Context, glRepository, glID
}
func TestPostReceive_gitlab(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
payload, err := git.NewHooksPayload(cfg, repo, nil, nil, &git.ReceiveHooksPayload{
UserID: "1234",
diff --git a/internal/gitaly/hook/prereceive_test.go b/internal/gitaly/hook/prereceive_test.go
index cdd7c482a..9ce4f7400 100644
--- a/internal/gitaly/hook/prereceive_test.go
+++ b/internal/gitaly/hook/prereceive_test.go
@@ -20,8 +20,7 @@ import (
)
func TestPrereceive_customHooks(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
hookManager := NewManager(config.NewLocator(cfg), transaction.NewManager(cfg), GitlabAPIStub, cfg)
@@ -205,8 +204,7 @@ func (m *prereceiveAPIMock) PostReceive(context.Context, string, string, string,
}
func TestPrereceive_gitlab(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
payload, err := git.NewHooksPayload(cfg, repo, nil, nil, &git.ReceiveHooksPayload{
UserID: "1234",
diff --git a/internal/gitaly/hook/transactions_test.go b/internal/gitaly/hook/transactions_test.go
index 40501bad8..97c4ec469 100644
--- a/internal/gitaly/hook/transactions_test.go
+++ b/internal/gitaly/hook/transactions_test.go
@@ -32,8 +32,7 @@ func (m *mockTransactionManager) Stop(ctx context.Context, tx metadata.Transacti
}
func TestHookManager_stopCalled(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
expectedTx := metadata.Transaction{
ID: 1234, Node: "primary", Primary: true,
@@ -129,8 +128,7 @@ func TestHookManager_stopCalled(t *testing.T) {
}
func TestHookManager_contextCancellationCancelsVote(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
mockTxMgr := mockTransactionManager{
vote: func(ctx context.Context, tx metadata.Transaction, praefect metadata.PraefectServer, vote []byte) error {
diff --git a/internal/gitaly/hook/update_test.go b/internal/gitaly/hook/update_test.go
index d76df4ae7..edddc0009 100644
--- a/internal/gitaly/hook/update_test.go
+++ b/internal/gitaly/hook/update_test.go
@@ -17,8 +17,7 @@ import (
)
func TestUpdate_customHooks(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
hookManager := NewManager(config.NewLocator(cfg), transaction.NewManager(cfg), GitlabAPIStub, cfg)
diff --git a/internal/gitaly/linguist/linguist_test.go b/internal/gitaly/linguist/linguist_test.go
index c523eee7b..58f10e81a 100644
--- a/internal/gitaly/linguist/linguist_test.go
+++ b/internal/gitaly/linguist/linguist_test.go
@@ -23,8 +23,7 @@ func testMain(m *testing.M) int {
}
func TestStatsUnmarshalJSONError(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -39,8 +38,7 @@ func TestStatsUnmarshalJSONError(t *testing.T) {
}
func TestLoadLanguages(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
colorMap = make(map[string]Language)
require.NoError(t, LoadColors(&cfg), "load colors")
@@ -49,8 +47,7 @@ func TestLoadLanguages(t *testing.T) {
}
func TestLoadLanguagesCustomPath(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
jsonPath, err := filepath.Abs("testdata/fake-languages.json")
require.NoError(t, err)
diff --git a/internal/gitaly/rubyserver/concurrency_test.go b/internal/gitaly/rubyserver/concurrency_test.go
index e316802f3..602337831 100644
--- a/internal/gitaly/rubyserver/concurrency_test.go
+++ b/internal/gitaly/rubyserver/concurrency_test.go
@@ -28,8 +28,7 @@ func waitPing(s *Server) error {
// This benchmark lets you see what happens when you throw a lot of
// concurrent traffic at gitaly-ruby.
func BenchmarkConcurrency(b *testing.B) {
- cfg, cleanup := testcfg.Build(b)
- defer cleanup()
+ cfg := testcfg.Build(b)
cfg.Ruby.NumWorkers = 2
diff --git a/internal/gitaly/rubyserver/health_test.go b/internal/gitaly/rubyserver/health_test.go
index 5bc3376c8..e228d9e6c 100644
--- a/internal/gitaly/rubyserver/health_test.go
+++ b/internal/gitaly/rubyserver/health_test.go
@@ -9,10 +9,7 @@ import (
)
func TestPingSuccess(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
-
- s := New(cfg)
+ s := New(testcfg.Build(t))
require.NoError(t, s.Start())
defer s.Stop()
diff --git a/internal/gitaly/rubyserver/proxy_test.go b/internal/gitaly/rubyserver/proxy_test.go
index f702ea778..31f61499c 100644
--- a/internal/gitaly/rubyserver/proxy_test.go
+++ b/internal/gitaly/rubyserver/proxy_test.go
@@ -11,8 +11,7 @@ import (
)
func TestSetHeadersBlocksUnknownMetadata(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -32,8 +31,7 @@ func TestSetHeadersBlocksUnknownMetadata(t *testing.T) {
}
func TestSetHeadersPreservesAllowlistedMetadata(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -52,8 +50,7 @@ func TestSetHeadersPreservesAllowlistedMetadata(t *testing.T) {
}
func TestRubyFeatureHeaders(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
ctx, cancel := testhelper.Context()
defer cancel()
diff --git a/internal/gitaly/rubyserver/rubyserver_test.go b/internal/gitaly/rubyserver/rubyserver_test.go
index e9e7e2724..d16c33aae 100644
--- a/internal/gitaly/rubyserver/rubyserver_test.go
+++ b/internal/gitaly/rubyserver/rubyserver_test.go
@@ -32,8 +32,7 @@ func TestStopSafe(t *testing.T) {
}
func TestSetHeaders(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
ctx, cancel := testhelper.Context()
defer cancel()
diff --git a/internal/gitaly/service/objectpool/alternates_test.go b/internal/gitaly/service/objectpool/alternates_test.go
index 4cbd3a954..d79983888 100644
--- a/internal/gitaly/service/objectpool/alternates_test.go
+++ b/internal/gitaly/service/objectpool/alternates_test.go
@@ -15,8 +15,7 @@ import (
)
func TestDisconnectGitAlternates(t *testing.T) {
- cfg, repo, repoPath, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, repoPath, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -59,8 +58,7 @@ func TestDisconnectGitAlternates(t *testing.T) {
}
func TestDisconnectGitAlternatesNoAlternates(t *testing.T) {
- _, repo, repoPath, locator, client, cleanup := setup(t)
- defer cleanup()
+ _, repo, repoPath, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -76,8 +74,7 @@ func TestDisconnectGitAlternatesNoAlternates(t *testing.T) {
}
func TestDisconnectGitAlternatesUnexpectedAlternates(t *testing.T) {
- cfg, _, _, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, _, _, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -112,8 +109,7 @@ func TestDisconnectGitAlternatesUnexpectedAlternates(t *testing.T) {
}
func TestRemoveAlternatesIfOk(t *testing.T) {
- cfg, repo, repoPath, locator, _, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, repoPath, locator, _ := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
diff --git a/internal/gitaly/service/objectpool/create_test.go b/internal/gitaly/service/objectpool/create_test.go
index be9753bf1..04f025000 100644
--- a/internal/gitaly/service/objectpool/create_test.go
+++ b/internal/gitaly/service/objectpool/create_test.go
@@ -17,8 +17,7 @@ import (
)
func TestCreate(t *testing.T) {
- cfg, repo, _, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, _, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -53,8 +52,7 @@ func TestCreate(t *testing.T) {
}
func TestUnsuccessfulCreate(t *testing.T) {
- cfg, repo, _, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, _, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -147,8 +145,7 @@ func TestUnsuccessfulCreate(t *testing.T) {
}
func TestDelete(t *testing.T) {
- cfg, repo, _, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, _, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
diff --git a/internal/gitaly/service/objectpool/fetch_into_object_pool_test.go b/internal/gitaly/service/objectpool/fetch_into_object_pool_test.go
index 479073770..2c8f79db7 100644
--- a/internal/gitaly/service/objectpool/fetch_into_object_pool_test.go
+++ b/internal/gitaly/service/objectpool/fetch_into_object_pool_test.go
@@ -27,8 +27,7 @@ import (
)
func TestFetchIntoObjectPool_Success(t *testing.T) {
- cfg, repo, repoPath, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, repoPath, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -82,8 +81,7 @@ func TestFetchIntoObjectPool_Success(t *testing.T) {
}
func TestFetchIntoObjectPool_hooksDisabled(t *testing.T) {
- cfg, repo, _, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, _, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -124,8 +122,7 @@ func TestFetchIntoObjectPool_CollectLogStatistics(t *testing.T) {
testhelper.NewTestLogger = tl
}(testhelper.NewTestLogger)
- cfg, repo, _, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, _, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
diff --git a/internal/gitaly/service/objectpool/get_test.go b/internal/gitaly/service/objectpool/get_test.go
index 59e8fb994..c2f3b375a 100644
--- a/internal/gitaly/service/objectpool/get_test.go
+++ b/internal/gitaly/service/objectpool/get_test.go
@@ -15,8 +15,7 @@ import (
)
func TestGetObjectPoolSuccess(t *testing.T) {
- cfg, repo, _, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, _, locator, client := setup(t)
relativePoolPath := gittest.NewObjectPoolName(t)
@@ -41,8 +40,7 @@ func TestGetObjectPoolSuccess(t *testing.T) {
}
func TestGetObjectPoolNoFile(t *testing.T) {
- _, repoo, _, _, client, cleanup := setup(t)
- defer cleanup()
+ _, repoo, _, _, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -56,8 +54,7 @@ func TestGetObjectPoolNoFile(t *testing.T) {
}
func TestGetObjectPoolBadFile(t *testing.T) {
- _, repo, repoPath, _, client, cleanup := setup(t)
- defer cleanup()
+ _, repo, repoPath, _, client := setup(t)
alternatesFilePath := filepath.Join(repoPath, "objects", "info", "alternates")
require.NoError(t, os.MkdirAll(filepath.Dir(alternatesFilePath), 0755))
diff --git a/internal/gitaly/service/objectpool/link_test.go b/internal/gitaly/service/objectpool/link_test.go
index fb9b7b060..ea29a763c 100644
--- a/internal/gitaly/service/objectpool/link_test.go
+++ b/internal/gitaly/service/objectpool/link_test.go
@@ -18,8 +18,7 @@ import (
)
func TestLink(t *testing.T) {
- cfg, repo, _, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, _, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -87,8 +86,7 @@ func TestLink(t *testing.T) {
}
func TestLinkIdempotent(t *testing.T) {
- cfg, repo, _, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, _, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -111,8 +109,7 @@ func TestLinkIdempotent(t *testing.T) {
}
func TestLinkNoClobber(t *testing.T) {
- cfg, repo, repoPath, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, repoPath, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -144,8 +141,7 @@ func TestLinkNoClobber(t *testing.T) {
}
func TestLinkNoPool(t *testing.T) {
- cfg, repo, _, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, _, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -170,8 +166,7 @@ func TestLinkNoPool(t *testing.T) {
}
func TestUnlink(t *testing.T) {
- cfg, repo, _, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, _, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
@@ -277,8 +272,7 @@ func TestUnlink(t *testing.T) {
}
func TestUnlinkIdempotent(t *testing.T) {
- cfg, repo, _, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, _, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
diff --git a/internal/gitaly/service/objectpool/reduplicate_test.go b/internal/gitaly/service/objectpool/reduplicate_test.go
index 75468d2af..735fc898d 100644
--- a/internal/gitaly/service/objectpool/reduplicate_test.go
+++ b/internal/gitaly/service/objectpool/reduplicate_test.go
@@ -13,8 +13,7 @@ import (
)
func TestReduplicate(t *testing.T) {
- cfg, repo, repoPath, locator, client, cleanup := setup(t)
- defer cleanup()
+ cfg, repo, repoPath, locator, client := setup(t)
ctx, cancel := testhelper.Context()
defer cancel()
diff --git a/internal/gitaly/service/objectpool/testhelper_test.go b/internal/gitaly/service/objectpool/testhelper_test.go
index 41cc5a12f..a787c546a 100644
--- a/internal/gitaly/service/objectpool/testhelper_test.go
+++ b/internal/gitaly/service/objectpool/testhelper_test.go
@@ -30,26 +30,21 @@ func testMain(m *testing.M) int {
return m.Run()
}
-func setup(t *testing.T) (config.Cfg, *gitalypb.Repository, string, storage.Locator, gitalypb.ObjectPoolServiceClient, testhelper.Cleanup) {
+func setup(t *testing.T) (config.Cfg, *gitalypb.Repository, string, storage.Locator, gitalypb.ObjectPoolServiceClient) {
t.Helper()
- var deferrer testhelper.Deferrer
- defer deferrer.Call()
-
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- deferrer.Add(cleanup)
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
testhelper.ConfigureGitalyHooksBin(t, cfg)
locator := config.NewLocator(cfg)
server, serverSocketPath := runObjectPoolServer(t, cfg, locator)
- deferrer.Add(server.Stop)
+ t.Cleanup(server.Stop)
client, conn := newObjectPoolClient(t, serverSocketPath)
- deferrer.Add(func() { conn.Close() })
+ t.Cleanup(func() { conn.Close() })
- closer := deferrer.Relocate()
- return cfg, repo, repoPath, locator, client, closer.Call
+ return cfg, repo, repoPath, locator, client
}
func runObjectPoolServer(t *testing.T, cfg config.Cfg, locator storage.Locator) (*grpc.Server, string) {
diff --git a/internal/gitaly/service/smarthttp/inforefs_test.go b/internal/gitaly/service/smarthttp/inforefs_test.go
index 65f5d0a7a..3de658dc2 100644
--- a/internal/gitaly/service/smarthttp/inforefs_test.go
+++ b/internal/gitaly/service/smarthttp/inforefs_test.go
@@ -30,8 +30,7 @@ import (
)
func TestSuccessfulInfoRefsUploadPack(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
serverSocketPath, stop := runSmartHTTPServer(t, cfg)
defer stop()
@@ -50,8 +49,7 @@ func TestSuccessfulInfoRefsUploadPack(t *testing.T) {
}
func TestSuccessfulInfoRefsUploadWithPartialClone(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
serverSocketPath, stop := runSmartHTTPServer(t, cfg)
defer stop()
@@ -75,8 +73,7 @@ func TestSuccessfulInfoRefsUploadWithPartialClone(t *testing.T) {
}
func TestSuccessfulInfoRefsUploadPackWithGitConfigOptions(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
serverSocketPath, stop := runSmartHTTPServer(t, cfg)
defer stop()
@@ -97,8 +94,7 @@ func TestSuccessfulInfoRefsUploadPackWithGitConfigOptions(t *testing.T) {
}
func TestSuccessfulInfoRefsUploadPackWithGitProtocol(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
readProtocol, cfg, restore := gittest.EnableGitProtocolV2Support(t, cfg)
defer restore()
@@ -147,8 +143,7 @@ func makeInfoRefsUploadPackRequest(ctx context.Context, t *testing.T, serverSock
}
func TestSuccessfulInfoRefsReceivePack(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
serverSocketPath, stop := runSmartHTTPServer(t, cfg)
defer stop()
@@ -176,8 +171,7 @@ func TestSuccessfulInfoRefsReceivePack(t *testing.T) {
}
func TestObjectPoolRefAdvertisementHiding(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
testhelper.ConfigureGitalyHooksBin(t, cfg)
@@ -215,8 +209,7 @@ func TestObjectPoolRefAdvertisementHiding(t *testing.T) {
}
func TestFailureRepoNotFoundInfoRefsReceivePack(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
serverSocketPath, stop := runSmartHTTPServer(t, cfg)
defer stop()
@@ -240,8 +233,7 @@ func TestFailureRepoNotFoundInfoRefsReceivePack(t *testing.T) {
}
func TestFailureRepoNotSetInfoRefsReceivePack(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
serverSocketPath, stop := runSmartHTTPServer(t, cfg)
defer stop()
@@ -295,8 +287,7 @@ func (ms mockStreamer) PutStream(ctx context.Context, repo *gitalypb.Repository,
}
func TestCacheInfoRefsUploadPack(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
serverSocketPath, stop := runSmartHTTPServer(t, cfg)
defer stop()
diff --git a/internal/gitaly/service/smarthttp/receive_pack_test.go b/internal/gitaly/service/smarthttp/receive_pack_test.go
index b7b9cfa36..1b4e6b55a 100644
--- a/internal/gitaly/service/smarthttp/receive_pack_test.go
+++ b/internal/gitaly/service/smarthttp/receive_pack_test.go
@@ -43,8 +43,7 @@ const (
)
func TestSuccessfulReceivePackRequest(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
cfg.GitlabShell.Dir = "/foo/bar/gitlab-shell"
@@ -109,8 +108,7 @@ func TestSuccessfulReceivePackRequest(t *testing.T) {
}
func TestSuccessfulReceivePackRequestWithGitProtocol(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
testhelper.ConfigureGitalyHooksBin(t, cfg)
@@ -141,8 +139,7 @@ func TestSuccessfulReceivePackRequestWithGitProtocol(t *testing.T) {
}
func TestFailedReceivePackRequestWithGitOpts(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
serverSocketPath, stop := runSmartHTTPServer(t, cfg)
defer stop()
@@ -165,8 +162,7 @@ func TestFailedReceivePackRequestWithGitOpts(t *testing.T) {
}
func TestFailedReceivePackRequestDueToHooksFailure(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
hookDir, cleanup := testhelper.TempDir(t)
defer cleanup()
@@ -286,8 +282,7 @@ func createCommit(t *testing.T, repoPath string, fileContents []byte) (oldHead s
}
func TestFailedReceivePackRequestDueToValidationError(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
serverSocketPath, stop := runSmartHTTPServer(t, cfg)
defer stop()
@@ -319,8 +314,7 @@ func TestFailedReceivePackRequestDueToValidationError(t *testing.T) {
}
func TestInvalidTimezone(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
_, localRepoPath, localCleanup := gittest.CloneRepoWithWorktreeAtStorage(t, cfg.Storages[0])
defer localCleanup()
@@ -345,6 +339,7 @@ func TestInvalidTimezone(t *testing.T) {
fmt.Fprintf(body, "%04x%s%s", len(pkt)+4, pkt, pktFlushStr)
body.Write(pack)
+ var cleanup func()
_, cleanup = gittest.CaptureHookEnv(t)
defer cleanup()
@@ -381,8 +376,7 @@ func drainPostReceivePackResponse(stream gitalypb.SmartHTTPService_PostReceivePa
}
func TestPostReceivePackToHooks(t *testing.T) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
testhelper.ConfigureGitalyHooksBin(t, cfg)
@@ -392,6 +386,7 @@ func TestPostReceivePackToHooks(t *testing.T) {
glID = "key-123"
)
+ var cleanup func()
cfg.GitlabShell.Dir, cleanup = testhelper.TempDir(t)
defer cleanup()
@@ -479,8 +474,7 @@ func TestPostReceiveWithTransactionsViaPraefect(t *testing.T) {
}
func testPostReceiveWithTransactionsViaPraefect(t *testing.T, ctx context.Context) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
testhelper.ConfigureGitalyHooksBin(t, cfg)
@@ -560,8 +554,7 @@ func (t *testTransactionServer) VoteTransaction(ctx context.Context, in *gitalyp
}
func TestPostReceiveWithReferenceTransactionHook(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
testhelper.ConfigureGitalyHooksBin(t, cfg)
diff --git a/internal/gitaly/service/smarthttp/upload_pack_test.go b/internal/gitaly/service/smarthttp/upload_pack_test.go
index 40c0e28b3..033a1f582 100644
--- a/internal/gitaly/service/smarthttp/upload_pack_test.go
+++ b/internal/gitaly/service/smarthttp/upload_pack_test.go
@@ -37,8 +37,7 @@ func TestSuccessfulUploadPackRequest(t *testing.T) {
}
func testSuccessfulUploadPackRequest(t *testing.T, ctx context.Context) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
testhelper.ConfigureGitalyHooksBin(t, cfg)
@@ -116,8 +115,7 @@ func TestUploadPackRequestWithGitConfigOptions(t *testing.T) {
}
func testUploadPackRequestWithGitConfigOptions(t *testing.T, ctx context.Context) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
testhelper.ConfigureGitalyHooksBin(t, cfg)
@@ -185,8 +183,7 @@ func TestUploadPackRequestWithGitProtocol(t *testing.T) {
}
func testUploadPackRequestWithGitProtocol(t *testing.T, ctx context.Context) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
readProto, cfg, restore := gittest.EnableGitProtocolV2Support(t, cfg)
defer restore()
@@ -235,8 +232,7 @@ func TestSuccessfulUploadPackDeepenRequest(t *testing.T) {
}
func testSuccessfulUploadPackDeepenRequest(t *testing.T, ctx context.Context) {
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
serverSocketPath, stop := runSmartHTTPServer(t, cfg)
defer stop()
@@ -255,9 +251,8 @@ func testSuccessfulUploadPackDeepenRequest(t *testing.T, ctx context.Context) {
}
func TestUploadPackWithPackObjectsHook(t *testing.T) {
- cfg, repo, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
-
+ cfg, repo, repoPath := testcfg.BuildWithRepo(t)
+ var cleanup func()
cfg.BinDir, cleanup = testhelper.TempDir(t)
defer cleanup()
@@ -305,8 +300,7 @@ func TestFailedUploadPackRequestDueToValidationError(t *testing.T) {
}
func testFailedUploadPackRequestDueToValidationError(t *testing.T, ctx context.Context) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
serverSocketPath, stop := runSmartHTTPServer(t, cfg)
defer stop()
@@ -400,8 +394,7 @@ func TestUploadPackRequestForPartialCloneSuccess(t *testing.T) {
}
func testUploadPackRequestForPartialCloneSuccess(t *testing.T, ctx context.Context) {
- cfg, _, repoPath, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, _, repoPath := testcfg.BuildWithRepo(t)
testhelper.ConfigureGitalyHooksBin(t, cfg)
diff --git a/internal/gitaly/transaction/manager_test.go b/internal/gitaly/transaction/manager_test.go
index e1d3044f8..eb0cc45c6 100644
--- a/internal/gitaly/transaction/manager_test.go
+++ b/internal/gitaly/transaction/manager_test.go
@@ -35,8 +35,7 @@ func (s *testTransactionServer) StopTransaction(ctx context.Context, in *gitalyp
}
func TestPoolManager_Vote(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
transactionServer, praefect, stop := runTransactionServer(t, cfg)
defer stop()
@@ -108,8 +107,7 @@ func TestPoolManager_Vote(t *testing.T) {
}
func TestPoolManager_Stop(t *testing.T) {
- cfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ cfg := testcfg.Build(t)
transactionServer, praefect, stop := runTransactionServer(t, cfg)
defer stop()
diff --git a/internal/middleware/commandstatshandler/commandstatshandler_test.go b/internal/middleware/commandstatshandler/commandstatshandler_test.go
index 1f28b93fe..177b02a45 100644
--- a/internal/middleware/commandstatshandler/commandstatshandler_test.go
+++ b/internal/middleware/commandstatshandler/commandstatshandler_test.go
@@ -59,8 +59,7 @@ func TestInterceptor(t *testing.T) {
cleanup := testhelper.Configure()
defer cleanup()
- cfg, repo, _, cleanup := testcfg.BuildWithRepo(t)
- defer cleanup()
+ cfg, repo, _ := testcfg.BuildWithRepo(t)
logBuffer := &bytes.Buffer{}
testhelper.NewTestLogger = func(tb testing.TB) *logrus.Logger {
diff --git a/internal/praefect/server_test.go b/internal/praefect/server_test.go
index f092677cc..13d8737f7 100644
--- a/internal/praefect/server_test.go
+++ b/internal/praefect/server_test.go
@@ -177,8 +177,7 @@ func TestGitalyServerInfoBadNode(t *testing.T) {
func TestDiskStatistics(t *testing.T) {
praefectCfg := config.Config{VirtualStorages: []*config.VirtualStorage{{Name: "praefect"}}}
for _, name := range []string{"gitaly-1", "gitaly-2"} {
- gitalyCfg, cleanup := testcfg.Build(t)
- defer cleanup()
+ gitalyCfg := testcfg.Build(t)
gitalyAddr, cleanupGitaly := testserver.RunGitalyServer(t, gitalyCfg, nil)
defer cleanupGitaly()
diff --git a/internal/testhelper/deferrer.go b/internal/testhelper/deferrer.go
deleted file mode 100644
index 82d72502f..000000000
--- a/internal/testhelper/deferrer.go
+++ /dev/null
@@ -1,38 +0,0 @@
-package testhelper
-
-// Deferrer allows to collect a list of anonymous functions and call them all in reverse order.
-// This is useful if you want to make sure that the Deferrer is getting executed in case the
-// surrounding function errors, but return the not-yet-executed Deferrer in case it didn't
-// by calling Relocate() before the function returns successfully.
-type Deferrer []func()
-
-// Add adds another function to the list.
-func (c *Deferrer) Add(f func()) {
- *c = append(*c, f)
-}
-
-// Call calls all the functions previously added to the list in reverse order.
-func (c *Deferrer) Call() {
- for i := len(*c) - 1; i >= 0; i-- {
- (*c)[i]()
- }
-}
-
-// Relocate moves all functions into another instance and returns that instance back to the caller.
-func (c *Deferrer) Relocate() Deferrer {
- clone := c.clone()
- c.reset()
- return clone
-}
-
-// reset removes all functions from the list.
-func (c *Deferrer) reset() {
- *c = nil
-}
-
-// clone creates a copy of the Deferrer.
-func (c *Deferrer) clone() Deferrer {
- clone := make([]func(), len(*c))
- copy(clone, *c)
- return clone
-}
diff --git a/internal/testhelper/deferrer_test.go b/internal/testhelper/deferrer_test.go
deleted file mode 100644
index fd4d2e49a..000000000
--- a/internal/testhelper/deferrer_test.go
+++ /dev/null
@@ -1,83 +0,0 @@
-package testhelper
-
-import (
- "testing"
-
- "github.com/stretchr/testify/require"
-)
-
-func TestDeferrer(t *testing.T) {
- t.Run("nothing to call", func(t *testing.T) {
- var deferrer Deferrer
- deferrer.Call()
- })
-
- t.Run("call executes in right order", func(t *testing.T) {
- var deferrer Deferrer
-
- calls := make(map[string]int)
- deferrer.Add(func() { calls["right"] = len(calls) })
- deferrer.Add(func() { calls["is"] = len(calls) })
- deferrer.Add(func() { calls["order"] = len(calls) })
-
- deferrer.Call()
- require.Equal(t, map[string]int{"order": 0, "is": 1, "right": 2}, calls)
- })
-
- t.Run("reset", func(t *testing.T) {
- t.Run("empty", func(t *testing.T) {
- var deferrer Deferrer
- deferrer.reset()
- deferrer.Call()
- })
-
- t.Run("not empty", func(t *testing.T) {
- var deferrer Deferrer
- var updated bool
- deferrer.Add(func() { updated = true })
- deferrer.reset()
- deferrer.Call()
- require.False(t, updated)
- })
- })
-
- t.Run("clone", func(t *testing.T) {
- t.Run("empty", func(t *testing.T) {
- var deferrer Deferrer
- cloned := deferrer.clone()
- deferrer.Call()
- cloned.Call()
- })
-
- t.Run("not empty", func(t *testing.T) {
- var deferrer Deferrer
- var called int
- deferrer.Add(func() { called++ })
- cloned := deferrer.clone()
- deferrer.Call()
- require.Equal(t, called, 1)
- cloned.Call()
- require.Equal(t, called, 2)
- })
- })
-
- t.Run("Relocate", func(t *testing.T) {
- t.Run("empty", func(t *testing.T) {
- var deferrer Deferrer
- relocated := deferrer.Relocate()
- deferrer.Call()
- relocated.Call()
- })
-
- t.Run("not empty", func(t *testing.T) {
- var deferrer Deferrer
- var called int
- deferrer.Add(func() { called++ })
- relocated := deferrer.Relocate()
- deferrer.Call()
- require.Equal(t, called, 0)
- relocated.Call()
- require.Equal(t, called, 1)
- })
- })
-}
diff --git a/internal/testhelper/testcfg/gitaly_builder.go b/internal/testhelper/testcfg/gitaly_builder.go
index 9d6870e16..0caa780a1 100644
--- a/internal/testhelper/testcfg/gitaly_builder.go
+++ b/internal/testhelper/testcfg/gitaly_builder.go
@@ -147,29 +147,20 @@ func (gc *GitalyCfgBuilder) BuildWithRepoAt(t testing.TB, relativePath string) (
}
// Build creates a minimal configuration setup with no options and returns it with cleanup function.
-func Build(t testing.TB) (config.Cfg, testhelper.Cleanup) {
- var deferrer testhelper.Deferrer
- defer deferrer.Call()
-
+func Build(t testing.TB) config.Cfg {
cfgBuilder := NewGitalyCfgBuilder()
- deferrer.Add(cfgBuilder.Cleanup)
+ t.Cleanup(cfgBuilder.Cleanup)
- cfg := cfgBuilder.Build(t)
- cleaner := deferrer.Relocate()
- return cfg, cleaner.Call
+ return cfgBuilder.Build(t)
}
// BuildWithRepo creates a minimal configuration setup with no options.
// It also clones test repository at the storage and returns it with the full path to the repository.
-func BuildWithRepo(t testing.TB) (config.Cfg, *gitalypb.Repository, string, testhelper.Cleanup) {
- var deferrer testhelper.Deferrer
- defer deferrer.Call()
-
+func BuildWithRepo(t testing.TB) (config.Cfg, *gitalypb.Repository, string) {
cfgBuilder := NewGitalyCfgBuilder()
- deferrer.Add(cfgBuilder.Cleanup)
+ t.Cleanup(cfgBuilder.Cleanup)
cfg, repos := cfgBuilder.BuildWithRepoAt(t, t.Name())
repoPath := filepath.Join(cfg.Storages[0].Path, repos[0].RelativePath)
- cleaner := deferrer.Relocate()
- return cfg, repos[0], repoPath, cleaner.Call
+ return cfg, repos[0], repoPath
}