[go] os: replace os.MkdirTemp with T.TempDir

85 views
Skip to first unread message

Tobias Klauser (Gerrit)

unread,
Apr 9, 2021, 5:01:13 AM4/9/21
to Manlio Perillo, goph...@pubsubhelper.golang.org, golang-...@googlegroups.com, Ian Lance Taylor, Go Bot, Rob Pike, Brad Fitzpatrick, Robert Griesemer, Russ Cox, golang-co...@googlegroups.com

Tobias Klauser submitted this change.

View Change

Approvals: Ian Lance Taylor: Looks good to me, approved; Run TryBots Tobias Klauser: Looks good to me, approved Go Bot: TryBots succeeded
os: replace os.MkdirTemp with T.TempDir

Updates #45402

Change-Id: Ib8e62a13ddff884e4d34b3a0fdc9a10db2b68da6
Reviewed-on: https://go-review.googlesource.com/c/go/+/308109
Run-TryBot: Ian Lance Taylor <ia...@golang.org>
TryBot-Result: Go Bot <go...@golang.org>
Reviewed-by: Ian Lance Taylor <ia...@golang.org>
Reviewed-by: Tobias Klauser <tobias....@gmail.com>
---
M src/os/error_test.go
M src/os/fifo_test.go
M src/os/os_test.go
M src/os/os_windows_test.go
M src/os/path_test.go
M src/os/path_windows_test.go
M src/os/removeall_test.go
M src/os/stat_test.go
8 files changed, 45 insertions(+), 175 deletions(-)

diff --git a/src/os/error_test.go b/src/os/error_test.go
index 6264ccc..58b3f39 100644
--- a/src/os/error_test.go
+++ b/src/os/error_test.go
@@ -54,13 +54,7 @@
}

func TestErrIsNotExist(t *testing.T) {
- tmpDir, err := os.MkdirTemp("", "_Go_ErrIsNotExist")
- if err != nil {
- t.Fatalf("create ErrIsNotExist tempdir: %s", err)
- return
- }
- defer os.RemoveAll(tmpDir)
-
+ tmpDir := t.TempDir()
name := filepath.Join(tmpDir, "NotExists")
if s := testErrNotExist(name); s != "" {
t.Fatal(s)
diff --git a/src/os/fifo_test.go b/src/os/fifo_test.go
index c360734..9b262f8 100644
--- a/src/os/fifo_test.go
+++ b/src/os/fifo_test.go
@@ -31,12 +31,7 @@
t.Skip("skipping on OpenBSD; issue 25877")
}

- dir, err := os.MkdirTemp("", "TestFifoEOF")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
-
+ dir := t.TempDir()
fifoName := filepath.Join(dir, "fifo")
if err := syscall.Mkfifo(fifoName, 0600); err != nil {
t.Fatal(err)
diff --git a/src/os/os_test.go b/src/os/os_test.go
index f27c796..506f1fb 100644
--- a/src/os/os_test.go
+++ b/src/os/os_test.go
@@ -617,11 +617,7 @@
if testing.Short() {
t.Skip("test.short; skipping")
}
- dir, err := os.MkdirTemp("", "")
- if err != nil {
- t.Fatalf("TempDir: %v", err)
- }
- defer RemoveAll(dir)
+ dir := t.TempDir()
for i := 1; i <= 105; i++ {
f, err := Create(filepath.Join(dir, fmt.Sprintf("%d", i)))
if err != nil {
@@ -716,11 +712,7 @@
// testing it wouldn't work.
t.Skipf("skipping test on %v", runtime.GOOS)
}
- dir, err := os.MkdirTemp("", "")
- if err != nil {
- t.Fatalf("TempDir: %v", err)
- }
- defer RemoveAll(dir)
+ dir := t.TempDir()
touch(t, filepath.Join(dir, "good1"))
touch(t, filepath.Join(dir, "x")) // will disappear or have an error
touch(t, filepath.Join(dir, "good2"))
@@ -1949,22 +1941,16 @@

func TestStatDirWithTrailingSlash(t *testing.T) {
// Create new temporary directory and arrange to clean it up.
- path, err := os.MkdirTemp("", "_TestStatDirWithSlash_")
- if err != nil {
- t.Fatalf("TempDir: %s", err)
- }
- defer RemoveAll(path)
+ path := t.TempDir()

// Stat of path should succeed.
- _, err = Stat(path)
- if err != nil {
+ if _, err := Stat(path); err != nil {
t.Fatalf("stat %s failed: %s", path, err)
}

// Stat of path+"/" should succeed too.
path += "/"
- _, err = Stat(path)
- if err != nil {
+ if _, err := Stat(path); err != nil {
t.Fatalf("stat %s failed: %s", path, err)
}
}
@@ -2091,12 +2077,7 @@
func TestStatDirModeExec(t *testing.T) {
const mode = 0111

- path, err := os.MkdirTemp("", "go-build")
- if err != nil {
- t.Fatalf("Failed to create temp directory: %v", err)
- }
- defer RemoveAll(path)
-
+ path := t.TempDir()
if err := Chmod(path, 0777); err != nil {
t.Fatalf("Chmod %q 0777: %v", path, err)
}
@@ -2160,12 +2141,7 @@
func TestStatRelativeSymlink(t *testing.T) {
testenv.MustHaveSymlink(t)

- tmpdir, err := os.MkdirTemp("", "TestStatRelativeSymlink")
- if err != nil {
- t.Fatal(err)
- }
- defer RemoveAll(tmpdir)
-
+ tmpdir := t.TempDir()
target := filepath.Join(tmpdir, "target")
f, err := Create(target)
if err != nil {
diff --git a/src/os/os_windows_test.go b/src/os/os_windows_test.go
index f310a75..195c30f 100644
--- a/src/os/os_windows_test.go
+++ b/src/os/os_windows_test.go
@@ -626,11 +626,7 @@
}

func TestDeleteReadOnly(t *testing.T) {
- tmpdir, err := os.MkdirTemp("", "TestDeleteReadOnly")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(tmpdir)
+ tmpdir := t.TempDir()
p := filepath.Join(tmpdir, "a")
// This sets FILE_ATTRIBUTE_READONLY.
f, err := os.OpenFile(p, os.O_CREATE, 0400)
@@ -796,11 +792,7 @@
}

func TestCmdArgs(t *testing.T) {
- tmpdir, err := os.MkdirTemp("", "TestCmdArgs")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(tmpdir)
+ tmpdir := t.TempDir()

const prog = `
package main
@@ -815,8 +807,7 @@
}
`
src := filepath.Join(tmpdir, "main.go")
- err = os.WriteFile(src, []byte(prog), 0666)
- if err != nil {
+ if err := os.WriteFile(src, []byte(prog), 0666); err != nil {
t.Fatal(err)
}

@@ -963,21 +954,14 @@
}
t.Parallel()

- temp, err := os.MkdirTemp("", "TestSymlinkCreation")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(temp)
-
+ temp := t.TempDir()
dummyFile := filepath.Join(temp, "file")
- err = os.WriteFile(dummyFile, []byte(""), 0644)
- if err != nil {
+ if err := os.WriteFile(dummyFile, []byte(""), 0644); err != nil {
t.Fatal(err)
}

linkFile := filepath.Join(temp, "link")
- err = os.Symlink(dummyFile, linkFile)
- if err != nil {
+ if err := os.Symlink(dummyFile, linkFile); err != nil {
t.Fatal(err)
}
}
diff --git a/src/os/path_test.go b/src/os/path_test.go
index b79d958..4535abb 100644
--- a/src/os/path_test.go
+++ b/src/os/path_test.go
@@ -6,7 +6,6 @@

import (
"internal/testenv"
- "os"
. "os"
"path/filepath"
"runtime"
@@ -78,27 +77,19 @@
func TestMkdirAllWithSymlink(t *testing.T) {
testenv.MustHaveSymlink(t)

- tmpDir, err := os.MkdirTemp("", "TestMkdirAllWithSymlink-")
- if err != nil {
- t.Fatal(err)
- }
- defer RemoveAll(tmpDir)
-
+ tmpDir := t.TempDir()
dir := tmpDir + "/dir"
- err = Mkdir(dir, 0755)
- if err != nil {
+ if err := Mkdir(dir, 0755); err != nil {
t.Fatalf("Mkdir %s: %s", dir, err)
}

link := tmpDir + "/link"
- err = Symlink("dir", link)
- if err != nil {
+ if err := Symlink("dir", link); err != nil {
t.Fatalf("Symlink %s: %s", link, err)
}

path := link + "/foo"
- err = MkdirAll(path, 0755)
- if err != nil {
+ if err := MkdirAll(path, 0755); err != nil {
t.Errorf("MkdirAll %q: %s", path, err)
}
}
diff --git a/src/os/path_windows_test.go b/src/os/path_windows_test.go
index a23a079..e960bcb 100644
--- a/src/os/path_windows_test.go
+++ b/src/os/path_windows_test.go
@@ -50,31 +50,21 @@
}

func TestMkdirAllLongPath(t *testing.T) {
- tmpDir, err := os.MkdirTemp("", "TestMkdirAllLongPath")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(tmpDir)
+ tmpDir := t.TempDir()
path := tmpDir
for i := 0; i < 100; i++ {
path += `\another-path-component`
}
- err = os.MkdirAll(path, 0777)
- if err != nil {
+ if err := os.MkdirAll(path, 0777); err != nil {
t.Fatalf("MkdirAll(%q) failed; %v", path, err)
}
- err = os.RemoveAll(tmpDir)
- if err != nil {
+ if err := os.RemoveAll(tmpDir); err != nil {
t.Fatalf("RemoveAll(%q) failed; %v", tmpDir, err)
}
}

func TestMkdirAllExtendedLength(t *testing.T) {
- tmpDir, err := os.MkdirTemp("", "TestMkdirAllExtendedLength")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(tmpDir)
+ tmpDir := t.TempDir()

const prefix = `\\?\`
if len(tmpDir) < 4 || tmpDir[:4] != prefix {
@@ -85,14 +75,12 @@
tmpDir = prefix + fullPath
}
path := tmpDir + `\dir\`
- err = os.MkdirAll(path, 0777)
- if err != nil {
+ if err := os.MkdirAll(path, 0777); err != nil {
t.Fatalf("MkdirAll(%q) failed: %v", path, err)
}

path = path + `.\dir2`
- err = os.MkdirAll(path, 0777)
- if err == nil {
+ if err := os.MkdirAll(path, 0777); err == nil {
t.Fatalf("MkdirAll(%q) should have failed, but did not", path)
}
}
diff --git a/src/os/removeall_test.go b/src/os/removeall_test.go
index 3a2f6e3..08dfdd8 100644
--- a/src/os/removeall_test.go
+++ b/src/os/removeall_test.go
@@ -15,12 +15,7 @@
)

func TestRemoveAll(t *testing.T) {
- tmpDir, err := os.MkdirTemp("", "TestRemoveAll-")
- if err != nil {
- t.Fatal(err)
- }
- defer RemoveAll(tmpDir)
-
+ tmpDir := t.TempDir()
if err := RemoveAll(""); err != nil {
t.Errorf("RemoveAll(\"\"): %v; want nil", err)
}
@@ -128,12 +123,7 @@
t.Skip("skipping in short mode")
}

- tmpDir, err := os.MkdirTemp("", "TestRemoveAll-")
- if err != nil {
- t.Fatal(err)
- }
- defer RemoveAll(tmpDir)
-
+ tmpDir := t.TempDir()
path := filepath.Join(tmpDir, "_TestRemoveAllLarge_")

// Make directory with 1000 files and remove.
@@ -236,12 +226,7 @@
func TestRemoveAllDotDot(t *testing.T) {
t.Parallel()

- tempDir, err := os.MkdirTemp("", "TestRemoveAllDotDot-")
- if err != nil {
- t.Fatal(err)
- }
- defer RemoveAll(tempDir)
-
+ tempDir := t.TempDir()
subdir := filepath.Join(tempDir, "x")
subsubdir := filepath.Join(subdir, "y")
if err := MkdirAll(subsubdir, 0777); err != nil {
@@ -261,12 +246,7 @@
func TestRemoveReadOnlyDir(t *testing.T) {
t.Parallel()

- tempDir, err := os.MkdirTemp("", "TestRemoveReadOnlyDir-")
- if err != nil {
- t.Fatal(err)
- }
- defer RemoveAll(tempDir)
-
+ tempDir := t.TempDir()
subdir := filepath.Join(tempDir, "x")
if err := Mkdir(subdir, 0); err != nil {
t.Fatal(err)
@@ -298,12 +278,7 @@

t.Parallel()

- tempDir, err := os.MkdirTemp("", "TestRemoveAllButReadOnly-")
- if err != nil {
- t.Fatal(err)
- }
- defer RemoveAll(tempDir)
-
+ tempDir := t.TempDir()
dirs := []string{
"a",
"a/x",
@@ -347,7 +322,7 @@
defer Chmod(d, 0777)
}

- err = RemoveAll(tempDir)
+ err := RemoveAll(tempDir)
if err == nil {
t.Fatal("RemoveAll succeeded unexpectedly")
}
@@ -389,12 +364,7 @@

t.Parallel()

- tempDir, err := os.MkdirTemp("", "TestRemoveAllButReadOnly-")
- if err != nil {
- t.Fatal(err)
- }
- defer RemoveAll(tempDir)
-
+ tempDir := t.TempDir()
target := filepath.Join(tempDir, "d0", "d1", "d2")
if err := MkdirAll(target, 0755); err != nil {
t.Fatal(err)
@@ -413,12 +383,7 @@
t.Skip("skipping in short mode")
}

- tmpDir, err := os.MkdirTemp("", "TestRemoveAll-")
- if err != nil {
- t.Fatal(err)
- }
- defer RemoveAll(tmpDir)
-
+ tmpDir := t.TempDir()
path := filepath.Join(tmpDir, "_TestRemoveAllWithMoreErrorThanReqSize_")

// Make directory with 1025 read-only files.
@@ -443,7 +408,7 @@

// This call should not hang, even on a platform that disallows file deletion
// from read-only directories.
- err = RemoveAll(path)
+ err := RemoveAll(path)

if Getuid() == 0 {
// On many platforms, root can remove files from read-only directories.
diff --git a/src/os/stat_test.go b/src/os/stat_test.go
index c409f0f..8d99f64 100644
--- a/src/os/stat_test.go
+++ b/src/os/stat_test.go
@@ -185,30 +185,22 @@
func TestDirAndSymlinkStats(t *testing.T) {
testenv.MustHaveSymlink(t)

- tmpdir, err := os.MkdirTemp("", "TestDirAndSymlinkStats")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(tmpdir)
-
+ tmpdir := t.TempDir()
dir := filepath.Join(tmpdir, "dir")
- err = os.Mkdir(dir, 0777)
- if err != nil {
+ if err := os.Mkdir(dir, 0777); err != nil {
t.Fatal(err)
}
testDirStats(t, dir)

dirlink := filepath.Join(tmpdir, "link")
- err = os.Symlink(dir, dirlink)
- if err != nil {
+ if err := os.Symlink(dir, dirlink); err != nil {
t.Fatal(err)
}
testSymlinkStats(t, dirlink, true)
testSymlinkSameFile(t, dir, dirlink)

linklink := filepath.Join(tmpdir, "linklink")
- err = os.Symlink(dirlink, linklink)
- if err != nil {
+ if err := os.Symlink(dirlink, linklink); err != nil {
t.Fatal(err)
}
testSymlinkStats(t, linklink, true)
@@ -218,30 +210,22 @@
func TestFileAndSymlinkStats(t *testing.T) {
testenv.MustHaveSymlink(t)

- tmpdir, err := os.MkdirTemp("", "TestFileAndSymlinkStats")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(tmpdir)
-
+ tmpdir := t.TempDir()
file := filepath.Join(tmpdir, "file")
- err = os.WriteFile(file, []byte(""), 0644)
- if err != nil {
+ if err := os.WriteFile(file, []byte(""), 0644); err != nil {
t.Fatal(err)
}
testFileStats(t, file)

filelink := filepath.Join(tmpdir, "link")
- err = os.Symlink(file, filelink)
- if err != nil {
+ if err := os.Symlink(file, filelink); err != nil {
t.Fatal(err)
}
testSymlinkStats(t, filelink, false)
testSymlinkSameFile(t, file, filelink)

linklink := filepath.Join(tmpdir, "linklink")
- err = os.Symlink(filelink, linklink)
- if err != nil {
+ if err := os.Symlink(filelink, linklink); err != nil {
t.Fatal(err)
}
testSymlinkStats(t, linklink, false)
@@ -252,20 +236,13 @@
func TestSymlinkWithTrailingSlash(t *testing.T) {
testenv.MustHaveSymlink(t)

- tmpdir, err := os.MkdirTemp("", "TestSymlinkWithTrailingSlash")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(tmpdir)
-
+ tmpdir := t.TempDir()
dir := filepath.Join(tmpdir, "dir")
- err = os.Mkdir(dir, 0777)
- if err != nil {
+ if err := os.Mkdir(dir, 0777); err != nil {
t.Fatal(err)
}
dirlink := filepath.Join(tmpdir, "link")
- err = os.Symlink(dir, dirlink)
- if err != nil {
+ if err := os.Symlink(dir, dirlink); err != nil {
t.Fatal(err)
}
dirlinkWithSlash := dirlink + string(os.PathSeparator)

To view, visit change 308109. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: go
Gerrit-Branch: master
Gerrit-Change-Id: Ib8e62a13ddff884e4d34b3a0fdc9a10db2b68da6
Gerrit-Change-Number: 308109
Gerrit-PatchSet: 5
Gerrit-Owner: Manlio Perillo <manlio....@gmail.com>
Gerrit-Reviewer: Brad Fitzpatrick <brad...@golang.org>
Gerrit-Reviewer: Go Bot <go...@golang.org>
Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
Gerrit-Reviewer: Rob Pike <r...@golang.org>
Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
Gerrit-Reviewer: Russ Cox <r...@golang.org>
Gerrit-Reviewer: Tobias Klauser <tobias....@gmail.com>
Gerrit-MessageType: merged
Reply all
Reply to author
Forward
0 new messages