all: use T.TempDir to create temporary test directory (#8280)
This commit replaces `os.MkdirTemp` 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 `os.MkdirTemp`
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 <engzerjun@gmail.com>
This commit is contained in:
@@ -61,14 +61,10 @@ func TestCreateAtomicReplaceReadOnly(t *testing.T) {
|
||||
func testCreateAtomicReplace(t *testing.T, oldPerms os.FileMode) {
|
||||
t.Helper()
|
||||
|
||||
testdir, err := os.MkdirTemp("", "syncthing")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
testdir := t.TempDir()
|
||||
testfile := filepath.Join(testdir, "testfile")
|
||||
|
||||
os.RemoveAll(testdir)
|
||||
defer os.RemoveAll(testdir)
|
||||
|
||||
if err := os.Mkdir(testdir, 0755); err != nil {
|
||||
t.Fatal(err)
|
||||
|
||||
@@ -81,15 +81,7 @@ func TestIsDeleted(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRenameOrCopy(t *testing.T) {
|
||||
mustTempDir := func() string {
|
||||
t.Helper()
|
||||
tmpDir, err := os.MkdirTemp("", "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
return tmpDir
|
||||
}
|
||||
sameFs := fs.NewFilesystem(fs.FilesystemTypeBasic, mustTempDir())
|
||||
sameFs := fs.NewFilesystem(fs.FilesystemTypeBasic, t.TempDir())
|
||||
tests := []struct {
|
||||
src fs.Filesystem
|
||||
dst fs.Filesystem
|
||||
@@ -101,13 +93,13 @@ func TestRenameOrCopy(t *testing.T) {
|
||||
file: "file",
|
||||
},
|
||||
{
|
||||
src: fs.NewFilesystem(fs.FilesystemTypeBasic, mustTempDir()),
|
||||
dst: fs.NewFilesystem(fs.FilesystemTypeBasic, mustTempDir()),
|
||||
src: fs.NewFilesystem(fs.FilesystemTypeBasic, t.TempDir()),
|
||||
dst: fs.NewFilesystem(fs.FilesystemTypeBasic, t.TempDir()),
|
||||
file: "file",
|
||||
},
|
||||
{
|
||||
src: fs.NewFilesystem(fs.FilesystemTypeFake, `fake://fake/?files=1&seed=42`),
|
||||
dst: fs.NewFilesystem(fs.FilesystemTypeBasic, mustTempDir()),
|
||||
dst: fs.NewFilesystem(fs.FilesystemTypeBasic, t.TempDir()),
|
||||
file: osutil.NativeFilename(`05/7a/4d52f284145b9fe8`),
|
||||
},
|
||||
}
|
||||
@@ -147,6 +139,10 @@ func TestRenameOrCopy(t *testing.T) {
|
||||
if fd, err := test.dst.Open("new"); err != nil {
|
||||
t.Fatal(err)
|
||||
} else {
|
||||
t.Cleanup(func() {
|
||||
_ = fd.Close()
|
||||
})
|
||||
|
||||
if buf, err := io.ReadAll(fd); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if string(buf) != content {
|
||||
|
||||
@@ -17,15 +17,11 @@ import (
|
||||
)
|
||||
|
||||
func TestTraversesSymlink(t *testing.T) {
|
||||
tmpDir, err := os.MkdirTemp(".", ".test-TraversesSymlink-")
|
||||
if err != nil {
|
||||
panic("Failed to create temporary testing dir")
|
||||
}
|
||||
defer os.RemoveAll(tmpDir)
|
||||
tmpDir := t.TempDir()
|
||||
|
||||
testFs := fs.NewFilesystem(fs.FilesystemTypeBasic, tmpDir)
|
||||
testFs.MkdirAll("a/b/c", 0755)
|
||||
if err = fs.DebugSymlinkForTestsOnly(testFs, testFs, filepath.Join("a", "b"), filepath.Join("a", "l")); err != nil {
|
||||
if err := fs.DebugSymlinkForTestsOnly(testFs, testFs, filepath.Join("a", "b"), filepath.Join("a", "l")); err != nil {
|
||||
if runtime.GOOS == "windows" {
|
||||
t.Skip("Symlinks aren't working")
|
||||
}
|
||||
@@ -70,15 +66,11 @@ func TestTraversesSymlink(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestIssue4875(t *testing.T) {
|
||||
tmpDir, err := os.MkdirTemp("", ".test-Issue4875-")
|
||||
if err != nil {
|
||||
panic("Failed to create temporary testing dir")
|
||||
}
|
||||
defer os.RemoveAll(tmpDir)
|
||||
tmpDir := t.TempDir()
|
||||
|
||||
testFs := fs.NewFilesystem(fs.FilesystemTypeBasic, tmpDir)
|
||||
testFs.MkdirAll(filepath.Join("a", "b", "c"), 0755)
|
||||
if err = fs.DebugSymlinkForTestsOnly(testFs, testFs, filepath.Join("a", "b"), filepath.Join("a", "l")); err != nil {
|
||||
if err := fs.DebugSymlinkForTestsOnly(testFs, testFs, filepath.Join("a", "b"), filepath.Join("a", "l")); err != nil {
|
||||
if runtime.GOOS == "windows" {
|
||||
t.Skip("Symlinks aren't working")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user