1
0
Fork 0
forked from forgejo/forgejo

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 <engzerjun@gmail.com>
This commit is contained in:
Eng Zer Jun 2022-09-04 23:14:53 +08:00 committed by GitHub
parent c722a26e7e
commit 8b0aaa5f86
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 57 additions and 194 deletions

View file

@ -6,13 +6,10 @@ package git
import (
"context"
"os"
"path/filepath"
"testing"
"time"
"code.gitea.io/gitea/modules/util"
"github.com/stretchr/testify/assert"
)
@ -20,18 +17,14 @@ const (
testReposDir = "tests/repos/"
)
func cloneRepo(url, name string) (string, error) {
repoDir, err := os.MkdirTemp("", name)
if err != nil {
return "", err
}
func cloneRepo(tb testing.TB, url string) (string, error) {
repoDir := tb.TempDir()
if err := Clone(DefaultContext, url, repoDir, CloneRepoOptions{
Mirror: false,
Bare: false,
Quiet: true,
Timeout: 5 * time.Minute,
}); err != nil {
_ = util.RemoveAll(repoDir)
return "", err
}
return repoDir, nil
@ -118,11 +111,10 @@ func TestEntries_GetCommitsInfo(t *testing.T) {
testGetCommitsInfo(t, bareRepo1)
clonedPath, err := cloneRepo(bareRepo1Path, "repo1_TestEntries_GetCommitsInfo")
clonedPath, err := cloneRepo(t, bareRepo1Path)
if err != nil {
assert.NoError(t, err)
}
defer util.RemoveAll(clonedPath)
clonedRepo1, err := openRepositoryWithDefaultContext(clonedPath)
if err != nil {
assert.NoError(t, err)
@ -150,11 +142,10 @@ func BenchmarkEntries_GetCommitsInfo(b *testing.B) {
var commit *Commit
var entries Entries
var repo *Repository
repoPath, err := cloneRepo(benchmark.url, benchmark.name)
repoPath, err := cloneRepo(b, benchmark.url)
if err != nil {
b.Fatal(err)
}
defer util.RemoveAll(repoPath)
if repo, err = openRepositoryWithDefaultContext(repoPath); err != nil {
b.Fatal(err)