Skip to content

Commit 8b0aaa5

Browse files
authored
test: use T.TempDir to create temporary test directory (#21043)
A testing cleanup. This pull request replaces `os.MkdirTemp` with `t.TempDir`. We can use the `T.TempDir` function from the `testing` package to create temporary directory. The directory created by `T.TempDir` is automatically removed when the test and all its subtests complete. This saves us at least 2 lines (error check, and cleanup) on every instance, or in some cases adds cleanup that we forgot. Reference: https://pkg.go.dev/testing#T.TempDir ```go func TestFoo(t *testing.T) { // before tmpDir, err := os.MkdirTemp("", "") require.NoError(t, err) defer os.RemoveAll(tmpDir) // now tmpDir := t.TempDir() } ``` Signed-off-by: Eng Zer Jun <[email protected]>
1 parent c722a26 commit 8b0aaa5

24 files changed

+57
-194
lines changed

Diff for: cmd/migrate_storage_test.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ func TestMigratePackages(t *testing.T) {
5353

5454
ctx := context.Background()
5555

56-
p, err := os.MkdirTemp(os.TempDir(), "migrated_packages")
57-
assert.NoError(t, err)
56+
p := t.TempDir()
5857

5958
dstStorage, err := storage.NewLocalStorage(
6059
ctx,

Diff for: models/db/engine_test.go

+1-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
package db_test
66

77
import (
8-
"os"
98
"path/filepath"
109
"testing"
1110

@@ -20,8 +19,7 @@ import (
2019
func TestDumpDatabase(t *testing.T) {
2120
assert.NoError(t, unittest.PrepareTestDatabase())
2221

23-
dir, err := os.MkdirTemp(os.TempDir(), "dump")
24-
assert.NoError(t, err)
22+
dir := t.TempDir()
2523

2624
type Version struct {
2725
ID int64 `xorm:"pk autoincr"`

Diff for: modules/git/commit_info_test.go

+4-13
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,25 @@ package git
66

77
import (
88
"context"
9-
"os"
109
"path/filepath"
1110
"testing"
1211
"time"
1312

14-
"code.gitea.io/gitea/modules/util"
15-
1613
"github.com/stretchr/testify/assert"
1714
)
1815

1916
const (
2017
testReposDir = "tests/repos/"
2118
)
2219

23-
func cloneRepo(url, name string) (string, error) {
24-
repoDir, err := os.MkdirTemp("", name)
25-
if err != nil {
26-
return "", err
27-
}
20+
func cloneRepo(tb testing.TB, url string) (string, error) {
21+
repoDir := tb.TempDir()
2822
if err := Clone(DefaultContext, url, repoDir, CloneRepoOptions{
2923
Mirror: false,
3024
Bare: false,
3125
Quiet: true,
3226
Timeout: 5 * time.Minute,
3327
}); err != nil {
34-
_ = util.RemoveAll(repoDir)
3528
return "", err
3629
}
3730
return repoDir, nil
@@ -118,11 +111,10 @@ func TestEntries_GetCommitsInfo(t *testing.T) {
118111

119112
testGetCommitsInfo(t, bareRepo1)
120113

121-
clonedPath, err := cloneRepo(bareRepo1Path, "repo1_TestEntries_GetCommitsInfo")
114+
clonedPath, err := cloneRepo(t, bareRepo1Path)
122115
if err != nil {
123116
assert.NoError(t, err)
124117
}
125-
defer util.RemoveAll(clonedPath)
126118
clonedRepo1, err := openRepositoryWithDefaultContext(clonedPath)
127119
if err != nil {
128120
assert.NoError(t, err)
@@ -150,11 +142,10 @@ func BenchmarkEntries_GetCommitsInfo(b *testing.B) {
150142
var commit *Commit
151143
var entries Entries
152144
var repo *Repository
153-
repoPath, err := cloneRepo(benchmark.url, benchmark.name)
145+
repoPath, err := cloneRepo(b, benchmark.url)
154146
if err != nil {
155147
b.Fatal(err)
156148
}
157-
defer util.RemoveAll(repoPath)
158149

159150
if repo, err = openRepositoryWithDefaultContext(repoPath); err != nil {
160151
b.Fatal(err)

Diff for: modules/git/repo_compare_test.go

+2-6
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,16 @@ import (
1010
"path/filepath"
1111
"testing"
1212

13-
"code.gitea.io/gitea/modules/util"
14-
1513
"github.com/stretchr/testify/assert"
1614
)
1715

1816
func TestGetFormatPatch(t *testing.T) {
1917
bareRepo1Path := filepath.Join(testReposDir, "repo1_bare")
20-
clonedPath, err := cloneRepo(bareRepo1Path, "repo1_TestGetFormatPatch")
18+
clonedPath, err := cloneRepo(t, bareRepo1Path)
2119
if err != nil {
2220
assert.NoError(t, err)
2321
return
2422
}
25-
defer util.RemoveAll(clonedPath)
2623

2724
repo, err := openRepositoryWithDefaultContext(clonedPath)
2825
if err != nil {
@@ -84,12 +81,11 @@ func TestReadWritePullHead(t *testing.T) {
8481
bareRepo1Path := filepath.Join(testReposDir, "repo1_bare")
8582

8683
// As we are writing we should clone the repository first
87-
clonedPath, err := cloneRepo(bareRepo1Path, "TestReadWritePullHead")
84+
clonedPath, err := cloneRepo(t, bareRepo1Path)
8885
if err != nil {
8986
assert.NoError(t, err)
9087
return
9188
}
92-
defer util.RemoveAll(clonedPath)
9389

9490
repo, err := openRepositoryWithDefaultContext(clonedPath)
9591
if err != nil {

Diff for: modules/git/repo_tag_test.go

+2-6
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import (
88
"path/filepath"
99
"testing"
1010

11-
"code.gitea.io/gitea/modules/util"
12-
1311
"github.com/stretchr/testify/assert"
1412
"github.com/stretchr/testify/require"
1513
)
@@ -38,12 +36,11 @@ func TestRepository_GetTags(t *testing.T) {
3836
func TestRepository_GetTag(t *testing.T) {
3937
bareRepo1Path := filepath.Join(testReposDir, "repo1_bare")
4038

41-
clonedPath, err := cloneRepo(bareRepo1Path, "TestRepository_GetTag")
39+
clonedPath, err := cloneRepo(t, bareRepo1Path)
4240
if err != nil {
4341
assert.NoError(t, err)
4442
return
4543
}
46-
defer util.RemoveAll(clonedPath)
4744

4845
bareRepo1, err := openRepositoryWithDefaultContext(clonedPath)
4946
if err != nil {
@@ -143,12 +140,11 @@ func TestRepository_GetTag(t *testing.T) {
143140
func TestRepository_GetAnnotatedTag(t *testing.T) {
144141
bareRepo1Path := filepath.Join(testReposDir, "repo1_bare")
145142

146-
clonedPath, err := cloneRepo(bareRepo1Path, "TestRepository_GetAnnotatedTag")
143+
clonedPath, err := cloneRepo(t, bareRepo1Path)
147144
if err != nil {
148145
assert.NoError(t, err)
149146
return
150147
}
151-
defer util.RemoveAll(clonedPath)
152148

153149
bareRepo1, err := openRepositoryWithDefaultContext(clonedPath)
154150
if err != nil {

Diff for: modules/indexer/code/bleve_test.go

+1-9
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,17 @@
55
package code
66

77
import (
8-
"os"
98
"testing"
109

1110
"code.gitea.io/gitea/models/unittest"
12-
"code.gitea.io/gitea/modules/util"
1311

1412
"github.com/stretchr/testify/assert"
1513
)
1614

1715
func TestBleveIndexAndSearch(t *testing.T) {
1816
unittest.PrepareTestEnv(t)
1917

20-
dir, err := os.MkdirTemp("", "bleve.index")
21-
assert.NoError(t, err)
22-
if err != nil {
23-
assert.Fail(t, "Unable to create temporary directory")
24-
return
25-
}
26-
defer util.RemoveAll(dir)
18+
dir := t.TempDir()
2719

2820
idx, _, err := NewBleveIndexer(dir)
2921
if err != nil {

Diff for: modules/indexer/issues/bleve_test.go

+2-11
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,13 @@ package issues
66

77
import (
88
"context"
9-
"os"
109
"testing"
1110

12-
"code.gitea.io/gitea/modules/util"
13-
1411
"github.com/stretchr/testify/assert"
1512
)
1613

1714
func TestBleveIndexAndSearch(t *testing.T) {
18-
dir, err := os.MkdirTemp("", "bleve.index")
19-
assert.NoError(t, err)
20-
if err != nil {
21-
assert.Fail(t, "Unable to create temporary directory")
22-
return
23-
}
24-
defer util.RemoveAll(dir)
15+
dir := t.TempDir()
2516
indexer := NewBleveIndexer(dir)
2617
defer indexer.Close()
2718

@@ -30,7 +21,7 @@ func TestBleveIndexAndSearch(t *testing.T) {
3021
return
3122
}
3223

33-
err = indexer.Index([]*IndexerData{
24+
err := indexer.Index([]*IndexerData{
3425
{
3526
ID: 1,
3627
RepoID: 2,

Diff for: modules/indexer/issues/indexer_test.go

+1-8
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@ package issues
66

77
import (
88
"context"
9-
"os"
109
"path"
1110
"path/filepath"
1211
"testing"
1312
"time"
1413

1514
"code.gitea.io/gitea/models/unittest"
1615
"code.gitea.io/gitea/modules/setting"
17-
"code.gitea.io/gitea/modules/util"
1816

1917
_ "code.gitea.io/gitea/models"
2018

@@ -32,19 +30,14 @@ func TestBleveSearchIssues(t *testing.T) {
3230
assert.NoError(t, unittest.PrepareTestDatabase())
3331
setting.Cfg = ini.Empty()
3432

35-
tmpIndexerDir, err := os.MkdirTemp("", "issues-indexer")
36-
if err != nil {
37-
assert.Fail(t, "Unable to create temporary directory: %v", err)
38-
return
39-
}
33+
tmpIndexerDir := t.TempDir()
4034

4135
setting.Cfg.Section("queue.issue_indexer").Key("DATADIR").MustString(path.Join(tmpIndexerDir, "issues.queue"))
4236

4337
oldIssuePath := setting.Indexer.IssuePath
4438
setting.Indexer.IssuePath = path.Join(tmpIndexerDir, "issues.queue")
4539
defer func() {
4640
setting.Indexer.IssuePath = oldIssuePath
47-
util.RemoveAll(tmpIndexerDir)
4841
}()
4942

5043
setting.Indexer.IssueType = "bleve"

Diff for: modules/log/file_test.go

+5-15
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,11 @@ import (
1414
"testing"
1515
"time"
1616

17-
"code.gitea.io/gitea/modules/util"
18-
1917
"github.com/stretchr/testify/assert"
2018
)
2119

2220
func TestFileLoggerFails(t *testing.T) {
23-
tmpDir, err := os.MkdirTemp("", "TestFileLogger")
24-
assert.NoError(t, err)
25-
defer util.RemoveAll(tmpDir)
21+
tmpDir := t.TempDir()
2622

2723
prefix := "TestPrefix "
2824
level := INFO
@@ -34,7 +30,7 @@ func TestFileLoggerFails(t *testing.T) {
3430
// assert.True(t, ok)
3531

3632
// Fail if there is bad json
37-
err = fileLogger.Init("{")
33+
err := fileLogger.Init("{")
3834
assert.Error(t, err)
3935

4036
// Fail if there is no filename
@@ -47,9 +43,7 @@ func TestFileLoggerFails(t *testing.T) {
4743
}
4844

4945
func TestFileLogger(t *testing.T) {
50-
tmpDir, err := os.MkdirTemp("", "TestFileLogger")
51-
assert.NoError(t, err)
52-
defer util.RemoveAll(tmpDir)
46+
tmpDir := t.TempDir()
5347

5448
prefix := "TestPrefix "
5549
level := INFO
@@ -150,9 +144,7 @@ func TestFileLogger(t *testing.T) {
150144
}
151145

152146
func TestCompressFileLogger(t *testing.T) {
153-
tmpDir, err := os.MkdirTemp("", "TestFileLogger")
154-
assert.NoError(t, err)
155-
defer util.RemoveAll(tmpDir)
147+
tmpDir := t.TempDir()
156148

157149
prefix := "TestPrefix "
158150
level := INFO
@@ -210,9 +202,7 @@ func TestCompressFileLogger(t *testing.T) {
210202
}
211203

212204
func TestCompressOldFile(t *testing.T) {
213-
tmpDir, err := os.MkdirTemp("", "TestFileLogger")
214-
assert.NoError(t, err)
215-
defer util.RemoveAll(tmpDir)
205+
tmpDir := t.TempDir()
216206
fname := filepath.Join(tmpDir, "test")
217207
nonGzip := filepath.Join(tmpDir, "test-nonGzip")
218208

Diff for: modules/queue/queue_disk_channel_test.go

+2-8
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@
55
package queue
66

77
import (
8-
"os"
98
"sync"
109
"testing"
1110
"time"
1211

1312
"code.gitea.io/gitea/modules/log"
14-
"code.gitea.io/gitea/modules/util"
1513

1614
"github.com/stretchr/testify/assert"
1715
)
@@ -33,9 +31,7 @@ func TestPersistableChannelQueue(t *testing.T) {
3331
queueShutdown := []func(){}
3432
queueTerminate := []func(){}
3533

36-
tmpDir, err := os.MkdirTemp("", "persistable-channel-queue-test-data")
37-
assert.NoError(t, err)
38-
defer util.RemoveAll(tmpDir)
34+
tmpDir := t.TempDir()
3935

4036
queue, err := NewPersistableChannelQueue(handle, PersistableChannelQueueConfiguration{
4137
DataDir: tmpDir,
@@ -223,9 +219,7 @@ func TestPersistableChannelQueue_Pause(t *testing.T) {
223219
queueTerminate := []func(){}
224220
terminated := make(chan struct{})
225221

226-
tmpDir, err := os.MkdirTemp("", "persistable-channel-queue-pause-test-data")
227-
assert.NoError(t, err)
228-
defer util.RemoveAll(tmpDir)
222+
tmpDir := t.TempDir()
229223

230224
queue, err = NewPersistableChannelQueue(handle, PersistableChannelQueueConfiguration{
231225
DataDir: tmpDir,

Diff for: modules/queue/queue_disk_test.go

+1-6
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,10 @@
55
package queue
66

77
import (
8-
"os"
98
"sync"
109
"testing"
1110
"time"
1211

13-
"code.gitea.io/gitea/modules/util"
14-
1512
"github.com/stretchr/testify/assert"
1613
)
1714

@@ -30,9 +27,7 @@ func TestLevelQueue(t *testing.T) {
3027
queueShutdown := []func(){}
3128
queueTerminate := []func(){}
3229

33-
tmpDir, err := os.MkdirTemp("", "level-queue-test-data")
34-
assert.NoError(t, err)
35-
defer util.RemoveAll(tmpDir)
30+
tmpDir := t.TempDir()
3631

3732
queue, err := NewLevelQueue(handle, LevelQueueConfiguration{
3833
ByteFIFOQueueConfiguration: ByteFIFOQueueConfiguration{

0 commit comments

Comments
 (0)