File 0005-test-use-t.TempDir.patch of Package go-mtree
From f2b48a0e2fbffe9c59f7b97439120e1c8861f5a3 Mon Sep 17 00:00:00 2001
From: Aleksa Sarai <cyphar@cyphar.com>
Date: Sat, 20 Sep 2025 03:05:47 +1000
Subject: [PATCH 05/25] test: use t.TempDir
This was added in Go 1.15 and avoids polluting the host /tmp with test
directories if the test crashes or is forcefully killed.
Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
---
check_test.go | 30 +++++-------------------------
compare_test.go | 30 +++++-------------------------
fseval_test.go | 6 +-----
update_test.go | 6 +-----
walk_test.go | 3 +--
5 files changed, 13 insertions(+), 62 deletions(-)
diff --git a/check_test.go b/check_test.go
index bc19ed4886f1..e698008a1757 100644
--- a/check_test.go
+++ b/check_test.go
@@ -30,11 +30,7 @@ func TestCheck(t *testing.T) {
// only check again for size and sha1, and ignore time, and ensure it passes
func TestCheckKeywords(t *testing.T) {
content := []byte("I know half of you half as well as I ought to")
- dir, err := os.MkdirTemp("", "test-check-keywords")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir) // clean up
+ dir := t.TempDir()
tmpfn := filepath.Join(dir, "tmpfile")
if err := os.WriteFile(tmpfn, content, 0666); err != nil {
@@ -119,11 +115,7 @@ func TestDefaultBrokenLink(t *testing.T) {
// https://github.com/vbatts/go-mtree/issues/8
func TestTimeComparison(t *testing.T) {
- dir, err := os.MkdirTemp("", "test-time.")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
// This is the format of time from FreeBSD
spec := `
@@ -164,11 +156,7 @@ func TestTimeComparison(t *testing.T) {
}
func TestTarTime(t *testing.T) {
- dir, err := os.MkdirTemp("", "test-tar-time.")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
// This is the format of time from FreeBSD
spec := `
@@ -218,11 +206,7 @@ func TestTarTime(t *testing.T) {
}
func TestIgnoreComments(t *testing.T) {
- dir, err := os.MkdirTemp("", "test-comments.")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
// This is the format of time from FreeBSD
spec := `
@@ -287,11 +271,7 @@ func TestIgnoreComments(t *testing.T) {
}
func TestCheckNeedsEncoding(t *testing.T) {
- dir, err := os.MkdirTemp("", "test-needs-encoding")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
fh, err := os.Create(filepath.Join(dir, "file[ "))
if err != nil {
diff --git a/compare_test.go b/compare_test.go
index 8859dfa070d8..a9ff422a1053 100644
--- a/compare_test.go
+++ b/compare_test.go
@@ -36,11 +36,7 @@ func TestCompare(t *testing.T) {
//gocyclo:ignore
func TestCompareModified(t *testing.T) {
- dir, err := os.MkdirTemp("", "test-compare-modified")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
// Create a bunch of objects.
tmpfile := filepath.Join(dir, "tmpfile")
@@ -116,11 +112,7 @@ func TestCompareModified(t *testing.T) {
//gocyclo:ignore
func TestCompareMissing(t *testing.T) {
- dir, err := os.MkdirTemp("", "test-compare-missing")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
// Create a bunch of objects.
tmpfile := filepath.Join(dir, "tmpfile")
@@ -208,11 +200,7 @@ func TestCompareMissing(t *testing.T) {
//gocyclo:ignore
func TestCompareExtra(t *testing.T) {
- dir, err := os.MkdirTemp("", "test-compare-extra")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
// Walk the current state.
old, err := Walk(dir, nil, append(DefaultKeywords, "sha1"), nil)
@@ -286,11 +274,7 @@ func TestCompareExtra(t *testing.T) {
}
func TestCompareKeys(t *testing.T) {
- dir, err := os.MkdirTemp("", "test-compare-keys")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
// Create a bunch of objects.
tmpfile := filepath.Join(dir, "tmpfile")
@@ -342,11 +326,7 @@ func TestCompareKeys(t *testing.T) {
//gocyclo:ignore
func TestTarCompare(t *testing.T) {
- dir, err := os.MkdirTemp("", "test-compare-tar")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
+ dir := t.TempDir()
// Create a bunch of objects.
tmpfile := filepath.Join(dir, "tmpfile")
diff --git a/fseval_test.go b/fseval_test.go
index a52ea52dc39f..c23a7ea84bf4 100644
--- a/fseval_test.go
+++ b/fseval_test.go
@@ -72,11 +72,7 @@ func (fs *MockFsEval) KeywordFunc(fn KeywordFunc) KeywordFunc {
//gocyclo:ignore
func TestCheckFsEval(t *testing.T) {
- dir, err := os.MkdirTemp("", "test-check-fs-eval")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir) // clean up
+ dir := t.TempDir()
content := []byte("If you hide your ignorance, no one will hit you and you'll never learn.")
tmpfn := filepath.Join(dir, "tmpfile")
diff --git a/update_test.go b/update_test.go
index b346c44f620d..883f0d60dab1 100644
--- a/update_test.go
+++ b/update_test.go
@@ -23,11 +23,7 @@ func init() {
//gocyclo:ignore
func TestUpdate(t *testing.T) {
content := []byte("I know half of you half as well as I ought to")
- dir, err := os.MkdirTemp("", "test-check-keywords")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir) // clean up
+ dir := t.TempDir()
tmpfn := filepath.Join(dir, "tmpfile")
if err := os.WriteFile(tmpfn, content, 0666); err != nil {
diff --git a/walk_test.go b/walk_test.go
index 2277e4d96df0..e827b1f54a0c 100644
--- a/walk_test.go
+++ b/walk_test.go
@@ -12,11 +12,10 @@ func TestWalk(t *testing.T) {
}
numEntries := countTypes(dh)
- fh, err := os.CreateTemp("", "walk.")
+ fh, err := os.CreateTemp(t.TempDir(), "walk.")
if err != nil {
t.Fatal(err)
}
- defer os.Remove(fh.Name())
defer fh.Close()
if _, err = dh.WriteTo(fh); err != nil {
--
2.51.0