X Tutup
Skip to content

Commit 18ec276

Browse files
committed
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>
1 parent ed4cc4b commit 18ec276

40 files changed

+137
-428
lines changed

archive/compression/compression_test.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,7 @@ func TestCompressDecompressUncompressed(t *testing.T) {
122122

123123
func TestDetectPigz(t *testing.T) {
124124
// Create fake PATH with unpigz executable, make sure detectPigz can find it
125-
tempPath, err := os.MkdirTemp("", "containerd_temp_")
126-
if err != nil {
127-
t.Fatal(err)
128-
}
125+
tempPath := t.TempDir()
129126

130127
filename := "unpigz"
131128
if runtime.GOOS == "windows" {
@@ -138,8 +135,6 @@ func TestDetectPigz(t *testing.T) {
138135
t.Fatal(err)
139136
}
140137

141-
defer os.RemoveAll(tempPath)
142-
143138
oldPath := os.Getenv("PATH")
144139
os.Setenv("PATH", tempPath)
145140
defer os.Setenv("PATH", oldPath)

archive/issues_test.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,7 @@ func TestPrefixHeaderReadable(t *testing.T) {
3636
// https://gist.github.com/stevvooe/e2a790ad4e97425896206c0816e1a882#file-out-go
3737
var testFile = []byte("\x1f\x8b\x08\x08\x44\x21\x68\x59\x00\x03\x74\x2e\x74\x61\x72\x00\x4b\xcb\xcf\x67\xa0\x35\x30\x80\x00\x86\x06\x10\x47\x01\xc1\x37\x40\x00\x54\xb6\xb1\xa1\xa9\x99\x09\x48\x25\x1d\x40\x69\x71\x49\x62\x91\x02\xe5\x76\xa1\x79\x84\x21\x91\xd6\x80\x72\xaf\x8f\x82\x51\x30\x0a\x46\x36\x00\x00\xf0\x1c\x1e\x95\x00\x06\x00\x00")
3838

39-
tmpDir, err := os.MkdirTemp("", "prefix-test")
40-
if err != nil {
41-
t.Fatal(err)
42-
}
43-
defer os.RemoveAll(tmpDir)
39+
tmpDir := t.TempDir()
4440

4541
r, err := compression.DecompressStream(bytes.NewReader(testFile))
4642
if err != nil {

archive/tar_linux_test.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,7 @@ import (
3636
func TestOverlayApply(t *testing.T) {
3737
testutil.RequiresRoot(t)
3838

39-
base, err := os.MkdirTemp("", "test-ovl-diff-apply-")
40-
if err != nil {
41-
t.Fatalf("unable to create temp dir: %+v", err)
42-
}
43-
defer os.RemoveAll(base)
39+
base := t.TempDir()
4440

4541
if err := overlayutils.Supported(base); err != nil {
4642
t.Skipf("skipping because overlay is not supported %v", err)
@@ -55,11 +51,7 @@ func TestOverlayApply(t *testing.T) {
5551
func TestOverlayApplyNoParents(t *testing.T) {
5652
testutil.RequiresRoot(t)
5753

58-
base, err := os.MkdirTemp("", "test-ovl-diff-apply-")
59-
if err != nil {
60-
t.Fatalf("unable to create temp dir: %+v", err)
61-
}
62-
defer os.RemoveAll(base)
54+
base := t.TempDir()
6355

6456
if err := overlayutils.Supported(base); err != nil {
6557
t.Skipf("skipping because overlay is not supported %v", err)

archive/tar_test.go

Lines changed: 18 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"archive/tar"
2424
"bytes"
2525
"context"
26+
_ "crypto/sha256"
2627
"errors"
2728
"fmt"
2829
"io"
@@ -31,8 +32,6 @@ import (
3132
"testing"
3233
"time"
3334

34-
_ "crypto/sha256"
35-
3635
"github.com/containerd/containerd/archive/tartest"
3736
"github.com/containerd/containerd/pkg/testutil"
3837
"github.com/containerd/continuity/fs"
@@ -58,15 +57,15 @@ var baseApplier = fstest.Apply(
5857
func TestUnpack(t *testing.T) {
5958
requireTar(t)
6059

61-
if err := testApply(baseApplier); err != nil {
60+
if err := testApply(t, baseApplier); err != nil {
6261
t.Fatalf("Test apply failed: %+v", err)
6362
}
6463
}
6564

6665
func TestBaseDiff(t *testing.T) {
6766
requireTar(t)
6867

69-
if err := testBaseDiff(baseApplier); err != nil {
68+
if err := testBaseDiff(t, baseApplier); err != nil {
7069
t.Fatalf("Test base diff failed: %+v", err)
7170
}
7271
}
@@ -102,7 +101,7 @@ func TestRelativeSymlinks(t *testing.T) {
102101
}
103102

104103
for _, bo := range breakoutLinks {
105-
if err := testDiffApply(bo); err != nil {
104+
if err := testDiffApply(t, bo); err != nil {
106105
t.Fatalf("Test apply failed: %+v", err)
107106
}
108107
}
@@ -179,7 +178,7 @@ func TestSymlinks(t *testing.T) {
179178
}
180179

181180
for i, l := range links {
182-
if err := testDiffApply(l[0], l[1]); err != nil {
181+
if err := testDiffApply(t, l[0], l[1]); err != nil {
183182
t.Fatalf("Test[%d] apply failed: %+v", i+1, err)
184183
}
185184
}
@@ -243,11 +242,7 @@ func TestBreakouts(t *testing.T) {
243242
return nil
244243
}
245244
errFileDiff := errors.New("files differ")
246-
td, err := os.MkdirTemp("", "test-breakouts-")
247-
if err != nil {
248-
t.Fatal(err)
249-
}
250-
defer os.RemoveAll(td)
245+
td := t.TempDir()
251246

252247
isSymlinkFile := func(f string) func(string) error {
253248
return func(root string) error {
@@ -841,17 +836,9 @@ func TestApplyTar(t *testing.T) {
841836
}
842837
}
843838

844-
func testApply(a fstest.Applier) error {
845-
td, err := os.MkdirTemp("", "test-apply-")
846-
if err != nil {
847-
return fmt.Errorf("failed to create temp dir: %w", err)
848-
}
849-
defer os.RemoveAll(td)
850-
dest, err := os.MkdirTemp("", "test-apply-dest-")
851-
if err != nil {
852-
return fmt.Errorf("failed to create temp dir: %w", err)
853-
}
854-
defer os.RemoveAll(dest)
839+
func testApply(t *testing.T, a fstest.Applier) error {
840+
td := t.TempDir()
841+
dest := t.TempDir()
855842

856843
if err := a.Apply(td); err != nil {
857844
return fmt.Errorf("failed to apply filesystem changes: %w", err)
@@ -882,17 +869,9 @@ func testApply(a fstest.Applier) error {
882869
return fstest.CheckDirectoryEqual(td, dest)
883870
}
884871

885-
func testBaseDiff(a fstest.Applier) error {
886-
td, err := os.MkdirTemp("", "test-base-diff-")
887-
if err != nil {
888-
return fmt.Errorf("failed to create temp dir: %w", err)
889-
}
890-
defer os.RemoveAll(td)
891-
dest, err := os.MkdirTemp("", "test-base-diff-dest-")
892-
if err != nil {
893-
return fmt.Errorf("failed to create temp dir: %w", err)
894-
}
895-
defer os.RemoveAll(dest)
872+
func testBaseDiff(t *testing.T, a fstest.Applier) error {
873+
td := t.TempDir()
874+
dest := t.TempDir()
896875

897876
if err := a.Apply(td); err != nil {
898877
return fmt.Errorf("failed to apply filesystem changes: %w", err)
@@ -909,17 +888,9 @@ func testBaseDiff(a fstest.Applier) error {
909888
return fstest.CheckDirectoryEqual(td, dest)
910889
}
911890

912-
func testDiffApply(appliers ...fstest.Applier) error {
913-
td, err := os.MkdirTemp("", "test-diff-apply-")
914-
if err != nil {
915-
return fmt.Errorf("failed to create temp dir: %w", err)
916-
}
917-
defer os.RemoveAll(td)
918-
dest, err := os.MkdirTemp("", "test-diff-apply-dest-")
919-
if err != nil {
920-
return fmt.Errorf("failed to create temp dir: %w", err)
921-
}
922-
defer os.RemoveAll(dest)
891+
func testDiffApply(t *testing.T, appliers ...fstest.Applier) error {
892+
td := t.TempDir()
893+
dest := t.TempDir()
923894

924895
for _, a := range appliers {
925896
if err := a.Apply(td); err != nil {
@@ -950,11 +921,7 @@ func testDiffApply(appliers ...fstest.Applier) error {
950921

951922
func makeWriterToTarTest(wt tartest.WriterToTar, a fstest.Applier, validate func(string) error, applyErr error) func(*testing.T) {
952923
return func(t *testing.T) {
953-
td, err := os.MkdirTemp("", "test-writer-to-tar-")
954-
if err != nil {
955-
t.Fatalf("Failed to create temp dir: %v", err)
956-
}
957-
defer os.RemoveAll(td)
924+
td := t.TempDir()
958925

959926
if a != nil {
960927
if err := a.Apply(td); err != nil {
@@ -1254,20 +1221,12 @@ func whiteoutEntry(name string) tarEntryValidator {
12541221

12551222
func makeDiffTarTest(validators []tarEntryValidator, a, b fstest.Applier) func(*testing.T) {
12561223
return func(t *testing.T) {
1257-
ad, err := os.MkdirTemp("", "test-make-diff-tar-")
1258-
if err != nil {
1259-
t.Fatalf("failed to create temp dir: %v", err)
1260-
}
1261-
defer os.RemoveAll(ad)
1224+
ad := t.TempDir()
12621225
if err := a.Apply(ad); err != nil {
12631226
t.Fatalf("failed to apply a: %v", err)
12641227
}
12651228

1266-
bd, err := os.MkdirTemp("", "test-make-diff-tar-")
1267-
if err != nil {
1268-
t.Fatalf("failed to create temp dir: %v", err)
1269-
}
1270-
defer os.RemoveAll(bd)
1229+
bd := t.TempDir()
12711230
if err := fs.CopyDir(bd, ad); err != nil {
12721231
t.Fatalf("failed to copy dir: %v", err)
12731232
}

cio/io_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,7 @@ func TestNewFIFOSetInDir(t *testing.T) {
4949
t.Skip("NewFIFOSetInDir has different behaviour on windows")
5050
}
5151

52-
root, err := os.MkdirTemp("", "test-new-fifo-set")
53-
assert.NilError(t, err)
54-
defer os.RemoveAll(root)
52+
root := t.TempDir()
5553

5654
fifos, err := NewFIFOSetInDir(root, "theid", true)
5755
assert.NilError(t, err)

cio/io_unix_test.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ package cio
2121

2222
import (
2323
"context"
24-
"fmt"
25-
"os"
2624
"path/filepath"
2725
"testing"
2826

@@ -65,11 +63,7 @@ func TestOpenFifosWithTerminal(t *testing.T) {
6563
var ctx, cancel = context.WithCancel(context.Background())
6664
defer cancel()
6765

68-
ioFifoDir, err := os.MkdirTemp("", fmt.Sprintf("cio-%s", t.Name()))
69-
if err != nil {
70-
t.Fatalf("unexpected error during creating temp dir: %v", err)
71-
}
72-
defer os.RemoveAll(ioFifoDir)
66+
ioFifoDir := t.TempDir()
7367

7468
cfg := Config{
7569
Stdout: filepath.Join(ioFifoDir, "test-stdout"),

content/local/store_test.go

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -291,28 +291,17 @@ func populateBlobStore(ctx context.Context, t checker, cs content.Store, nblobs,
291291
return blobs
292292
}
293293

294-
func contentStoreEnv(t checker) (context.Context, string, content.Store, func()) {
295-
pc, _, _, ok := runtime.Caller(1)
296-
if !ok {
297-
t.Fatal("failed to resolve caller")
298-
}
299-
fn := runtime.FuncForPC(pc)
300-
301-
tmpdir, err := os.MkdirTemp("", filepath.Base(fn.Name())+"-")
302-
if err != nil {
303-
t.Fatal(err)
304-
}
294+
func contentStoreEnv(t testing.TB) (context.Context, string, content.Store, func()) {
295+
tmpdir := t.TempDir()
305296

306297
cs, err := NewStore(tmpdir)
307298
if err != nil {
308-
os.RemoveAll(tmpdir)
309299
t.Fatal(err)
310300
}
311301

312302
ctx, cancel := context.WithCancel(context.Background())
313303
return ctx, tmpdir, cs, func() {
314304
cancel()
315-
os.RemoveAll(tmpdir)
316305
}
317306
}
318307

@@ -361,11 +350,7 @@ func checkWrite(ctx context.Context, t checker, cs content.Store, dgst digest.Di
361350
}
362351

363352
func TestWriterTruncateRecoversFromIncompleteWrite(t *testing.T) {
364-
tmpdir, err := os.MkdirTemp("", "test-local-content-store-recover")
365-
assert.NilError(t, err)
366-
defer os.RemoveAll(tmpdir)
367-
368-
cs, err := NewStore(tmpdir)
353+
cs, err := NewStore(t.TempDir())
369354
assert.NilError(t, err)
370355

371356
ctx, cancel := context.WithCancel(context.Background())
@@ -400,11 +385,7 @@ func setupIncompleteWrite(ctx context.Context, t *testing.T, cs content.Store, r
400385
}
401386

402387
func TestWriteReadEmptyFileTimestamp(t *testing.T) {
403-
root, err := os.MkdirTemp("", "test-write-read-file-timestamp")
404-
if err != nil {
405-
t.Errorf("failed to create a tmp dir: %v", err)
406-
}
407-
defer os.RemoveAll(root)
388+
root := t.TempDir()
408389

409390
emptyFile := filepath.Join(root, "updatedat")
410391
if err := writeTimestampFile(emptyFile, time.Time{}); err != nil {

integration/addition_gids_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ import (
3131
)
3232

3333
func TestAdditionalGids(t *testing.T) {
34-
testPodLogDir, err := os.MkdirTemp("", "additional-gids")
35-
require.NoError(t, err)
36-
defer os.RemoveAll(testPodLogDir)
34+
testPodLogDir := t.TempDir()
3735

3836
t.Log("Create a sandbox with log directory")
3937
sb, sbConfig := PodSandboxConfigWithCleanup(t, "sandbox", "additional-gids",

integration/client/container_checkpoint_test.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -455,11 +455,7 @@ func TestCheckpointRestoreWithImagePath(t *testing.T) {
455455
}
456456

457457
// create image path store criu image files
458-
crDir, err := os.MkdirTemp("", "test-cr")
459-
if err != nil {
460-
t.Fatal(err)
461-
}
462-
defer os.RemoveAll(crDir)
458+
crDir := t.TempDir()
463459
imagePath := filepath.Join(crDir, "cr")
464460
// checkpoint task
465461
if _, err := task.Checkpoint(ctx, WithCheckpointImagePath(imagePath)); err != nil {

integration/client/daemon_config_linux_test.go

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,7 @@ import (
3535

3636
// TestDaemonRuntimeRoot ensures plugin.linux.runtime_root is not ignored
3737
func TestDaemonRuntimeRoot(t *testing.T) {
38-
runtimeRoot, err := os.MkdirTemp("", "containerd-test-runtime-root")
39-
if err != nil {
40-
t.Fatal(err)
41-
}
42-
defer func() {
43-
if err != nil {
44-
os.RemoveAll(runtimeRoot)
45-
}
46-
}()
38+
runtimeRoot := t.TempDir()
4739
configTOML := `
4840
version = 2
4941
[plugins]

0 commit comments

Comments
 (0)
X Tutup