mirror of
https://github.com/golang/go
synced 2024-11-25 05:57:57 -07:00
test/run: use correct $PWD to make os.Getwd less expensive
The commands being run are 'go tool this' and 'go tool that', and the go command will call Getwd during its init. R=golang-dev, iant CC=golang-dev https://golang.org/cl/7336045
This commit is contained in:
parent
89fde30fbd
commit
551f3f27aa
18
test/run.go
18
test/run.go
@ -433,6 +433,7 @@ func (t *test) run() {
|
||||
cmd.Stderr = &buf
|
||||
if useTmp {
|
||||
cmd.Dir = t.tempDir
|
||||
cmd.Env = envForDir(cmd.Dir)
|
||||
}
|
||||
err := cmd.Run()
|
||||
if err != nil {
|
||||
@ -828,3 +829,20 @@ func checkShouldTest() {
|
||||
assertNot(shouldTest("// +build arm 386", "linux", "amd64"))
|
||||
assert(shouldTest("// This is a test.", "os", "arch"))
|
||||
}
|
||||
|
||||
// envForDir returns a copy of the environment
|
||||
// suitable for running in the given directory.
|
||||
// The environment is the current process's environment
|
||||
// but with an updated $PWD, so that an os.Getwd in the
|
||||
// child will be faster.
|
||||
func envForDir(dir string) []string {
|
||||
env := os.Environ()
|
||||
for i, kv := range env {
|
||||
if strings.HasPrefix(kv, "PWD=") {
|
||||
env[i] = "PWD=" + dir
|
||||
return env
|
||||
}
|
||||
}
|
||||
env = append(env, "PWD="+dir)
|
||||
return env
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user