mirror of https://github.com/golang/go.git
testing: limit TempDir name length
Fixes #71742 Change-Id: Ibef8f7f0a36b25f181062c4d2f84279a97e467a4 Reviewed-on: https://go-review.googlesource.com/c/go/+/671577 Reviewed-by: Damien Neil <dneil@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Knyszek <mknyszek@google.com>
This commit is contained in:
parent
8cfcad8da8
commit
ac992f2614
|
|
@ -1244,6 +1244,11 @@ func (c *common) TempDir() string {
|
||||||
if nonExistent {
|
if nonExistent {
|
||||||
c.Helper()
|
c.Helper()
|
||||||
|
|
||||||
|
pattern := c.Name()
|
||||||
|
// Limit length of file names on disk.
|
||||||
|
// Invalid runes from slicing are dropped by strings.Map below.
|
||||||
|
pattern = pattern[:min(len(pattern), 64)]
|
||||||
|
|
||||||
// Drop unusual characters (such as path separators or
|
// Drop unusual characters (such as path separators or
|
||||||
// characters interacting with globs) from the directory name to
|
// characters interacting with globs) from the directory name to
|
||||||
// avoid surprising os.MkdirTemp behavior.
|
// avoid surprising os.MkdirTemp behavior.
|
||||||
|
|
@ -1263,7 +1268,7 @@ func (c *common) TempDir() string {
|
||||||
}
|
}
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
pattern := strings.Map(mapper, c.Name())
|
pattern = strings.Map(mapper, pattern)
|
||||||
c.tempDir, c.tempDirErr = os.MkdirTemp("", pattern)
|
c.tempDir, c.tempDirErr = os.MkdirTemp("", pattern)
|
||||||
if c.tempDirErr == nil {
|
if c.tempDirErr == nil {
|
||||||
c.Cleanup(func() {
|
c.Cleanup(func() {
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,7 @@ func TestTempDir(t *testing.T) {
|
||||||
t.Run("test[]", testTempDir)
|
t.Run("test[]", testTempDir)
|
||||||
t.Run("test*", testTempDir)
|
t.Run("test*", testTempDir)
|
||||||
t.Run("äöüéè", testTempDir)
|
t.Run("äöüéè", testTempDir)
|
||||||
|
t.Run(strings.Repeat("a", 300), testTempDir)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testTempDir(t *testing.T) {
|
func testTempDir(t *testing.T) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue