aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2018-08-02 18:16:39 -0700
committerIan Lance Taylor <iant@golang.org>2018-08-03 02:00:34 +0000
commit0cab8bfddde4b5798563638947065f21912d25bf (patch)
treececa0f5c86c906c613ee4c899357b41db84e8798
parentf04a002e5ab99868d89e3263cfe947853d87b2d6 (diff)
downloadgo-0cab8bfddde4b5798563638947065f21912d25bf.tar.gz
go-0cab8bfddde4b5798563638947065f21912d25bf.zip
cmd/go: revert "cmd/go: no longer eval symlinks in inDir"
It breaks on the Darwin builders, with --- FAIL: TestTestCacheInputs (21.65s) go_test.go:5371: file.txt: old=2018-08-02 15:12:21.136438 -0700 PDT m=+219.458659208, info.ModTime=2018-08-02 15:12:21 -0700 PDT go_test.go:5377: running testgo [test testcache] go_test.go:5377: standard output: go_test.go:5377: ok testcache 0.013s go_test.go:5378: running testgo [test testcache] go_test.go:5378: standard output: go_test.go:5378: ok testcache (cached) go_test.go:5382: running testgo [test testcache] go_test.go:5382: standard output: go_test.go:5382: ok testcache 0.172s go_test.go:5384: running testgo [test testcache] go_test.go:5384: standard output: go_test.go:5384: ok testcache (cached) go_test.go:5387: running testgo [test testcache -run=FileSize] go_test.go:5387: standard output: go_test.go:5387: ok testcache 0.012s go_test.go:5388: running testgo [test testcache -run=FileSize] go_test.go:5388: standard output: go_test.go:5388: ok testcache (cached) go_test.go:5391: running testgo [test testcache -run=FileSize] go_test.go:5391: standard output: go_test.go:5391: ok testcache 0.008s go_test.go:5393: running testgo [test testcache -run=FileSize] go_test.go:5393: standard output: go_test.go:5393: ok testcache (cached) go_test.go:5396: running testgo [test testcache -run=Chdir] go_test.go:5396: standard output: go_test.go:5396: ok testcache 0.417s go_test.go:5397: running testgo [test testcache -run=Chdir] go_test.go:5397: standard output: go_test.go:5397: ok testcache (cached) go_test.go:5400: running testgo [test testcache -run=Chdir] go_test.go:5400: standard output: go_test.go:5400: ok testcache (cached) go_test.go:5401: did not notice file size change go_test.go:5401: pattern \(cached\) found unexpectedly in standard output FAIL Original CL description: 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 Updates #26562 Updates #26726 Change-Id: I7914ee57dc75bcbd7f0ea01c70bed97d67c810ea Reviewed-on: https://go-review.googlesource.com/127715 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-rw-r--r--src/cmd/go/internal/test/test.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/cmd/go/internal/test/test.go b/src/cmd/go/internal/test/test.go
index 3b6ad049ed..d6fcc2a474 100644
--- a/src/cmd/go/internal/test/test.go
+++ b/src/cmd/go/internal/test/test.go
@@ -1448,7 +1448,15 @@ func computeTestInputsID(a *work.Action, testlog []byte) (cache.ActionID, error)
}
func inDir(path, dir string) bool {
- return str.HasFilePathPrefix(path, dir)
+ 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
}
func hashGetenv(name string) cache.ActionID {