aboutsummaryrefslogtreecommitdiff
path: root/src/testing/testing_test.go
diff options
context:
space:
mode:
authorAN Long <aisk1988@gmail.com>2025-08-12 14:06:53 +0000
committerGopher Robot <gobot@golang.org>2025-08-29 09:56:10 -0700
commitba9e1ddccfe55e711ac3987f74109393dfb736af (patch)
treed1b52c85cb7d885b2f870cba8e1b404b24b877af /src/testing/testing_test.go
parent9f6936b8da81672cebcfa7ac3d6edddf9f1a5d65 (diff)
downloadgo-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.go33
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