summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEng Zer Jun <engzerjun@gmail.com>2022-05-05 21:09:41 +0800
committerEng Zer Jun <engzerjun@gmail.com>2022-05-05 21:09:41 +0800
commitcf35168f0a9cf457f0622cd89cff84bdbe610d58 (patch)
treedb3b776a982b2a6b615a2a7c9ee45ea6f89c9776
parentb1e9ea38e5a680afb9294cb8a451311991d94765 (diff)
downloadpodman-cf35168f0a9cf457f0622cd89cff84bdbe610d58.tar.gz
podman-cf35168f0a9cf457f0622cd89cff84bdbe610d58.tar.bz2
podman-cf35168f0a9cf457f0622cd89cff84bdbe610d58.zip
test: use `T.TempDir` to create temporary test directory
This commit replaces `ioutil.TempDir` with `t.TempDir` in tests. The directory created by `t.TempDir` is automatically removed when the test and all its subtests complete. Prior to this commit, temporary directory created using `ioutil.TempDir` needs to be removed manually by calling `os.RemoveAll`, which is omitted in some tests. The error handling boilerplate e.g. defer func() { if err := os.RemoveAll(dir); err != nil { t.Fatal(err) } } is also tedious, but `t.TempDir` handles this for us nicely. Reference: https://pkg.go.dev/testing#T.TempDir Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
-rw-r--r--libpod/container_internal_linux_test.go8
-rw-r--r--libpod/container_internal_test.go8
-rw-r--r--libpod/lock/file/file_lock_test.go11
-rw-r--r--pkg/hooks/hooks_test.go17
-rw-r--r--pkg/hooks/monitor_test.go19
-rw-r--r--pkg/hooks/read_test.go40
-rw-r--r--pkg/machine/qemu/config_test.go14
-rw-r--r--pkg/specgen/generate/kube/play_test.go10
8 files changed, 27 insertions, 100 deletions
diff --git a/libpod/container_internal_linux_test.go b/libpod/container_internal_linux_test.go
index 03095aa58..ed1f63a31 100644
--- a/libpod/container_internal_linux_test.go
+++ b/libpod/container_internal_linux_test.go
@@ -4,8 +4,6 @@
package libpod
import (
- "io/ioutil"
- "os"
"testing"
spec "github.com/opencontainers/runtime-spec/specs-go"
@@ -13,12 +11,6 @@ import (
)
func TestGenerateUserPasswdEntry(t *testing.T) {
- dir, err := ioutil.TempDir("", "libpod_test_")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
-
c := Container{
config: &ContainerConfig{
Spec: &spec.Spec{},
diff --git a/libpod/container_internal_test.go b/libpod/container_internal_test.go
index 2b50093b2..05fdba04f 100644
--- a/libpod/container_internal_test.go
+++ b/libpod/container_internal_test.go
@@ -19,11 +19,7 @@ var hookPath string
func TestPostDeleteHooks(t *testing.T) {
ctx := context.Background()
- dir, err := ioutil.TempDir("", "libpod_test_")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
statePath := filepath.Join(dir, "state")
copyPath := filepath.Join(dir, "copy")
@@ -57,7 +53,7 @@ func TestPostDeleteHooks(t *testing.T) {
},
},
}
- err = c.postDeleteHooks(ctx)
+ err := c.postDeleteHooks(ctx)
if err != nil {
t.Fatal(err)
}
diff --git a/libpod/lock/file/file_lock_test.go b/libpod/lock/file/file_lock_test.go
index 7ac8bf31a..2d7dded23 100644
--- a/libpod/lock/file/file_lock_test.go
+++ b/libpod/lock/file/file_lock_test.go
@@ -2,7 +2,6 @@ package file
import (
"fmt"
- "io/ioutil"
"os"
"os/exec"
"path/filepath"
@@ -13,11 +12,9 @@ import (
// Test that creating and destroying locks work
func TestCreateAndDeallocate(t *testing.T) {
- d, err := ioutil.TempDir("", "filelock")
- assert.NoError(t, err)
- defer os.RemoveAll(d)
+ d := t.TempDir()
- _, err = OpenFileLock(filepath.Join(d, "locks"))
+ _, err := OpenFileLock(filepath.Join(d, "locks"))
assert.Error(t, err)
l, err := CreateFileLock(filepath.Join(d, "locks"))
@@ -47,9 +44,7 @@ func TestCreateAndDeallocate(t *testing.T) {
// Test that creating and destroying locks work
func TestLockAndUnlock(t *testing.T) {
- d, err := ioutil.TempDir("", "filelock")
- assert.NoError(t, err)
- defer os.RemoveAll(d)
+ d := t.TempDir()
l, err := CreateFileLock(filepath.Join(d, "locks"))
assert.NoError(t, err)
diff --git a/pkg/hooks/hooks_test.go b/pkg/hooks/hooks_test.go
index fb3c63250..d5d0c2a32 100644
--- a/pkg/hooks/hooks_test.go
+++ b/pkg/hooks/hooks_test.go
@@ -4,7 +4,6 @@ import (
"context"
"fmt"
"io/ioutil"
- "os"
"path/filepath"
"runtime"
"testing"
@@ -20,11 +19,7 @@ var path string
func TestGoodNew(t *testing.T) {
ctx := context.Background()
- dir, err := ioutil.TempDir("", "hooks-test-")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
for i, name := range []string{
"01-my-hook.json",
@@ -36,7 +31,7 @@ func TestGoodNew(t *testing.T) {
if i == 0 {
extraStages = ", \"poststart\", \"poststop\""
}
- err = ioutil.WriteFile(jsonPath, []byte(fmt.Sprintf("{\"version\": \"1.0.0\", \"hook\": {\"path\": \"%s\", \"timeout\": %d}, \"when\": {\"always\": true}, \"stages\": [\"prestart\"%s]}", path, i+1, extraStages)), 0644)
+ err := ioutil.WriteFile(jsonPath, []byte(fmt.Sprintf("{\"version\": \"1.0.0\", \"hook\": {\"path\": \"%s\", \"timeout\": %d}, \"when\": {\"always\": true}, \"stages\": [\"prestart\"%s]}", path, i+1, extraStages)), 0644)
if err != nil {
t.Fatal(err)
}
@@ -92,14 +87,10 @@ func TestGoodNew(t *testing.T) {
func TestBadNew(t *testing.T) {
ctx := context.Background()
- dir, err := ioutil.TempDir("", "hooks-test-")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
jsonPath := filepath.Join(dir, "a.json")
- err = ioutil.WriteFile(jsonPath, []byte("{\"version\": \"-1\"}"), 0644)
+ err := ioutil.WriteFile(jsonPath, []byte("{\"version\": \"-1\"}"), 0644)
if err != nil {
t.Fatal(err)
}
diff --git a/pkg/hooks/monitor_test.go b/pkg/hooks/monitor_test.go
index eed02e033..1067d2920 100644
--- a/pkg/hooks/monitor_test.go
+++ b/pkg/hooks/monitor_test.go
@@ -15,11 +15,7 @@ import (
func TestMonitorOneDirGood(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
- dir, err := ioutil.TempDir("", "hooks-test-")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
manager, err := New(ctx, []string{dir}, []string{})
if err != nil {
@@ -114,17 +110,8 @@ func TestMonitorOneDirGood(t *testing.T) {
func TestMonitorTwoDirGood(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
- primaryDir, err := ioutil.TempDir("", "hooks-test-primary-")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(primaryDir)
-
- fallbackDir, err := ioutil.TempDir("", "hooks-test-fallback-")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(fallbackDir)
+ primaryDir := t.TempDir()
+ fallbackDir := t.TempDir()
manager, err := New(ctx, []string{fallbackDir, primaryDir}, []string{})
if err != nil {
diff --git a/pkg/hooks/read_test.go b/pkg/hooks/read_test.go
index 6e6c190bb..381d66bbe 100644
--- a/pkg/hooks/read_test.go
+++ b/pkg/hooks/read_test.go
@@ -29,14 +29,10 @@ func TestUnknownPath(t *testing.T) {
}
func TestGoodFile(t *testing.T) {
- dir, err := ioutil.TempDir("", "hooks-test-")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
jsonPath := filepath.Join(dir, "hook.json")
- err = ioutil.WriteFile(jsonPath, []byte(fmt.Sprintf("{\"version\": \"1.0.0\", \"hook\": {\"path\": \"%s\"}, \"when\": {\"always\": true}, \"stages\": [\"prestart\"]}", path)), 0644)
+ err := ioutil.WriteFile(jsonPath, []byte(fmt.Sprintf("{\"version\": \"1.0.0\", \"hook\": {\"path\": \"%s\"}, \"when\": {\"always\": true}, \"stages\": [\"prestart\"]}", path)), 0644)
if err != nil {
t.Fatal(err)
}
@@ -59,14 +55,10 @@ func TestGoodFile(t *testing.T) {
}
func TestBadFile(t *testing.T) {
- dir, err := ioutil.TempDir("", "hooks-test-")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
path := filepath.Join(dir, "hook.json")
- err = ioutil.WriteFile(path, []byte("{\"version\": \"1.0.0\", \"hook\": \"not-a-string\"}"), 0644)
+ err := ioutil.WriteFile(path, []byte("{\"version\": \"1.0.0\", \"hook\": \"not-a-string\"}"), 0644)
if err != nil {
t.Fatal(err)
}
@@ -121,13 +113,9 @@ func TestInvalidCurrentJSON(t *testing.T) {
}
func TestGoodDir(t *testing.T) {
- dir, err := ioutil.TempDir("", "hooks-test-")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
- err = ioutil.WriteFile(filepath.Join(dir, "README"), []byte("not a hook"), 0644)
+ err := ioutil.WriteFile(filepath.Join(dir, "README"), []byte("not a hook"), 0644)
if err != nil {
t.Fatal(err)
}
@@ -172,14 +160,10 @@ func TestUnknownDir(t *testing.T) {
}
func TestBadDir(t *testing.T) {
- dir, err := ioutil.TempDir("", "hooks-test-")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
jsonPath := filepath.Join(dir, "a.json")
- err = ioutil.WriteFile(jsonPath, []byte("{\"version\": \"-1\"}"), 0644)
+ err := ioutil.WriteFile(jsonPath, []byte("{\"version\": \"-1\"}"), 0644)
if err != nil {
t.Fatal(err)
}
@@ -193,14 +177,10 @@ func TestBadDir(t *testing.T) {
}
func TestHookExecutableDoesNotExit(t *testing.T) {
- dir, err := ioutil.TempDir("", "hooks-test-")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
jsonPath := filepath.Join(dir, "hook.json")
- err = ioutil.WriteFile(jsonPath, []byte("{\"version\": \"1.0.0\", \"hook\": {\"path\": \"/does/not/exist\"}, \"when\": {\"always\": true}, \"stages\": [\"prestart\"]}"), 0644)
+ err := ioutil.WriteFile(jsonPath, []byte("{\"version\": \"1.0.0\", \"hook\": {\"path\": \"/does/not/exist\"}, \"when\": {\"always\": true}, \"stages\": [\"prestart\"]}"), 0644)
if err != nil {
t.Fatal(err)
}
diff --git a/pkg/machine/qemu/config_test.go b/pkg/machine/qemu/config_test.go
index 3f92881fa..4d96ec6e7 100644
--- a/pkg/machine/qemu/config_test.go
+++ b/pkg/machine/qemu/config_test.go
@@ -52,23 +52,15 @@ func TestMachineFile_GetPath(t *testing.T) {
func TestNewMachineFile(t *testing.T) {
empty := ""
- homedir, err := os.MkdirTemp("/tmp", "homedir")
- if err != nil {
- panic(err)
- }
- defer os.RemoveAll(homedir)
- longTemp, err := os.MkdirTemp("/tmp", "tmpdir")
- if err != nil {
- panic(err)
- }
- defer os.RemoveAll(longTemp)
+ homedir := t.TempDir()
+ longTemp := t.TempDir()
oldhome := os.Getenv("HOME")
os.Setenv("HOME", homedir) //nolint: tenv
defer os.Setenv("HOME", oldhome)
p := "/var/tmp/podman/my.sock"
longp := filepath.Join(longTemp, utils.RandomString(100), "my.sock")
- err = os.MkdirAll(filepath.Dir(longp), 0755)
+ err := os.MkdirAll(filepath.Dir(longp), 0755)
if err != nil {
panic(err)
}
diff --git a/pkg/specgen/generate/kube/play_test.go b/pkg/specgen/generate/kube/play_test.go
index 448522c2a..e01d62b08 100644
--- a/pkg/specgen/generate/kube/play_test.go
+++ b/pkg/specgen/generate/kube/play_test.go
@@ -3,9 +3,7 @@ package kube
import (
"encoding/json"
"fmt"
- "io/ioutil"
"math"
- "os"
"runtime"
"strconv"
"testing"
@@ -39,9 +37,7 @@ func createSecrets(t *testing.T, d string) *secrets.SecretsManager {
}
func TestEnvVarsFrom(t *testing.T) {
- d, err := ioutil.TempDir("", "secrets")
- assert.NoError(t, err)
- defer os.RemoveAll(d)
+ d := t.TempDir()
secretsManager := createSecrets(t, d)
tests := []struct {
@@ -191,9 +187,7 @@ func TestEnvVarsFrom(t *testing.T) {
}
func TestEnvVarValue(t *testing.T) {
- d, err := ioutil.TempDir("", "secrets")
- assert.NoError(t, err)
- defer os.RemoveAll(d)
+ d := t.TempDir()
secretsManager := createSecrets(t, d)
stringNumCPUs := strconv.Itoa(runtime.NumCPU())