diff options
author | Bryan C. Mills <bcmills@google.com> | 2022-07-08 10:02:14 -0400 |
---|---|---|
committer | Bryan Mills <bcmills@google.com> | 2022-07-08 18:51:33 +0000 |
commit | 5c1a13e7a47bc47c07057c0acf626e3fafe064c9 (patch) | |
tree | 09094b255d871b6cb72d3fc5d61b385f130b9058 /src/cmd/go/script_test.go | |
parent | 180bcad33dcd3d59443fe8eda5ae7556b1b2945b (diff) | |
download | go-git-5c1a13e7a47bc47c07057c0acf626e3fafe064c9.tar.gz |
cmd/go: avoid setting variables for '/' and ':' in TestScript subprocess environments
Also simplify platform-dependent handling of the PATH variable,
to make it more like the existing platform-dependent handling for
HOME and TMPDIR.
Fixes #53671.
Change-Id: Ica2665d3f61988c66fb6982b9feb61ca48eced79
Reviewed-on: https://go-review.googlesource.com/c/go/+/416554
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/cmd/go/script_test.go')
-rw-r--r-- | src/cmd/go/script_test.go | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/cmd/go/script_test.go b/src/cmd/go/script_test.go index 5e82929f19..809dfb452f 100644 --- a/src/cmd/go/script_test.go +++ b/src/cmd/go/script_test.go @@ -163,7 +163,7 @@ func (ts *testScript) setup() { ts.cd = filepath.Join(ts.workdir, "gopath/src") ts.env = []string{ "WORK=" + ts.workdir, // must be first for ts.abbrev - "PATH=" + testBin + string(filepath.ListSeparator) + os.Getenv("PATH"), + pathEnvName() + "=" + testBin + string(filepath.ListSeparator) + os.Getenv(pathEnvName()), homeEnvName() + "=/no-home", "CCACHE_DISABLE=1", // ccache breaks with non-existent HOME "GOARCH=" + runtime.GOARCH, @@ -187,8 +187,6 @@ func (ts *testScript) setup() { tempEnvName() + "=" + filepath.Join(ts.workdir, "tmp"), "devnull=" + os.DevNull, "goversion=" + goVersion(ts), - ":=" + string(os.PathListSeparator), - "/=" + string(os.PathSeparator), "CMDGO_TEST_RUN_MAIN=true", } if testenv.Builder() != "" || os.Getenv("GIT_TRACE_CURL") == "1" { @@ -203,10 +201,6 @@ func (ts *testScript) setup() { ts.env = append(ts.env, "TESTGONETWORK=panic", "TESTGOVCS=panic") } - if runtime.GOOS == "plan9" { - ts.env = append(ts.env, "path="+testBin+string(filepath.ListSeparator)+os.Getenv("path")) - } - for _, key := range extraEnvKeys { if val := os.Getenv(key); val != "" { ts.env = append(ts.env, key+"="+val) @@ -219,6 +213,10 @@ func (ts *testScript) setup() { ts.envMap[kv[:i]] = kv[i+1:] } } + // Add entries for ${:} and ${/} to make it easier to write platform-independent + // environment variables. + ts.envMap["/"] = string(os.PathSeparator) + ts.envMap[":"] = string(os.PathListSeparator) fmt.Fprintf(&ts.log, "# (%s)\n", time.Now().UTC().Format(time.RFC3339)) ts.mark = ts.log.Len() @@ -1264,12 +1262,7 @@ func (ts *testScript) lookPath(command string) (string, error) { } } - pathName := "PATH" - if runtime.GOOS == "plan9" { - pathName = "path" - } - - for _, dir := range strings.Split(ts.envMap[pathName], string(filepath.ListSeparator)) { + for _, dir := range strings.Split(ts.envMap[pathEnvName()], string(filepath.ListSeparator)) { if searchExt { ents, err := os.ReadDir(dir) if err != nil { |