test: use T.TempDir to create temporary test directory (#44947)

The directory created by `T.TempDir` is automatically removed when the
test and all its subtests complete.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
This commit is contained in:
Eng Zer Jun 2022-03-22 22:43:29 +08:00 committed by GitHub
parent 52fec0d7db
commit b56848f006
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 14 additions and 76 deletions

View File

@ -77,25 +77,15 @@ func TestCopyFile_NonExistentDestDir(t *testing.T) {
}
func TestCopyRecursive_NonExistentDest(t *testing.T) {
src, err := ioutil.TempDir("", "")
require.NoError(t, err)
t.Cleanup(func() {
err := os.RemoveAll(src)
assert.NoError(t, err)
})
src := t.TempDir()
err = os.MkdirAll(filepath.Join(src, "data"), 0750)
err := os.MkdirAll(filepath.Join(src, "data"), 0750)
require.NoError(t, err)
// nolint:gosec
err = ioutil.WriteFile(filepath.Join(src, "data", "file.txt"), []byte("Test"), 0644)
require.NoError(t, err)
dstParent, err := ioutil.TempDir("", "")
require.NoError(t, err)
t.Cleanup(func() {
err := os.RemoveAll(dstParent)
assert.NoError(t, err)
})
dstParent := t.TempDir()
dst := filepath.Join(dstParent, "dest")
@ -106,25 +96,15 @@ func TestCopyRecursive_NonExistentDest(t *testing.T) {
}
func TestCopyRecursive_ExistentDest(t *testing.T) {
src, err := ioutil.TempDir("", "")
require.NoError(t, err)
t.Cleanup(func() {
err := os.RemoveAll(src)
assert.NoError(t, err)
})
src := t.TempDir()
err = os.MkdirAll(filepath.Join(src, "data"), 0750)
err := os.MkdirAll(filepath.Join(src, "data"), 0750)
require.NoError(t, err)
// nolint:gosec
err = ioutil.WriteFile(filepath.Join(src, "data", "file.txt"), []byte("Test"), 0644)
require.NoError(t, err)
dst, err := ioutil.TempDir("", "")
require.NoError(t, err)
t.Cleanup(func() {
err := os.RemoveAll(dst)
assert.NoError(t, err)
})
dst := t.TempDir()
err = CopyRecursive(src, dst)
require.NoError(t, err)

View File

@ -31,12 +31,7 @@ func TestExists_Existent(t *testing.T) {
}
func TestExists_Dir(t *testing.T) {
f, err := ioutil.TempDir("", "")
require.NoError(t, err)
t.Cleanup(func() {
err := os.Remove(f)
assert.NoError(t, err)
})
f := t.TempDir()
exists, err := Exists(f)

View File

@ -2,9 +2,7 @@ package api
import (
"context"
"io/ioutil"
"net/http"
"os"
"testing"
"time"
@ -258,8 +256,7 @@ func createMultiOrgAlertmanager(t *testing.T) *notifier.MultiOrgAlertmanager {
}
configStore := notifier.NewFakeConfigStore(t, configs)
orgStore := notifier.NewFakeOrgStore(t, []int64{1, 2, 3})
tmpDir, err := ioutil.TempDir("", "test")
require.NoError(t, err)
tmpDir := t.TempDir()
kvStore := notifier.NewFakeKVStore(t)
secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore())
reg := prometheus.NewPedanticRegistry()
@ -276,18 +273,11 @@ func createMultiOrgAlertmanager(t *testing.T) *notifier.MultiOrgAlertmanager {
mam, err := notifier.NewMultiOrgAlertmanager(cfg, &configStore, &orgStore, kvStore, decryptFn, m.GetMultiOrgAlertmanagerMetrics(), nil, log.New("testlogger"))
require.NoError(t, err)
t.Cleanup(cleanOrgDirectories(tmpDir, t))
err = mam.LoadAndSyncAlertmanagersForOrgs(context.Background())
require.NoError(t, err)
return mam
}
func cleanOrgDirectories(path string, t *testing.T) func() {
return func() {
require.NoError(t, os.RemoveAll(path))
}
}
var validConfig = setting.GetAlertmanagerDefaultConfiguration()
var brokenConfig = `

View File

@ -3,8 +3,6 @@ package notifier
import (
"context"
"errors"
"io/ioutil"
"os"
"sort"
"testing"
"time"
@ -29,11 +27,7 @@ import (
)
func setupAMTest(t *testing.T) *Alertmanager {
dir, err := ioutil.TempDir("", "")
require.NoError(t, err)
t.Cleanup(func() {
require.NoError(t, os.RemoveAll(dir))
})
dir := t.TempDir()
cfg := &setting.Cfg{
DataPath: dir,
}

View File

@ -5,7 +5,6 @@ import (
"context"
"errors"
"io/fs"
"io/ioutil"
"os"
"path/filepath"
"testing"
@ -31,8 +30,7 @@ func TestMultiOrgAlertmanager_SyncAlertmanagersForOrgs(t *testing.T) {
orgs: []int64{1, 2, 3},
}
tmpDir, err := ioutil.TempDir("", "test")
require.NoError(t, err)
tmpDir := t.TempDir()
kvStore := NewFakeKVStore(t)
secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore())
decryptFn := secretsService.GetDecryptedValue
@ -50,8 +48,6 @@ func TestMultiOrgAlertmanager_SyncAlertmanagersForOrgs(t *testing.T) {
require.NoError(t, err)
ctx := context.Background()
t.Cleanup(cleanOrgDirectories(tmpDir, t))
// Ensure that one Alertmanager is created per org.
{
require.NoError(t, mam.LoadAndSyncAlertmanagersForOrgs(ctx))
@ -159,8 +155,7 @@ func TestMultiOrgAlertmanager_SyncAlertmanagersForOrgsWithFailures(t *testing.T)
orgs: []int64{1, 2, 3},
}
tmpDir, err := ioutil.TempDir("", "test")
require.NoError(t, err)
tmpDir := t.TempDir()
kvStore := NewFakeKVStore(t)
secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore())
decryptFn := secretsService.GetDecryptedValue
@ -213,8 +208,7 @@ func TestMultiOrgAlertmanager_AlertmanagerFor(t *testing.T) {
orgStore := &FakeOrgStore{
orgs: []int64{1, 2, 3},
}
tmpDir, err := ioutil.TempDir("", "test")
require.NoError(t, err)
tmpDir := t.TempDir()
cfg := &setting.Cfg{
DataPath: tmpDir,
UnifiedAlerting: setting.UnifiedAlertingSettings{AlertmanagerConfigPollInterval: 3 * time.Minute, DefaultConfiguration: setting.GetAlertmanagerDefaultConfiguration()}, // do not poll in tests.
@ -228,8 +222,6 @@ func TestMultiOrgAlertmanager_AlertmanagerFor(t *testing.T) {
require.NoError(t, err)
ctx := context.Background()
t.Cleanup(cleanOrgDirectories(tmpDir, t))
// Ensure that one Alertmanagers is created per org.
{
require.NoError(t, mam.LoadAndSyncAlertmanagersForOrgs(ctx))
@ -270,13 +262,6 @@ func TestMultiOrgAlertmanager_AlertmanagerFor(t *testing.T) {
}
}
// nolint:unused
func cleanOrgDirectories(path string, t *testing.T) func() {
return func() {
require.NoError(t, os.RemoveAll(path))
}
}
var brokenConfig = `
"alertmanager_config": {
"route": {

View File

@ -3,7 +3,6 @@ package testinfra
import (
"context"
"fmt"
"io/ioutil"
"net"
"net/http"
"os"
@ -96,12 +95,7 @@ func SetUpDatabase(t *testing.T, grafDir string) *sqlstore.SQLStore {
func CreateGrafDir(t *testing.T, opts ...GrafanaOpts) (string, string) {
t.Helper()
tmpDir, err := ioutil.TempDir("", "")
require.NoError(t, err)
t.Cleanup(func() {
err := os.RemoveAll(tmpDir)
assert.NoError(t, err)
})
tmpDir := t.TempDir()
// Search upwards in directory tree for project root
var rootDir string
@ -125,7 +119,7 @@ func CreateGrafDir(t *testing.T, opts ...GrafanaOpts) (string, string) {
require.True(t, found, "Couldn't detect project root directory")
cfgDir := filepath.Join(tmpDir, "conf")
err = os.MkdirAll(cfgDir, 0750)
err := os.MkdirAll(cfgDir, 0750)
require.NoError(t, err)
dataDir := filepath.Join(tmpDir, "data")
// nolint:gosec