From 5c7dbf40e1e0af9d8fc4521e1ce7bd0afaa1f2c4 Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Mon, 24 Feb 2020 13:58:29 -0500 Subject: [PATCH] misc/cgo/testshared: explicitly set GOBIN (instead of unsetting it) If GOBIN is set in the GOENV file, then merely unsetting it in the process environment is not sufficient. We can instead either set GOBIN explicitly, or disable GOENV explicitly. For now, we (semi-arbitrary) choose the former. Fixes #37390 Change-Id: Iec54532c804b70546d695105cd89e9169eac5dbb Reviewed-on: https://go-review.googlesource.com/c/go/+/220652 Run-TryBot: Bryan C. Mills TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor --- misc/cgo/testshared/shared_test.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/misc/cgo/testshared/shared_test.go b/misc/cgo/testshared/shared_test.go index b9ef6dad8e24c..c7f15b8e8916f 100644 --- a/misc/cgo/testshared/shared_test.go +++ b/misc/cgo/testshared/shared_test.go @@ -105,6 +105,8 @@ func testMain(m *testing.M) (int, error) { fmt.Printf("+ cd %s\n", modRoot) } os.Setenv("GOPATH", gopath) + // Explicitly override GOBIN as well, in case it was set through a GOENV file. + os.Setenv("GOBIN", filepath.Join(gopath, "bin")) os.Chdir(modRoot) os.Setenv("PWD", modRoot) @@ -153,10 +155,6 @@ func TestMain(m *testing.M) { log.SetFlags(log.Lshortfile) flag.Parse() - // Some of the tests install binaries into a custom GOPATH. - // That won't work if GOBIN is set. - os.Unsetenv("GOBIN") - exitCode, err := testMain(m) if err != nil { log.Fatal(err)