From 888a0c8ef6afb752aafd147eda40d62796d87cb3 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 1 Apr 2020 10:43:57 -0700 Subject: testing: add TB.TempDir Fixes #35998 Change-Id: I87c6bf4e34e832be68862ca16ecfa6ea12048d31 Reviewed-on: https://go-review.googlesource.com/c/go/+/226877 Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor --- src/testing/testing_test.go | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'src/testing/testing_test.go') diff --git a/src/testing/testing_test.go b/src/testing/testing_test.go index 45e44683b4..afb35a96d4 100644 --- a/src/testing/testing_test.go +++ b/src/testing/testing_test.go @@ -5,6 +5,7 @@ package testing_test import ( + "io/ioutil" "os" "testing" ) @@ -16,3 +17,50 @@ import ( func TestMain(m *testing.M) { os.Exit(m.Run()) } + +func TestTempDir(t *testing.T) { + dirCh := make(chan string, 1) + t.Cleanup(func() { + // Verify directory has been removed. + select { + case dir := <-dirCh: + fi, err := os.Stat(dir) + if os.IsNotExist(err) { + // All good + return + } + if err != nil { + t.Fatal(err) + } + t.Errorf("directory %q stil exists: %v, isDir=%v", dir, fi, fi.IsDir()) + default: + if !t.Failed() { + t.Fatal("never received dir channel") + } + } + }) + + dir := t.TempDir() + if dir == "" { + t.Fatal("expected dir") + } + dir2 := t.TempDir() + if dir != dir2 { + t.Fatal("directory changed between calls") + } + dirCh <- dir + fi, err := os.Stat(dir) + if err != nil { + t.Fatal(err) + } + if !fi.IsDir() { + t.Errorf("dir %q is not a dir", dir) + } + fis, err := ioutil.ReadDir(dir) + if err != nil { + t.Fatal(err) + } + if len(fis) > 0 { + t.Errorf("unexpected %d files in TempDir: %v", len(fis), fis) + } +} -- cgit v1.3