From 7bd1b77331452c2797731bc338e06e38b22aa7bb Mon Sep 17 00:00:00 2001 From: Oleksandr Redko Date: Fri, 5 Jan 2024 22:35:07 +0200 Subject: [PATCH] Simplify tests by testing.TempDir instead of os.MkdirTemp Signed-off-by: Oleksandr Redko --- libimage/corrupted_test.go | 3 +- libimage/filters_test.go | 18 ++--- libimage/history_test.go | 3 +- libimage/image_test.go | 24 +++---- libimage/import_test.go | 3 +- libimage/load_test.go | 3 +- libimage/manifest_list_test.go | 12 ++-- libimage/manifests/manifests_test.go | 22 ++---- libimage/pull_test.go | 19 ++--- libimage/push_test.go | 13 ++-- libimage/remove_test.go | 3 +- libimage/runtime_test.go | 18 ++--- libimage/save_test.go | 7 +- pkg/chown/chown_test.go | 15 +--- pkg/configmaps/configmaps_test.go | 73 ++++++-------------- pkg/configmaps/filedriver/filedriver_test.go | 27 ++------ pkg/hooks/exec/exec_test.go | 5 +- pkg/secrets/filedriver/filedriver_test.go | 27 ++------ pkg/secrets/passdriver/passdriver_test.go | 28 +++----- pkg/secrets/secrets_test.go | 73 ++++++-------------- pkg/secrets/shelldriver/shelldriver_test.go | 22 +++--- pkg/supplemented/supplemented_test.go | 27 +++----- pkg/sysinfo/sysinfo_linux_test.go | 12 ++-- 23 files changed, 135 insertions(+), 322 deletions(-) diff --git a/libimage/corrupted_test.go b/libimage/corrupted_test.go index 57a8b2f39..2b1750cf5 100644 --- a/libimage/corrupted_test.go +++ b/libimage/corrupted_test.go @@ -16,8 +16,7 @@ import ( func TestCorruptedLayers(t *testing.T) { // Regression tests for https://bugzilla.redhat.com/show_bug.cgi?id=1966872. - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} pullOptions.Writer = os.Stdout diff --git a/libimage/filters_test.go b/libimage/filters_test.go index 46615d006..7220e1eb8 100644 --- a/libimage/filters_test.go +++ b/libimage/filters_test.go @@ -17,8 +17,7 @@ func TestFilterReference(t *testing.T) { busyboxLatest := "quay.io/libpod/busybox:latest" alpineLatest := "quay.io/libpod/alpine:latest" - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} @@ -93,8 +92,7 @@ func TestFilterDigest(t *testing.T) { busyboxLatest := "quay.io/libpod/busybox:latest" alpineLatest := "quay.io/libpod/alpine:latest" - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} @@ -136,8 +134,7 @@ func TestFilterID(t *testing.T) { busyboxLatest := "quay.io/libpod/busybox:latest" alpineLatest := "quay.io/libpod/alpine:latest" - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} @@ -175,8 +172,7 @@ func TestFilterManifest(t *testing.T) { busyboxLatest := "quay.io/libpod/busybox:latest" alpineLatest := "quay.io/libpod/alpine:latest" - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} @@ -229,8 +225,7 @@ func TestFilterAfterSinceBeforeUntil(t *testing.T) { busyboxLatest := "quay.io/libpod/busybox:latest" alpineLatest := "quay.io/libpod/alpine:latest" - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} @@ -282,8 +277,7 @@ func TestFilterIdLabel(t *testing.T) { busyboxLatest := "quay.io/libpod/busybox:latest" alpineLatest := "quay.io/libpod/alpine:latest" - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} diff --git a/libimage/history_test.go b/libimage/history_test.go index ba1b525c6..f3fc8a5d5 100644 --- a/libimage/history_test.go +++ b/libimage/history_test.go @@ -11,8 +11,7 @@ import ( ) func TestHistory(t *testing.T) { - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() name := "quay.io/libpod/alpine:3.10.2" diff --git a/libimage/image_test.go b/libimage/image_test.go index cb1259d35..d463794fc 100644 --- a/libimage/image_test.go +++ b/libimage/image_test.go @@ -22,8 +22,7 @@ func TestImageFunctions(t *testing.T) { busyboxLatest := busybox + ":latest" busyboxDigest := busybox + "@" - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() // Looking up image by invalid sha. @@ -190,8 +189,7 @@ func TestLookupImage(t *testing.T) { alpineNoTag := "quay.io/libpod/alpine" alpineLatest := alpineNoTag + ":latest" - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} @@ -245,8 +243,7 @@ func TestLookupImage(t *testing.T) { } func TestInspectHealthcheck(t *testing.T) { - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() imageName := "quay.io/libpod/healthcheck:config-only" @@ -265,8 +262,7 @@ func TestInspectHealthcheck(t *testing.T) { } func TestTag(t *testing.T) { - runtime, image, cleanup := getImageAndRuntime(t) - defer cleanup() + runtime, image := getImageAndRuntime(t) digest := "sha256:adab3844f497ab9171f070d4cae4114b5aec565ac772e2f2579405b78be67c96" @@ -303,8 +299,7 @@ func TestTag(t *testing.T) { } func TestTagAndUntagParallel(t *testing.T) { - runtime, image, cleanup := getImageAndRuntime(t) - defer cleanup() + runtime, image := getImageAndRuntime(t) tagCount := 10 wg := sync.WaitGroup{} @@ -354,8 +349,7 @@ func TestTagAndUntagParallel(t *testing.T) { } func TestUntag(t *testing.T) { - runtime, image, cleanup := getImageAndRuntime(t) - defer cleanup() + runtime, image := getImageAndRuntime(t) digest := "sha256:adab3844f497ab9171f070d4cae4114b5aec565ac772e2f2579405b78be67c96" @@ -394,12 +388,12 @@ func TestUntag(t *testing.T) { require.ErrorIs(t, err, errUntagDigest, "check for specific digest error") } -func getImageAndRuntime(t *testing.T) (*Runtime, *Image, func()) { +func getImageAndRuntime(t *testing.T) (*Runtime, *Image) { // Note: this will resolve pull from the GCR registry (see // testdata/registries.conf). busyboxLatest := "docker.io/library/busybox:latest" - runtime, cleanup := testNewRuntime(t) + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} @@ -410,5 +404,5 @@ func getImageAndRuntime(t *testing.T) (*Runtime, *Image, func()) { image := pulledImages[0] - return runtime, image, cleanup + return runtime, image } diff --git a/libimage/import_test.go b/libimage/import_test.go index 89d315e89..fa2fc9d3a 100644 --- a/libimage/import_test.go +++ b/libimage/import_test.go @@ -11,8 +11,7 @@ import ( ) func TestImport(t *testing.T) { - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() importOptions := &ImportOptions{} diff --git a/libimage/load_test.go b/libimage/load_test.go index 96b9eb1d9..af26086f1 100644 --- a/libimage/load_test.go +++ b/libimage/load_test.go @@ -22,8 +22,7 @@ func TestLoad(t *testing.T) { os.Unsetenv("TMPDIR") }() - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() loadOptions := &LoadOptions{} loadOptions.Writer = os.Stdout diff --git a/libimage/manifest_list_test.go b/libimage/manifest_list_test.go index 075aae9a1..2b4cc375b 100644 --- a/libimage/manifest_list_test.go +++ b/libimage/manifest_list_test.go @@ -13,8 +13,7 @@ import ( ) func TestCreateManifestList(t *testing.T) { - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() list, err := runtime.CreateManifestList("mylist") @@ -44,8 +43,7 @@ func TestCreateManifestList(t *testing.T) { // Inspect must contain both formats i.e OCIv1 and docker func TestInspectManifestListWithAnnotations(t *testing.T) { listName := "testinspect" - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() list, err := runtime.CreateManifestList(listName) @@ -84,8 +82,7 @@ func TestInspectManifestListWithAnnotations(t *testing.T) { func TestCreateAndTagManifestList(t *testing.T) { tagName := "testlisttagged" listName := "testlist" - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() list, err := runtime.CreateManifestList(listName) @@ -121,8 +118,7 @@ func TestCreateAndTagManifestList(t *testing.T) { func TestCreateAndRemoveManifestList(t *testing.T) { tagName := "manifestlisttagged" listName := "manifestlist" - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() list, err := runtime.CreateManifestList(listName) diff --git a/libimage/manifests/manifests_test.go b/libimage/manifests/manifests_test.go index 7389fd5d2..7320b6985 100644 --- a/libimage/manifests/manifests_test.go +++ b/libimage/manifests/manifests_test.go @@ -4,7 +4,6 @@ import ( "bytes" "context" "fmt" - "os" "path/filepath" "testing" "time" @@ -50,10 +49,7 @@ func TestSaveLoad(t *testing.T) { t.Skip("Test can only run as root") } - dir, err := os.MkdirTemp("", "manifests") - assert.Nilf(t, err, "error creating temporary directory") - defer os.RemoveAll(dir) - + dir := t.TempDir() storeOptions := storage.StoreOptions{ GraphRoot: filepath.Join(dir, "root"), RunRoot: filepath.Join(dir, "runroot"), @@ -168,10 +164,7 @@ func TestReference(t *testing.T) { } ctx := context.Background() - dir, err := os.MkdirTemp("", "manifests") - assert.Nilf(t, err, "error creating temporary directory") - defer os.RemoveAll(dir) - + dir := t.TempDir() storeOptions := storage.StoreOptions{ GraphRoot: filepath.Join(dir, "root"), RunRoot: filepath.Join(dir, "runroot"), @@ -268,10 +261,7 @@ func TestPushManifest(t *testing.T) { } ctx := context.Background() - dir, err := os.MkdirTemp("", "manifests") - assert.Nilf(t, err, "error creating temporary directory") - defer os.RemoveAll(dir) - + dir := t.TempDir() storeOptions := storage.StoreOptions{ GraphRoot: filepath.Join(dir, "root"), RunRoot: filepath.Join(dir, "runroot"), @@ -288,11 +278,7 @@ func TestPushManifest(t *testing.T) { } }() - dest, err := os.MkdirTemp("", "manifests") - assert.Nilf(t, err, "error creating temporary directory") - defer os.RemoveAll(dest) - - destRef, err := alltransports.ParseImageName(fmt.Sprintf("dir:%s", dest)) + destRef, err := alltransports.ParseImageName(fmt.Sprintf("dir:%s", t.TempDir())) assert.Nilf(t, err, "ParseImageName()") ref, err := alltransports.ParseImageName(otherListImage) diff --git a/libimage/pull_test.go b/libimage/pull_test.go index 3244bf8d9..9517956e4 100644 --- a/libimage/pull_test.go +++ b/libimage/pull_test.go @@ -15,8 +15,7 @@ import ( ) func TestPull(t *testing.T) { - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} pullOptions.Writer = os.Stdout @@ -81,8 +80,8 @@ func TestPull(t *testing.T) { } func TestPullPlatforms(t *testing.T) { - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) + ctx := context.Background() pullOptions := &PullOptions{} pullOptions.Writer = os.Stdout @@ -141,8 +140,7 @@ func TestPullPlatforms(t *testing.T) { } func TestPullPlatformsWithEmptyRegistriesConf(t *testing.T) { - runtime, cleanup := testNewRuntime(t, testNewRuntimeOptions{registriesConfPath: "/dev/null"}) - defer cleanup() + runtime := testNewRuntime(t, testNewRuntimeOptions{registriesConfPath: "/dev/null"}) ctx := context.Background() pullOptions := &PullOptions{} pullOptions.Writer = os.Stdout @@ -171,8 +169,7 @@ func TestPullPlatformsWithEmptyRegistriesConf(t *testing.T) { } func TestPullPolicy(t *testing.T) { - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} @@ -191,8 +188,7 @@ func TestPullPolicy(t *testing.T) { func TestShortNameAndIDconflict(t *testing.T) { // Regression test for https://github.com/containers/podman/issues/12761 - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} pullOptions.Writer = os.Stdout @@ -228,8 +224,7 @@ func TestPullOCINoReference(t *testing.T) { // specified reference is preserved in the image name. busybox := "docker.io/library/busybox:latest" - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} pullOptions.Writer = os.Stdout diff --git a/libimage/push_test.go b/libimage/push_test.go index 1fe702bbd..27d4a87c9 100644 --- a/libimage/push_test.go +++ b/libimage/push_test.go @@ -16,8 +16,7 @@ import ( ) func TestPush(t *testing.T) { - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() // Prefetch alpine. @@ -29,9 +28,7 @@ func TestPush(t *testing.T) { pushOptions := &PushOptions{} pushOptions.Writer = os.Stdout - workdir, err := os.MkdirTemp("", "libimagepush") - require.NoError(t, err) - defer os.RemoveAll(workdir) + workdir := t.TempDir() for _, test := range []struct { source string @@ -77,8 +74,7 @@ func TestPush(t *testing.T) { } func TestPushOtherPlatform(t *testing.T) { - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() // Prefetch alpine. @@ -104,8 +100,7 @@ func TestPushOtherPlatform(t *testing.T) { } func TestPushWithForceCompression(t *testing.T) { - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() // Prefetch alpine. diff --git a/libimage/remove_test.go b/libimage/remove_test.go index 236343853..e15b650ab 100644 --- a/libimage/remove_test.go +++ b/libimage/remove_test.go @@ -16,8 +16,7 @@ func TestRemoveImages(t *testing.T) { // testdata/registries.conf). busyboxLatest := "docker.io/library/busybox:latest" - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() pullOptions := &PullOptions{} diff --git a/libimage/runtime_test.go b/libimage/runtime_test.go index add73f30d..42d9b6e38 100644 --- a/libimage/runtime_test.go +++ b/libimage/runtime_test.go @@ -24,12 +24,9 @@ type testNewRuntimeOptions struct { registriesConfPath string } -// Create a new Runtime that can be used for testing. The second return value -// is a clean-up function that should be called by users to make sure all -// temporary test data gets removed. -func testNewRuntime(t *testing.T, options ...testNewRuntimeOptions) (runtime *Runtime, cleanup func()) { - workdir, err := os.MkdirTemp("", "testStorageRuntime") - require.NoError(t, err) +// Create a new Runtime that can be used for testing. +func testNewRuntime(t *testing.T, options ...testNewRuntimeOptions) *Runtime { + workdir := t.TempDir() storeOptions := &storage.StoreOptions{ RunRoot: workdir, GraphRoot: workdir, @@ -46,20 +43,17 @@ func testNewRuntime(t *testing.T, options ...testNewRuntimeOptions) (runtime *Ru systemContext.SystemRegistriesConfPath = options[0].registriesConfPath } - runtime, err = RuntimeFromStoreOptions(&RuntimeOptions{SystemContext: systemContext}, storeOptions) + runtime, err := RuntimeFromStoreOptions(&RuntimeOptions{SystemContext: systemContext}, storeOptions) require.NoError(t, err) tmpd, err := tmpdir() require.NoError(t, err) require.Equal(t, runtime.systemContext.BigFilesTemporaryDir, tmpd) - cleanup = func() { - _ = runtime.Shutdown(true) - _ = os.RemoveAll(workdir) - } + t.Cleanup(func() { _ = runtime.Shutdown(true) }) sys := runtime.SystemContext() require.NotNil(t, sys) - return runtime, cleanup + return runtime } func TestTmpdir(t *testing.T) { diff --git a/libimage/save_test.go b/libimage/save_test.go index 43022980e..73b4f3606 100644 --- a/libimage/save_test.go +++ b/libimage/save_test.go @@ -13,8 +13,7 @@ import ( ) func TestSave(t *testing.T) { - runtime, cleanup := testNewRuntime(t) - defer cleanup() + runtime := testNewRuntime(t) ctx := context.Background() // Prefetch alpine, busybox. @@ -73,9 +72,7 @@ func TestSave(t *testing.T) { _, err = runtime.Load(ctx, imageCache.Name(), loadOptions) require.NoError(t, err) - tmp, err := os.MkdirTemp("", "libimagesavetest") - require.NoError(t, err) - defer os.RemoveAll(tmp) + tmp := t.TempDir() if !test.isDir { tmp += "/archive.tar" } diff --git a/pkg/chown/chown_test.go b/pkg/chown/chown_test.go index 72774589a..292190bac 100644 --- a/pkg/chown/chown_test.go +++ b/pkg/chown/chown_test.go @@ -14,13 +14,6 @@ func TestDangerousHostPath(t *testing.T) { t.Skip("Current paths are supported only by Linux") } - // Create a temp dir that is not dangerous - td, err := os.MkdirTemp("/tmp", "validDir") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(td) - tests := []struct { Path string Expected bool @@ -34,7 +27,7 @@ func TestDangerousHostPath(t *testing.T) { "", }, { - td, + t.TempDir(), // Create a temp dir that is not dangerous false, false, "", @@ -65,11 +58,7 @@ func TestChangeHostPathOwnership(t *testing.T) { } // Create a temp dir that is not dangerous - td, err := os.MkdirTemp("/tmp", "validDir") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(td) + td := t.TempDir() // Get host path info f, err := os.Lstat(td) diff --git a/pkg/configmaps/configmaps_test.go b/pkg/configmaps/configmaps_test.go index e10c98c23..3e509e4ca 100644 --- a/pkg/configmaps/configmaps_test.go +++ b/pkg/configmaps/configmaps_test.go @@ -2,7 +2,6 @@ package configmaps import ( "bytes" - "os" "testing" "github.com/stretchr/testify/require" @@ -12,26 +11,18 @@ var drivertype = "file" var opts map[string]string -func setup() (*ConfigMapManager, string, error) { - testpath, err := os.MkdirTemp("", "cmdata") - if err != nil { - return nil, "", err - } +func setup(t *testing.T) *ConfigMapManager { + testpath := t.TempDir() manager, err := NewManager(testpath) + require.NoError(t, err) opts = map[string]string{"path": testpath} - return manager, testpath, err -} - -func cleanup(testpath string) { - os.RemoveAll(testpath) + return manager } func TestAddSecretAndLookupData(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) - _, err = manager.Store("myconfigmap", []byte("mydata"), drivertype, opts) + _, err := manager.Store("myconfigmap", []byte("mydata"), drivertype, opts) require.NoError(t, err) _, err = manager.lookupConfigMap("myconfigmap") @@ -45,12 +36,10 @@ func TestAddSecretAndLookupData(t *testing.T) { } func TestAddConfigMapName(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) // test one char configmap name - _, err = manager.Store("a", []byte("mydata"), drivertype, opts) + _, err := manager.Store("a", []byte("mydata"), drivertype, opts) require.NoError(t, err) _, err = manager.lookupConfigMap("a") @@ -82,9 +71,7 @@ func TestAddConfigMapName(t *testing.T) { } func TestAddMultipleConfigMaps(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) id, err := manager.Store("myconfigmap", []byte("mydata"), drivertype, opts) require.NoError(t, err) @@ -116,11 +103,9 @@ func TestAddMultipleConfigMaps(t *testing.T) { } func TestAddConfigMapDupName(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) - _, err = manager.Store("myconfigmap", []byte("mydata"), drivertype, opts) + _, err := manager.Store("myconfigmap", []byte("mydata"), drivertype, opts) require.NoError(t, err) _, err = manager.Store("myconfigmap", []byte("mydata"), drivertype, opts) @@ -128,9 +113,7 @@ func TestAddConfigMapDupName(t *testing.T) { } func TestAddConfigMapPrefix(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) // If the randomly generated configmap id is something like "abcdeiuoergnadufigh" // we should still allow someone to store a configmap with the name "abcd" or "a" @@ -142,11 +125,9 @@ func TestAddConfigMapPrefix(t *testing.T) { } func TestRemoveConfigMap(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) - _, err = manager.Store("myconfigmap", []byte("mydata"), drivertype, opts) + _, err := manager.Store("myconfigmap", []byte("mydata"), drivertype, opts) require.NoError(t, err) _, err = manager.lookupConfigMap("myconfigmap") @@ -163,18 +144,14 @@ func TestRemoveConfigMap(t *testing.T) { } func TestRemoveConfigMapNoExist(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) - _, err = manager.Delete("myconfigmap") + _, err := manager.Delete("myconfigmap") require.Error(t, err) } func TestLookupAllConfigMaps(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) id, err := manager.Store("myconfigmap", []byte("mydata"), drivertype, opts) require.NoError(t, err) @@ -186,9 +163,7 @@ func TestLookupAllConfigMaps(t *testing.T) { } func TestInspectConfigMapId(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) id, err := manager.Store("myconfigmap", []byte("mydata"), drivertype, opts) require.NoError(t, err) @@ -209,20 +184,16 @@ func TestInspectConfigMapId(t *testing.T) { } func TestInspectConfigMapBogus(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) - _, err = manager.Lookup("bogus") + _, err := manager.Lookup("bogus") require.Error(t, err) } func TestConfigMapList(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) - _, err = manager.Store("myconfigmap", []byte("mydata"), drivertype, opts) + _, err := manager.Store("myconfigmap", []byte("mydata"), drivertype, opts) require.NoError(t, err) _, err = manager.Store("myconfigmap2", []byte("mydata2"), drivertype, opts) require.NoError(t, err) diff --git a/pkg/configmaps/filedriver/filedriver_test.go b/pkg/configmaps/filedriver/filedriver_test.go index dee9dc2d4..657ad9a24 100644 --- a/pkg/configmaps/filedriver/filedriver_test.go +++ b/pkg/configmaps/filedriver/filedriver_test.go @@ -1,24 +1,14 @@ package filedriver import ( - "os" "testing" "github.com/stretchr/testify/require" ) -func setup() (*Driver, error) { - tmppath, err := os.MkdirTemp("", "configmapsdata") - if err != nil { - return nil, err - } - return NewDriver(tmppath) -} - func TestStoreAndLookupConfigMapData(t *testing.T) { - tstdriver, err := setup() + tstdriver, err := NewDriver(t.TempDir()) require.NoError(t, err) - defer os.Remove(tstdriver.configMapsDataFilePath) err = tstdriver.Store("unique_id", []byte("somedata")) require.NoError(t, err) @@ -29,9 +19,8 @@ func TestStoreAndLookupConfigMapData(t *testing.T) { } func TestStoreDupID(t *testing.T) { - tstdriver, err := setup() + tstdriver, err := NewDriver(t.TempDir()) require.NoError(t, err) - defer os.Remove(tstdriver.configMapsDataFilePath) err = tstdriver.Store("unique_id", []byte("somedata")) require.NoError(t, err) @@ -41,18 +30,16 @@ func TestStoreDupID(t *testing.T) { } func TestLookupBogus(t *testing.T) { - tstdriver, err := setup() + tstdriver, err := NewDriver(t.TempDir()) require.NoError(t, err) - defer os.Remove(tstdriver.configMapsDataFilePath) _, err = tstdriver.Lookup("bogus") require.Error(t, err) } func TestDeleteConfigMapData(t *testing.T) { - tstdriver, err := setup() + tstdriver, err := NewDriver(t.TempDir()) require.NoError(t, err) - defer os.Remove(tstdriver.configMapsDataFilePath) err = tstdriver.Store("unique_id", []byte("somedata")) require.NoError(t, err) @@ -64,18 +51,16 @@ func TestDeleteConfigMapData(t *testing.T) { } func TestDeleteConfigMapDataNotExist(t *testing.T) { - tstdriver, err := setup() + tstdriver, err := NewDriver(t.TempDir()) require.NoError(t, err) - defer os.Remove(tstdriver.configMapsDataFilePath) err = tstdriver.Delete("bogus") require.Error(t, err) } func TestList(t *testing.T) { - tstdriver, err := setup() + tstdriver, err := NewDriver(t.TempDir()) require.NoError(t, err) - defer os.Remove(tstdriver.configMapsDataFilePath) err = tstdriver.Store("unique_id", []byte("somedata")) require.NoError(t, err) diff --git a/pkg/hooks/exec/exec_test.go b/pkg/hooks/exec/exec_test.go index c4517a56a..b7d80c60b 100644 --- a/pkg/hooks/exec/exec_test.go +++ b/pkg/hooks/exec/exec_test.go @@ -147,10 +147,7 @@ func TestRunCwd(t *testing.T) { Path: path, Args: []string{"sh", "-c", "pwd"}, } - cwd, err := os.MkdirTemp("", "userdata") - if err != nil { - t.Fatal(err) - } + cwd := t.TempDir() var stderr, stdout bytes.Buffer hookErr, err := RunWithOptions(ctx, RunOptions{Hook: hook, Dir: cwd, State: []byte("{}"), Stdout: &stdout, Stderr: &stderr, PostKillTimeout: DefaultPostKillTimeout}) if err != nil { diff --git a/pkg/secrets/filedriver/filedriver_test.go b/pkg/secrets/filedriver/filedriver_test.go index 162aa0ca2..bbdd66ede 100644 --- a/pkg/secrets/filedriver/filedriver_test.go +++ b/pkg/secrets/filedriver/filedriver_test.go @@ -1,24 +1,14 @@ package filedriver import ( - "os" "testing" "github.com/stretchr/testify/require" ) -func setup() (*Driver, error) { - tmppath, err := os.MkdirTemp("", "secretsdata") - if err != nil { - return nil, err - } - return NewDriver(tmppath) -} - func TestStoreAndLookupSecretData(t *testing.T) { - tstdriver, err := setup() + tstdriver, err := NewDriver(t.TempDir()) require.NoError(t, err) - defer os.Remove(tstdriver.secretsDataFilePath) err = tstdriver.Store("unique_id", []byte("somedata")) require.NoError(t, err) @@ -29,9 +19,8 @@ func TestStoreAndLookupSecretData(t *testing.T) { } func TestStoreDupID(t *testing.T) { - tstdriver, err := setup() + tstdriver, err := NewDriver(t.TempDir()) require.NoError(t, err) - defer os.Remove(tstdriver.secretsDataFilePath) err = tstdriver.Store("unique_id", []byte("somedata")) require.NoError(t, err) @@ -41,18 +30,16 @@ func TestStoreDupID(t *testing.T) { } func TestLookupBogus(t *testing.T) { - tstdriver, err := setup() + tstdriver, err := NewDriver(t.TempDir()) require.NoError(t, err) - defer os.Remove(tstdriver.secretsDataFilePath) _, err = tstdriver.Lookup("bogus") require.Error(t, err) } func TestDeleteSecretData(t *testing.T) { - tstdriver, err := setup() + tstdriver, err := NewDriver(t.TempDir()) require.NoError(t, err) - defer os.Remove(tstdriver.secretsDataFilePath) err = tstdriver.Store("unique_id", []byte("somedata")) require.NoError(t, err) @@ -64,18 +51,16 @@ func TestDeleteSecretData(t *testing.T) { } func TestDeleteSecretDataNotExist(t *testing.T) { - tstdriver, err := setup() + tstdriver, err := NewDriver(t.TempDir()) require.NoError(t, err) - defer os.Remove(tstdriver.secretsDataFilePath) err = tstdriver.Delete("bogus") require.Error(t, err) } func TestList(t *testing.T) { - tstdriver, err := setup() + tstdriver, err := NewDriver(t.TempDir()) require.NoError(t, err) - defer os.Remove(tstdriver.secretsDataFilePath) err = tstdriver.Store("unique_id", []byte("somedata")) require.NoError(t, err) diff --git a/pkg/secrets/passdriver/passdriver_test.go b/pkg/secrets/passdriver/passdriver_test.go index 5792f797e..43413ebd3 100644 --- a/pkg/secrets/passdriver/passdriver_test.go +++ b/pkg/secrets/passdriver/passdriver_test.go @@ -3,7 +3,6 @@ package passdriver import ( "context" "fmt" - "os" "testing" "github.com/stretchr/testify/require" @@ -11,13 +10,11 @@ import ( const gpgTestID = "testing@passdriver" -func setupDriver(t *testing.T) (driver *Driver, cleanup func()) { - base, err := os.MkdirTemp(os.TempDir(), "pass-test") - require.NoError(t, err) - gpghomedir, err := os.MkdirTemp(os.TempDir(), "gpg-dir") - require.NoError(t, err) +func setupDriver(t *testing.T) *Driver { + base := t.TempDir() + gpghomedir := t.TempDir() - driver, err = NewDriver(map[string]string{ + driver, err := NewDriver(map[string]string{ "root": base, "key": gpgTestID, "gpghomedir": gpghomedir, @@ -27,10 +24,7 @@ func setupDriver(t *testing.T) (driver *Driver, cleanup func()) { err = driver.gpg(context.TODO(), nil, nil, "--batch", "--passphrase", "--quick-generate-key", "testing@passdriver") require.NoError(t, err) - return driver, func() { - os.RemoveAll(base) - os.RemoveAll(gpghomedir) - } + return driver } func TestStoreAndLookup(t *testing.T) { @@ -67,8 +61,7 @@ func TestStoreAndLookup(t *testing.T) { for _, tc := range cases { tc := tc t.Run(tc.name, func(t *testing.T) { - driver, cleanup := setupDriver(t) - defer cleanup() + driver := setupDriver(t) err := driver.Store(tc.key, tc.value) if tc.expStoreErr != nil { require.Error(t, err) @@ -89,8 +82,7 @@ func TestStoreAndLookup(t *testing.T) { } func TestLookup(t *testing.T) { - driver, cleanup := setupDriver(t) - defer cleanup() + driver := setupDriver(t) // prepare a valid lookup target err := driver.Store("valid", []byte("abc")) @@ -133,8 +125,7 @@ func TestLookup(t *testing.T) { } func TestList(t *testing.T) { - driver, cleanup := setupDriver(t) - defer cleanup() + driver := setupDriver(t) require.NoError(t, driver.Store("a", []byte("abc"))) require.NoError(t, driver.Store("b", []byte("abc"))) require.NoError(t, driver.Store("c", []byte("abc"))) @@ -145,8 +136,7 @@ func TestList(t *testing.T) { } func TestDelete(t *testing.T) { - driver, cleanup := setupDriver(t) - defer cleanup() + driver := setupDriver(t) require.NoError(t, driver.Store("a", []byte("abc"))) cases := []struct { diff --git a/pkg/secrets/secrets_test.go b/pkg/secrets/secrets_test.go index 687462d93..936d146fd 100644 --- a/pkg/secrets/secrets_test.go +++ b/pkg/secrets/secrets_test.go @@ -2,7 +2,6 @@ package secrets import ( "bytes" - "os" "testing" "github.com/stretchr/testify/require" @@ -12,24 +11,16 @@ var drivertype = "file" var opts map[string]string -func setup() (*SecretsManager, string, error) { - testpath, err := os.MkdirTemp("", "secretsdata") - if err != nil { - return nil, "", err - } +func setup(t *testing.T) *SecretsManager { + testpath := t.TempDir() manager, err := NewManager(testpath) + require.NoError(t, err) opts = map[string]string{"path": testpath} - return manager, testpath, err -} - -func cleanup(testpath string) { - os.RemoveAll(testpath) + return manager } func TestAddSecretAndLookupData(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) metaData := make(map[string]string) metaData["immutable"] = "true" @@ -92,9 +83,7 @@ func TestAddSecretAndLookupData(t *testing.T) { } func TestAddSecretName(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) storeOpts := StoreOptions{ DriverOpts: opts, @@ -104,7 +93,7 @@ func TestAddSecretName(t *testing.T) { for _, value := range []string{"a", "user@mail.com", longstring[:253]} { // test one char secret name - _, err = manager.Store(value, []byte("mydata"), drivertype, storeOpts) + _, err := manager.Store(value, []byte("mydata"), drivertype, storeOpts) require.NoError(t, err) _, err = manager.lookupSecret(value) @@ -112,15 +101,13 @@ func TestAddSecretName(t *testing.T) { } for _, value := range []string{"", "chocolate,vanilla", "file/path", "foo=bar", "bad\000Null", longstring[:254]} { - _, err = manager.Store(value, []byte("mydata"), drivertype, storeOpts) + _, err := manager.Store(value, []byte("mydata"), drivertype, storeOpts) require.Error(t, err) } } func TestAddMultipleSecrets(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) storeOpts := StoreOptions{ DriverOpts: opts, @@ -156,15 +143,13 @@ func TestAddMultipleSecrets(t *testing.T) { } func TestAddSecretDupName(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) storeOpts := StoreOptions{ DriverOpts: opts, } - _, err = manager.Store("mysecret", []byte("mydata"), drivertype, storeOpts) + _, err := manager.Store("mysecret", []byte("mydata"), drivertype, storeOpts) require.NoError(t, err) _, err = manager.Store("mysecret", []byte("mydata"), drivertype, storeOpts) @@ -172,9 +157,7 @@ func TestAddSecretDupName(t *testing.T) { } func TestAddSecretPrefix(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) storeOpts := StoreOptions{ DriverOpts: opts, @@ -190,15 +173,13 @@ func TestAddSecretPrefix(t *testing.T) { } func TestRemoveSecret(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) storeOpts := StoreOptions{ DriverOpts: opts, } - _, err = manager.Store("mysecret", []byte("mydata"), drivertype, storeOpts) + _, err := manager.Store("mysecret", []byte("mydata"), drivertype, storeOpts) require.NoError(t, err) _, err = manager.lookupSecret("mysecret") @@ -215,18 +196,14 @@ func TestRemoveSecret(t *testing.T) { } func TestRemoveSecretNoExist(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) - _, err = manager.Delete("mysecret") + _, err := manager.Delete("mysecret") require.Error(t, err) } func TestLookupAllSecrets(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) storeOpts := StoreOptions{ DriverOpts: opts, @@ -242,9 +219,7 @@ func TestLookupAllSecrets(t *testing.T) { } func TestInspectSecretId(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) storeOpts := StoreOptions{ DriverOpts: opts, @@ -269,24 +244,20 @@ func TestInspectSecretId(t *testing.T) { } func TestInspectSecretBogus(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) - _, err = manager.Lookup("bogus") + _, err := manager.Lookup("bogus") require.Error(t, err) } func TestSecretList(t *testing.T) { - manager, testpath, err := setup() - require.NoError(t, err) - defer cleanup(testpath) + manager := setup(t) storeOpts := StoreOptions{ DriverOpts: opts, } - _, err = manager.Store("mysecret", []byte("mydata"), drivertype, storeOpts) + _, err := manager.Store("mysecret", []byte("mydata"), drivertype, storeOpts) require.NoError(t, err) _, err = manager.Store("mysecret2", []byte("mydata2"), drivertype, storeOpts) require.NoError(t, err) diff --git a/pkg/secrets/shelldriver/shelldriver_test.go b/pkg/secrets/shelldriver/shelldriver_test.go index 14f23589c..42391296f 100644 --- a/pkg/secrets/shelldriver/shelldriver_test.go +++ b/pkg/secrets/shelldriver/shelldriver_test.go @@ -2,23 +2,21 @@ package shelldriver import ( "fmt" - "os" "testing" "github.com/stretchr/testify/require" ) -func setupDriver(t *testing.T) (driver *Driver, cleanup func()) { - base, err := os.MkdirTemp(os.TempDir(), "external-driver-test") - require.NoError(t, err) - driver, err = NewDriver(map[string]string{ +func setupDriver(t *testing.T) *Driver { + base := t.TempDir() + driver, err := NewDriver(map[string]string{ "delete": fmt.Sprintf("rm %s/${SECRET_ID}", base), "list": fmt.Sprintf("ls %s", base), "lookup": fmt.Sprintf("cat %s/${SECRET_ID} ", base), "store": fmt.Sprintf("cat - > %s/${SECRET_ID}", base), }) require.NoError(t, err) - return driver, func() { os.RemoveAll(base) } + return driver } func TestStoreAndLookup(t *testing.T) { @@ -55,8 +53,7 @@ func TestStoreAndLookup(t *testing.T) { for _, tc := range cases { tc := tc t.Run(tc.name, func(t *testing.T) { - driver, cleanup := setupDriver(t) - defer cleanup() + driver := setupDriver(t) err := driver.Store(tc.key, tc.value) if tc.expStoreErr != nil { require.Error(t, err) @@ -77,8 +74,7 @@ func TestStoreAndLookup(t *testing.T) { } func TestLookup(t *testing.T) { - driver, cleanup := setupDriver(t) - defer cleanup() + driver := setupDriver(t) // prepare a valid lookup target err := driver.Store("valid", []byte("abc")) @@ -121,8 +117,7 @@ func TestLookup(t *testing.T) { } func TestList(t *testing.T) { - driver, cleanup := setupDriver(t) - defer cleanup() + driver := setupDriver(t) require.NoError(t, driver.Store("a", []byte("abc"))) require.NoError(t, driver.Store("b", []byte("abc"))) require.NoError(t, driver.Store("c", []byte("abc"))) @@ -133,8 +128,7 @@ func TestList(t *testing.T) { } func TestDelete(t *testing.T) { - driver, cleanup := setupDriver(t) - defer cleanup() + driver := setupDriver(t) require.NoError(t, driver.Store("a", []byte("abc"))) cases := []struct { diff --git a/pkg/supplemented/supplemented_test.go b/pkg/supplemented/supplemented_test.go index ccccc8694..54d30bd55 100644 --- a/pkg/supplemented/supplemented_test.go +++ b/pkg/supplemented/supplemented_test.go @@ -8,7 +8,6 @@ import ( "encoding/json" "fmt" "io" - "os" "runtime" "testing" "time" @@ -103,11 +102,10 @@ func makeManifest(layer, config []byte) v1.Manifest { } } -func makeImage(t *testing.T, arch, osStr string) (ref types.ImageReference, dir string, layer, config, manifest []byte) { +func makeImage(t *testing.T, arch, osStr string) (ref types.ImageReference, layer, config, manifest []byte) { ctx := context.TODO() - dir, err := os.MkdirTemp("", "supplemented") - assert.Nilf(t, err, "error creating temporary directory") + dir := t.TempDir() layerBytes := makeLayer(t) cb := makeConfig(arch, osStr, layer) @@ -141,7 +139,7 @@ func makeImage(t *testing.T, arch, osStr string) (ref types.ImageReference, dir err = dest.Commit(ctx, nil) assert.Nilf(t, err, "error committing image to 'dir:%s'", dir) - return ref, dir, layerBytes, configBytes, manifestBytes + return ref, layerBytes, configBytes, manifestBytes } func TestSupplemented(t *testing.T) { @@ -157,29 +155,18 @@ func TestSupplemented(t *testing.T) { policyContext, err := signature.NewPolicyContext(defaultPolicy) assert.Nilf(t, err, "error obtaining policy context") - ref1, dir1, layer1, config1, manifest1 := makeImage(t, runtime.GOARCH, runtime.GOOS) - defer os.RemoveAll(dir1) + ref1, layer1, config1, manifest1 := makeImage(t, runtime.GOARCH, runtime.GOOS) digest1, err := manifest.Digest(manifest1) assert.Nilf(t, err, "error digesting manifest") - ref2, dir2, layer2, config2, manifest2 := makeImage(t, arch2, runtime.GOOS) - defer os.RemoveAll(dir2) + ref2, layer2, config2, manifest2 := makeImage(t, arch2, runtime.GOOS) digest2, err := manifest.Digest(manifest2) assert.Nilf(t, err, "error digesting manifest") - ref3, dir3, layer3, config3, manifest3 := makeImage(t, arch3, runtime.GOOS) - defer os.RemoveAll(dir3) + ref3, layer3, config3, manifest3 := makeImage(t, arch3, runtime.GOOS) digest3, err := manifest.Digest(manifest3) assert.Nilf(t, err, "error digesting manifest") - multidir, err := os.MkdirTemp("", "supplemented") - assert.Nilf(t, err, "error creating temporary directory") - defer os.RemoveAll(multidir) - - destDir, err := os.MkdirTemp("", "supplemented") - assert.Nilf(t, err, "error creating temporary directory") - defer os.RemoveAll(destDir) - index := v1.Index{ Versioned: specs.Versioned{ SchemaVersion: 2, @@ -220,9 +207,11 @@ func TestSupplemented(t *testing.T) { indexDigest, err := manifest.Digest(indexBytes) assert.Nilf(t, err, "error digesting image index") + destDir := t.TempDir() destRef, err := alltransports.ParseImageName(fmt.Sprintf("dir:%s", destDir)) assert.Nilf(t, err, "error parsing reference 'dir:%s'", destDir) + multidir := t.TempDir() multiRef, err := alltransports.ParseImageName(fmt.Sprintf("dir:%s", multidir)) assert.Nilf(t, err, "error parsing reference 'dir:%s'", multidir) destImg, err := multiRef.NewImageDestination(ctx, sys) diff --git a/pkg/sysinfo/sysinfo_linux_test.go b/pkg/sysinfo/sysinfo_linux_test.go index 8e9eef210..4c95b089a 100644 --- a/pkg/sysinfo/sysinfo_linux_test.go +++ b/pkg/sysinfo/sysinfo_linux_test.go @@ -12,12 +12,10 @@ import ( ) func TestReadProcBool(t *testing.T) { - tmpDir, err := os.MkdirTemp("", "test-sysinfo-proc") - require.NoError(t, err) - defer os.RemoveAll(tmpDir) + tmpDir := t.TempDir() procFile := filepath.Join(tmpDir, "read-proc-bool") - err = os.WriteFile(procFile, []byte("1"), 0o644) + err := os.WriteFile(procFile, []byte("1"), 0o644) require.NoError(t, err) if !readProcBool(procFile) { @@ -37,15 +35,13 @@ func TestReadProcBool(t *testing.T) { } func TestCgroupEnabled(t *testing.T) { - cgroupDir, err := os.MkdirTemp("", "cgroup-test") - require.NoError(t, err) - defer os.RemoveAll(cgroupDir) + cgroupDir := t.TempDir() if cgroupEnabled(cgroupDir, "test") { t.Fatal("cgroupEnabled should be false") } - err = os.WriteFile(path.Join(cgroupDir, "test"), []byte{}, 0o644) + err := os.WriteFile(path.Join(cgroupDir, "test"), []byte{}, 0o644) require.NoError(t, err) if !cgroupEnabled(cgroupDir, "test") {