Commit 551f3f27 authored by Russ Cox's avatar Russ Cox

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
parent 89fde30f
......@@ -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
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment