From cf35168f0a9cf457f0622cd89cff84bdbe610d58 Mon Sep 17 00:00:00 2001 From: Eng Zer Jun Date: Thu, 5 May 2022 21:09:41 +0800 Subject: 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 --- libpod/container_internal_linux_test.go | 8 -------- libpod/container_internal_test.go | 8 ++------ libpod/lock/file/file_lock_test.go | 11 +++-------- 3 files changed, 5 insertions(+), 22 deletions(-) (limited to 'libpod') 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) -- cgit v1.2.3-54-g00ecf From d7f43e6772b734d0a7a7533bf94a61939ac1ebe5 Mon Sep 17 00:00:00 2001 From: Eng Zer Jun Date: Thu, 5 May 2022 21:39:46 +0800 Subject: test: fix failing TestPostDeleteHooks We no longer create the temporary directory as `libpod_test_*`. The directory returned by `t.TempDir()` is TestPostDeleteHooks/001 Signed-off-by: Eng Zer Jun --- libpod/container_internal_test.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'libpod') diff --git a/libpod/container_internal_test.go b/libpod/container_internal_test.go index 05fdba04f..1b4e62e91 100644 --- a/libpod/container_internal_test.go +++ b/libpod/container_internal_test.go @@ -4,10 +4,8 @@ import ( "context" "fmt" "io/ioutil" - "os" "path/filepath" "runtime" - "strings" "testing" rspec "github.com/opencontainers/runtime-spec/specs-go" @@ -58,7 +56,7 @@ func TestPostDeleteHooks(t *testing.T) { t.Fatal(err) } - stateRegexp := `{"ociVersion":"1\.0\.2-dev","id":"123abc","status":"stopped","bundle":"` + strings.TrimSuffix(os.TempDir(), "/") + `/libpod_test_[0-9]*","annotations":{"a":"b"}}` + stateRegexp := `{"ociVersion":"1\.0\.2-dev","id":"123abc","status":"stopped","bundle":"` + dir + `","annotations":{"a":"b"}}` for _, p := range []string{statePath, copyPath} { path := p t.Run(path, func(t *testing.T) { -- cgit v1.2.3-54-g00ecf