]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: no longer eval symlinks in inDir
authorIssac Trotts <issactrotts@google.com>
Thu, 2 Aug 2018 04:05:03 +0000 (21:05 -0700)
committerIan Lance Taylor <iant@golang.org>
Thu, 2 Aug 2018 21:56:53 +0000 (21:56 +0000)
Evaluating the symlinks was slowing down test cache checks.

Fixes #26562
Fixes #26726

ijt:~/gopath/src/issue26562$ cat foo_test.go
package foo_test

import (
"fmt"
"os"
"path/filepath"
"testing"
)

// package and imports snipped
func TestCache(t *testing.T) {
tmp := os.TempDir()
for i := 0; i < 1000000; i++ {
os.Stat(filepath.Join(tmp, fmt.Sprintf("%d", i)))
}
}
ijt:~/gopath/src/issue26562$ time ~/github/go/bin/go test -count=1
PASS
ok      issue26562      9.444s

real    0m10.021s
user    0m2.344s
sys     0m7.835s
ijt:~/gopath/src/issue26562$ time ~/github/go/bin/go test .
ok      issue26562      (cached)

real    0m0.802s
user    0m0.551s
sys     0m0.306s

Change-Id: I3ce7f7b68bb5b9e802069f277e79e1ed3c162622
Reviewed-on: https://go-review.googlesource.com/127635
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/go/internal/test/test.go

index d6fcc2a47420f4736a28693acde5d9a9d48a694b..3b6ad049ed542a8f79676356c6f835221623aa37 100644 (file)
@@ -1448,15 +1448,7 @@ func computeTestInputsID(a *work.Action, testlog []byte) (cache.ActionID, error)
 }
 
 func inDir(path, dir string) bool {
-       if str.HasFilePathPrefix(path, dir) {
-               return true
-       }
-       xpath, err1 := filepath.EvalSymlinks(path)
-       xdir, err2 := filepath.EvalSymlinks(dir)
-       if err1 == nil && err2 == nil && str.HasFilePathPrefix(xpath, xdir) {
-               return true
-       }
-       return false
+       return str.HasFilePathPrefix(path, dir)
 }
 
 func hashGetenv(name string) cache.ActionID {