From 746f405f98ab8ad6e2e6a1ce162c831527aafd57 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Sun, 17 Mar 2019 16:07:25 +0100 Subject: [PATCH] cmd/go,misc/ios: fix tests on iOS Now that modules are always on, cmd/go tests require a valid GOCACHE. However, on iOS where the go tool is not available, the cmd/go test driver ends up setting GOCACHE to the empty string. Fix it by falling back to the builtin default cache directory. The iOS exec wrapper passes the environment variables to the app on the device, including $HOME used for the default cache directory. Skip $HOME to let the device specific and writable $HOME be used instead. Should fix cmd/go on the iOS builders that broke when GO111MODULE defaulted to on. Change-Id: I0939f5b8aaa1d2db95e64c99f4130eee2d0b4d4d Reviewed-on: https://go-review.googlesource.com/c/go/+/167938 Run-TryBot: Elias Naur TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- misc/ios/go_darwin_arm_exec.go | 4 ++-- src/cmd/go/go_test.go | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/misc/ios/go_darwin_arm_exec.go b/misc/ios/go_darwin_arm_exec.go index 6a3d9def68..8912d1e8fc 100644 --- a/misc/ios/go_darwin_arm_exec.go +++ b/misc/ios/go_darwin_arm_exec.go @@ -467,8 +467,8 @@ func idevCmd(cmd *exec.Cmd) *exec.Cmd { func run(appdir, bundleID string, args []string) error { var env []string for _, e := range os.Environ() { - // Don't override TMPDIR on the device. - if strings.HasPrefix(e, "TMPDIR=") { + // Don't override TMPDIR, HOME on the device. + if strings.HasPrefix(e, "TMPDIR=") || strings.HasPrefix(e, "HOME=") { continue } env = append(env, e) diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go index 60e02e7532..faf953ddeb 100644 --- a/src/cmd/go/go_test.go +++ b/src/cmd/go/go_test.go @@ -6,6 +6,7 @@ package main_test import ( "bytes" + "cmd/go/internal/cache" "cmd/internal/sys" "context" "debug/elf" @@ -166,6 +167,7 @@ func TestMain(m *testing.M) { defer removeAll(testTmpDir) } + testGOCACHE = cache.DefaultDir() if canRun { testBin = filepath.Join(testTmpDir, "testbin") if err := os.Mkdir(testBin, 0777); err != nil {