diff options
| author | AN Long <aisk1988@gmail.com> | 2025-08-12 14:06:53 +0000 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2025-08-29 09:56:10 -0700 |
| commit | ba9e1ddccfe55e711ac3987f74109393dfb736af (patch) | |
| tree | d1b52c85cb7d885b2f870cba8e1b404b24b877af /src/testing/testing_test.go | |
| parent | 9f6936b8da81672cebcfa7ac3d6edddf9f1a5d65 (diff) | |
| download | go-ba9e1ddccfe55e711ac3987f74109393dfb736af.tar.xz | |
testing: allow specify temp dir by GOTMPDIR environment variable
Allow change the default temp directory returned by t.TempDir()
by environment variable GOTMPDIR.
Fixes #61585
Change-Id: Iba969bb02744e106cf15d80e0eda0245a55fc290
GitHub-Last-Rev: aeacea00952b11990b49a0fde6a0ce4fe910b777
GitHub-Pull-Request: golang/go#74844
Reviewed-on: https://go-review.googlesource.com/c/go/+/692455
Reviewed-by: Damien Neil <dneil@google.com>
Auto-Submit: Sean Liao <sean@liao.dev>
Reviewed-by: Sean Liao <sean@liao.dev>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'src/testing/testing_test.go')
| -rw-r--r-- | src/testing/testing_test.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/testing/testing_test.go b/src/testing/testing_test.go index f4f5817a37..cc89e4144e 100644 --- a/src/testing/testing_test.go +++ b/src/testing/testing_test.go @@ -147,6 +147,39 @@ func testTempDir(t *testing.T) { } } +func TestTempDirGOTMPDIR(t *testing.T) { + // The first call to t.TempDir will create a parent temporary directory + // that will contain all temporary directories created by TempDir. + // + // Use os.TempDir (not t.TempDir) to get a temporary directory, + // set GOTMPDIR to that directory, + // and then verify that t.TempDir creates a directory in GOTMPDIR. + customTmpDir := filepath.Join(os.TempDir(), "custom-gotmpdir-test") + if err := os.MkdirAll(customTmpDir, 0777); err != nil { + t.Fatal(err) + } + defer os.RemoveAll(customTmpDir) + + t.Setenv("GOTMPDIR", customTmpDir) + + dir := t.TempDir() + if dir == "" { + t.Fatal("expected dir") + } + + if !strings.HasPrefix(dir, customTmpDir) { + t.Errorf("TempDir did not use GOTMPDIR: got %q, want prefix %q", dir, customTmpDir) + } + + fi, err := os.Stat(dir) + if err != nil { + t.Fatal(err) + } + if !fi.IsDir() { + t.Errorf("dir %q is not a dir", dir) + } +} + func TestSetenv(t *testing.T) { tests := []struct { name string |
