test: use T.TempDir to create temporary test directory
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:
@@ -122,18 +122,10 @@ func TestBtrfsMounts(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
// create temporary directory for mount point
|
||||
mountPoint, err := os.MkdirTemp("", "containerd-btrfs-test")
|
||||
if err != nil {
|
||||
t.Fatal("could not create mount point for btrfs test", err)
|
||||
}
|
||||
defer os.RemoveAll(mountPoint)
|
||||
mountPoint := t.TempDir()
|
||||
t.Log("temporary mount point created", mountPoint)
|
||||
|
||||
root, err := os.MkdirTemp(mountPoint, "TestBtrfsPrepare-")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(root)
|
||||
root := t.TempDir()
|
||||
|
||||
b, c, err := boltSnapshotter(t)(ctx, root)
|
||||
if err != nil {
|
||||
|
||||
@@ -43,19 +43,13 @@ const (
|
||||
func TestDMSetup(t *testing.T) {
|
||||
testutil.RequiresRoot(t)
|
||||
|
||||
tempDir, err := os.MkdirTemp("", "dmsetup-tests-")
|
||||
assert.NilError(t, err, "failed to make temp dir for tests")
|
||||
|
||||
defer func() {
|
||||
err := os.RemoveAll(tempDir)
|
||||
assert.NilError(t, err)
|
||||
}()
|
||||
tempDir := t.TempDir()
|
||||
|
||||
dataImage, loopDataDevice := createLoopbackDevice(t, tempDir)
|
||||
metaImage, loopMetaDevice := createLoopbackDevice(t, tempDir)
|
||||
|
||||
defer func() {
|
||||
err = mount.DetachLoopDevice(loopDataDevice, loopMetaDevice)
|
||||
err := mount.DetachLoopDevice(loopDataDevice, loopMetaDevice)
|
||||
assert.NilError(t, err, "failed to detach loop devices for data image: %s and meta image: %s", dataImage, metaImage)
|
||||
}()
|
||||
|
||||
@@ -87,7 +81,7 @@ func TestDMSetup(t *testing.T) {
|
||||
t.Run("RemoveDevice", testRemoveDevice)
|
||||
|
||||
t.Run("RemovePool", func(t *testing.T) {
|
||||
err = RemoveDevice(testPoolName, RemoveWithForce, RemoveWithRetries)
|
||||
err := RemoveDevice(testPoolName, RemoveWithForce, RemoveWithRetries)
|
||||
assert.NilError(t, err, "failed to remove thin-pool")
|
||||
})
|
||||
|
||||
|
||||
@@ -22,7 +22,6 @@ package devmapper
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"testing"
|
||||
@@ -37,8 +36,8 @@ var (
|
||||
)
|
||||
|
||||
func TestPoolMetadata_AddDevice(t *testing.T) {
|
||||
tempDir, store := createStore(t)
|
||||
defer cleanupStore(t, tempDir, store)
|
||||
store := createStore(t)
|
||||
defer cleanupStore(t, store)
|
||||
|
||||
expected := &DeviceInfo{
|
||||
Name: "test2",
|
||||
@@ -62,8 +61,8 @@ func TestPoolMetadata_AddDevice(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPoolMetadata_AddDeviceRollback(t *testing.T) {
|
||||
tempDir, store := createStore(t)
|
||||
defer cleanupStore(t, tempDir, store)
|
||||
store := createStore(t)
|
||||
defer cleanupStore(t, store)
|
||||
|
||||
err := store.AddDevice(testCtx, &DeviceInfo{Name: ""})
|
||||
assert.Assert(t, err != nil)
|
||||
@@ -73,8 +72,8 @@ func TestPoolMetadata_AddDeviceRollback(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPoolMetadata_AddDeviceDuplicate(t *testing.T) {
|
||||
tempDir, store := createStore(t)
|
||||
defer cleanupStore(t, tempDir, store)
|
||||
store := createStore(t)
|
||||
defer cleanupStore(t, store)
|
||||
|
||||
err := store.AddDevice(testCtx, &DeviceInfo{Name: "test"})
|
||||
assert.NilError(t, err)
|
||||
@@ -84,8 +83,8 @@ func TestPoolMetadata_AddDeviceDuplicate(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPoolMetadata_ReuseDeviceID(t *testing.T) {
|
||||
tempDir, store := createStore(t)
|
||||
defer cleanupStore(t, tempDir, store)
|
||||
store := createStore(t)
|
||||
defer cleanupStore(t, store)
|
||||
|
||||
info1 := &DeviceInfo{Name: "test1"}
|
||||
err := store.AddDevice(testCtx, info1)
|
||||
@@ -109,8 +108,8 @@ func TestPoolMetadata_ReuseDeviceID(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPoolMetadata_RemoveDevice(t *testing.T) {
|
||||
tempDir, store := createStore(t)
|
||||
defer cleanupStore(t, tempDir, store)
|
||||
store := createStore(t)
|
||||
defer cleanupStore(t, store)
|
||||
|
||||
err := store.AddDevice(testCtx, &DeviceInfo{Name: "test"})
|
||||
assert.NilError(t, err)
|
||||
@@ -123,8 +122,8 @@ func TestPoolMetadata_RemoveDevice(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPoolMetadata_UpdateDevice(t *testing.T) {
|
||||
tempDir, store := createStore(t)
|
||||
defer cleanupStore(t, tempDir, store)
|
||||
store := createStore(t)
|
||||
defer cleanupStore(t, store)
|
||||
|
||||
oldInfo := &DeviceInfo{
|
||||
Name: "test1",
|
||||
@@ -155,8 +154,8 @@ func TestPoolMetadata_UpdateDevice(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPoolMetadata_MarkFaulty(t *testing.T) {
|
||||
tempDir, store := createStore(t)
|
||||
defer cleanupStore(t, tempDir, store)
|
||||
store := createStore(t)
|
||||
defer cleanupStore(t, store)
|
||||
|
||||
info := &DeviceInfo{Name: "test"}
|
||||
err := store.AddDevice(testCtx, info)
|
||||
@@ -182,8 +181,8 @@ func TestPoolMetadata_MarkFaulty(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPoolMetadata_WalkDevices(t *testing.T) {
|
||||
tempDir, store := createStore(t)
|
||||
defer cleanupStore(t, tempDir, store)
|
||||
store := createStore(t)
|
||||
defer cleanupStore(t, store)
|
||||
|
||||
err := store.AddDevice(testCtx, &DeviceInfo{Name: "device1", DeviceID: 1, State: Created})
|
||||
assert.NilError(t, err)
|
||||
@@ -214,8 +213,8 @@ func TestPoolMetadata_WalkDevices(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPoolMetadata_GetDeviceNames(t *testing.T) {
|
||||
tempDir, store := createStore(t)
|
||||
defer cleanupStore(t, tempDir, store)
|
||||
store := createStore(t)
|
||||
defer cleanupStore(t, store)
|
||||
|
||||
err := store.AddDevice(testCtx, &DeviceInfo{Name: "test1"})
|
||||
assert.NilError(t, err)
|
||||
@@ -231,21 +230,15 @@ func TestPoolMetadata_GetDeviceNames(t *testing.T) {
|
||||
assert.Equal(t, "test2", names[1])
|
||||
}
|
||||
|
||||
func createStore(t *testing.T) (tempDir string, store *PoolMetadata) {
|
||||
tempDir, err := os.MkdirTemp("", "pool-metadata-")
|
||||
assert.NilError(t, err, "couldn't create temp directory for metadata tests")
|
||||
|
||||
path := filepath.Join(tempDir, "test.db")
|
||||
func createStore(t *testing.T) (store *PoolMetadata) {
|
||||
path := filepath.Join(t.TempDir(), "test.db")
|
||||
metadata, err := NewPoolMetadata(path)
|
||||
assert.NilError(t, err)
|
||||
|
||||
return tempDir, metadata
|
||||
return metadata
|
||||
}
|
||||
|
||||
func cleanupStore(t *testing.T, tempDir string, store *PoolMetadata) {
|
||||
func cleanupStore(t *testing.T, store *PoolMetadata) {
|
||||
err := store.Close()
|
||||
assert.NilError(t, err, "failed to close metadata store")
|
||||
|
||||
err = os.RemoveAll(tempDir)
|
||||
assert.NilError(t, err, "failed to cleanup temp directory")
|
||||
}
|
||||
|
||||
@@ -61,23 +61,19 @@ func TestPoolDevice(t *testing.T) {
|
||||
logrus.SetLevel(logrus.DebugLevel)
|
||||
ctx := context.Background()
|
||||
|
||||
tempDir, err := os.MkdirTemp("", "pool-device-test-")
|
||||
assert.NilError(t, err, "couldn't get temp directory for testing")
|
||||
tempDir := t.TempDir()
|
||||
|
||||
_, loopDataDevice := createLoopbackDevice(t, tempDir)
|
||||
_, loopMetaDevice := createLoopbackDevice(t, tempDir)
|
||||
|
||||
poolName := fmt.Sprintf("test-pool-device-%d", time.Now().Nanosecond())
|
||||
err = dmsetup.CreatePool(poolName, loopDataDevice, loopMetaDevice, 64*1024/dmsetup.SectorSize)
|
||||
err := dmsetup.CreatePool(poolName, loopDataDevice, loopMetaDevice, 64*1024/dmsetup.SectorSize)
|
||||
assert.NilError(t, err, "failed to create pool %q", poolName)
|
||||
|
||||
defer func() {
|
||||
// Detach loop devices and remove images
|
||||
err := mount.DetachLoopDevice(loopDataDevice, loopMetaDevice)
|
||||
assert.NilError(t, err)
|
||||
|
||||
err = os.RemoveAll(tempDir)
|
||||
assert.NilError(t, err, "couldn't cleanup temp directory")
|
||||
}()
|
||||
|
||||
config := &Config{
|
||||
@@ -176,8 +172,8 @@ func TestPoolDevice(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPoolDeviceMarkFaulty(t *testing.T) {
|
||||
tempDir, store := createStore(t)
|
||||
defer cleanupStore(t, tempDir, store)
|
||||
store := createStore(t)
|
||||
defer cleanupStore(t, store)
|
||||
|
||||
err := store.AddDevice(testCtx, &DeviceInfo{Name: "1", State: Unknown})
|
||||
assert.NilError(t, err)
|
||||
|
||||
@@ -23,7 +23,6 @@ import (
|
||||
"context"
|
||||
_ "crypto/sha256"
|
||||
"fmt"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -61,11 +60,7 @@ func TestSnapshotterSuite(t *testing.T) {
|
||||
ctx = namespaces.WithNamespace(ctx, "testsuite")
|
||||
|
||||
t.Run("DevMapperUsage", func(t *testing.T) {
|
||||
tempDir, err := os.MkdirTemp("", "snapshot-suite-usage")
|
||||
assert.NilError(t, err)
|
||||
defer os.RemoveAll(tempDir)
|
||||
|
||||
snapshotter, closer, err := snapshotterFn(ctx, tempDir)
|
||||
snapshotter, closer, err := snapshotterFn(ctx, t.TempDir())
|
||||
assert.NilError(t, err)
|
||||
defer closer()
|
||||
|
||||
@@ -148,13 +143,10 @@ func TestMultipleXfsMounts(t *testing.T) {
|
||||
|
||||
ctx := context.Background()
|
||||
ctx = namespaces.WithNamespace(ctx, "testsuite")
|
||||
tempDir, err := os.MkdirTemp("", "snapshot-suite-usage")
|
||||
assert.NilError(t, err)
|
||||
defer os.RemoveAll(tempDir)
|
||||
|
||||
poolName := fmt.Sprintf("containerd-snapshotter-suite-pool-%d", time.Now().Nanosecond())
|
||||
config := &Config{
|
||||
RootPath: tempDir,
|
||||
RootPath: t.TempDir(),
|
||||
PoolName: poolName,
|
||||
BaseImageSize: "16Mb",
|
||||
FileSystemType: "xfs",
|
||||
@@ -172,10 +164,9 @@ func TestMultipleXfsMounts(t *testing.T) {
|
||||
mounts, err := snapshotter.Prepare(ctx, "prepare-1", "")
|
||||
assert.NilError(t, err)
|
||||
|
||||
root1, _ := os.MkdirTemp(os.TempDir(), "containerd-mount")
|
||||
root1 := t.TempDir()
|
||||
defer func() {
|
||||
mount.UnmountAll(root1, 0)
|
||||
os.Remove(root1)
|
||||
}()
|
||||
err = mount.All(mounts, root1)
|
||||
assert.NilError(t, err)
|
||||
@@ -186,10 +177,9 @@ func TestMultipleXfsMounts(t *testing.T) {
|
||||
mounts, err = snapshotter.Prepare(ctx, "prepare-2", "layer-1")
|
||||
assert.NilError(t, err)
|
||||
|
||||
root2, _ := os.MkdirTemp(os.TempDir(), "containerd-mount")
|
||||
root2 := t.TempDir()
|
||||
defer func() {
|
||||
mount.UnmountAll(root2, 0)
|
||||
os.Remove(root2)
|
||||
}()
|
||||
err = mount.All(mounts, root2)
|
||||
assert.NilError(t, err)
|
||||
|
||||
@@ -79,11 +79,7 @@ func TestOverlay(t *testing.T) {
|
||||
|
||||
func testOverlayMounts(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
||||
ctx := context.TODO()
|
||||
root, err := os.MkdirTemp("", "overlay")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(root)
|
||||
root := t.TempDir()
|
||||
o, _, err := newSnapshotter(ctx, root)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -113,11 +109,7 @@ func testOverlayMounts(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
||||
|
||||
func testOverlayCommit(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
||||
ctx := context.TODO()
|
||||
root, err := os.MkdirTemp("", "overlay")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(root)
|
||||
root := t.TempDir()
|
||||
o, _, err := newSnapshotter(ctx, root)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -138,11 +130,7 @@ func testOverlayCommit(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
||||
|
||||
func testOverlayOverlayMount(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
||||
ctx := context.TODO()
|
||||
root, err := os.MkdirTemp("", "overlay")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(root)
|
||||
root := t.TempDir()
|
||||
o, _, err := newSnapshotter(ctx, root)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -235,11 +223,7 @@ func getParents(ctx context.Context, sn snapshots.Snapshotter, root, key string)
|
||||
func testOverlayOverlayRead(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
||||
testutil.RequiresRoot(t)
|
||||
ctx := context.TODO()
|
||||
root, err := os.MkdirTemp("", "overlay")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(root)
|
||||
root := t.TempDir()
|
||||
o, _, err := newSnapshotter(ctx, root)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -278,11 +262,7 @@ func testOverlayOverlayRead(t *testing.T, newSnapshotter testsuite.SnapshotterFu
|
||||
|
||||
func testOverlayView(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
||||
ctx := context.TODO()
|
||||
root, err := os.MkdirTemp("", "overlay")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(root)
|
||||
root := t.TempDir()
|
||||
o, _, err := newSnapshotter(ctx, root)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
package overlayutils
|
||||
|
||||
import (
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/containerd/containerd/pkg/testutil"
|
||||
@@ -30,11 +29,7 @@ import (
|
||||
|
||||
func testOverlaySupported(t testing.TB, expected bool, mkfs ...string) {
|
||||
testutil.RequiresRoot(t)
|
||||
mnt, err := os.MkdirTemp("", "containerd-fs-test-supports-overlay")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(mnt)
|
||||
mnt := t.TempDir()
|
||||
|
||||
loop, err := loopback.New(100 << 20) // 100 MB
|
||||
if err != nil {
|
||||
|
||||
@@ -19,7 +19,6 @@ package storage
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/containerd/containerd/snapshots"
|
||||
@@ -42,17 +41,16 @@ func Benchmarks(b *testing.B, name string, metaFn metaFactory) {
|
||||
func makeBench(b *testing.B, name string, metaFn metaFactory, fn func(context.Context, *testing.B, *MetaStore)) func(b *testing.B) {
|
||||
return func(b *testing.B) {
|
||||
ctx := context.Background()
|
||||
tmpDir, err := os.MkdirTemp("", "metastore-bench-"+name+"-")
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
ms, err := metaFn(tmpDir)
|
||||
ms, err := metaFn(b.TempDir())
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
|
||||
b.Cleanup(func() {
|
||||
ms.Close()
|
||||
})
|
||||
|
||||
ctx, t, err := ms.TransactionContext(ctx, true)
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
@@ -67,13 +65,8 @@ func makeBench(b *testing.B, name string, metaFn metaFactory, fn func(context.Co
|
||||
func openCloseWritable(b *testing.B, name string, metaFn metaFactory) func(b *testing.B) {
|
||||
return func(b *testing.B) {
|
||||
ctx := context.Background()
|
||||
tmpDir, err := os.MkdirTemp("", "metastore-bench-"+name+"-")
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
ms, err := metaFn(tmpDir)
|
||||
ms, err := metaFn(b.TempDir())
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
@@ -95,13 +88,8 @@ func openCloseWritable(b *testing.B, name string, metaFn metaFactory) func(b *te
|
||||
func openCloseReadonly(b *testing.B, name string, metaFn metaFactory) func(b *testing.B) {
|
||||
return func(b *testing.B) {
|
||||
ctx := context.Background()
|
||||
tmpDir, err := os.MkdirTemp("", "metastore-bench-"+name+"-")
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
ms, err := metaFn(tmpDir)
|
||||
ms, err := metaFn(b.TempDir())
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -66,17 +65,16 @@ func MetaStoreSuite(t *testing.T, name string, meta func(root string) (*MetaStor
|
||||
func makeTest(t *testing.T, name string, metaFn metaFactory, fn testFunc) func(t *testing.T) {
|
||||
return func(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
tmpDir, err := os.MkdirTemp("", "metastore-test-"+name+"-")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
ms, err := metaFn(tmpDir)
|
||||
ms, err := metaFn(t.TempDir())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
t.Cleanup(func() {
|
||||
ms.Close()
|
||||
})
|
||||
|
||||
fn(ctx, t, ms)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user