diff options
| author | Issac Trotts <issactrotts@google.com> | 2018-08-01 21:05:03 -0700 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2018-08-02 21:56:53 +0000 |
| commit | 25aaeaa935484e3c341ef8a411069d7dd58afcfa (patch) | |
| tree | 5cd3ea8bc6177c900ab6b369c6b3df42442f6416 | |
| parent | 6eabfab438fa504df234a079411a3b153257b338 (diff) | |
| download | go-25aaeaa935484e3c341ef8a411069d7dd58afcfa.tar.xz | |
cmd/go: no longer eval symlinks in inDir
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>
| -rw-r--r-- | src/cmd/go/internal/test/test.go | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/src/cmd/go/internal/test/test.go b/src/cmd/go/internal/test/test.go index d6fcc2a474..3b6ad049ed 100644 --- a/src/cmd/go/internal/test/test.go +++ b/src/cmd/go/internal/test/test.go @@ -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 { |
