aboutsummaryrefslogtreecommitdiff
path: root/src/testing/testing.go
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2020-04-24 12:17:01 +0200
committerTobias Klauser <tobias.klauser@gmail.com>2020-04-25 10:38:47 +0000
commit41e925bbcce2f0ca624f74ae4c5574dc76cb4140 (patch)
tree5b83eaeb50499f019a052c8ba0c02634b4dba07e /src/testing/testing.go
parent49f10f37975f0a08ac5ae320d3a29f936b56d0a9 (diff)
downloadgo-41e925bbcce2f0ca624f74ae4c5574dc76cb4140.tar.gz
go-41e925bbcce2f0ca624f74ae4c5574dc76cb4140.zip
testing: replace all GOOS-specific path separators in TempDir
For GOOS=windows the path separator characters '\' and ':' also need be replaced. Updates #38465 Change-Id: If7c8cf93058c87d7df6cda140e82fd76578fe699 Reviewed-on: https://go-review.googlesource.com/c/go/+/229837 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/testing/testing.go')
-rw-r--r--src/testing/testing.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/testing/testing.go b/src/testing/testing.go
index 44bccd384e..8dfb61bcc3 100644
--- a/src/testing/testing.go
+++ b/src/testing/testing.go
@@ -797,6 +797,11 @@ func (c *common) Cleanup(f func()) {
}
}
+var (
+ rOnce sync.Once
+ r *strings.Replacer
+)
+
// TempDir returns a temporary directory for the test to use.
// It is lazily created on first access, and calls t.Fatal if the directory
// creation fails.
@@ -809,7 +814,10 @@ func (c *common) TempDir() string {
// ioutil.TempDir doesn't like path separators in its pattern,
// so mangle the name to accommodate subtests.
- pattern := strings.ReplaceAll(c.Name(), "/", "_")
+ rOnce.Do(func() {
+ r = strings.NewReplacer("/", "_", "\\", "_", ":", "_")
+ })
+ pattern := r.Replace(c.Name())
c.tempDir, c.tempDirErr = ioutil.TempDir("", pattern)
if c.tempDirErr == nil {