]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/moddeps: fix false positive when $TMPDIR is symlinked
authorDmitri Shuralyov <dmitshur@golang.org>
Wed, 24 Mar 2021 16:10:22 +0000 (12:10 -0400)
committerDmitri Shuralyov <dmitshur@golang.org>
Wed, 24 Mar 2021 20:19:44 +0000 (20:19 +0000)
os.Getwd notes that if the current directory can be reached via
multiple paths (due to symbolic links), Getwd may return any one
of them. A way to ensure that the desired path is used is to set
the PWD environment variable pointing to it.

The go generate command has started to update the PWD environment
variable as of CL 287152, which was the missing link previously
resulting in mkwinsyscall misunderstanding whether it's inside
the std lib when symbolic links are involved (issue 44079).

Now all that's left is for us to also set the PWD environment
variable when invoking the go command in the test, so that it
too knows the intended working directory path to use.

Fixes #44080.
Updates #44079.
Updates #43862.

Change-Id: I65c9d19d0979f486800b9b328c9b45a1a3180e81
Reviewed-on: https://go-review.googlesource.com/c/go/+/304449
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
src/cmd/internal/moddeps/moddeps_test.go

index 78c291e203182e0a0a7c414d173282f0a6f2dcc3..62687403ecce84c31adb420fd0147226eec2764b 100644 (file)
@@ -163,8 +163,8 @@ func TestAllDependencies(t *testing.T) {
                                Env: append(os.Environ(),
                                        // Set GOROOT.
                                        "GOROOT="+gorootCopyDir,
-                                       // Explicitly clear PWD and GOROOT_FINAL so that GOROOT=gorootCopyDir is definitely used.
-                                       "PWD=",
+                                       // Explicitly override PWD and clear GOROOT_FINAL so that GOROOT=gorootCopyDir is definitely used.
+                                       "PWD="+filepath.Join(gorootCopyDir, rel),
                                        "GOROOT_FINAL=",
                                        // Add GOROOTcopy/bin and bundleDir to front of PATH.
                                        "PATH="+filepath.Join(gorootCopyDir, "bin")+string(filepath.ListSeparator)+