From: Ian Lance Taylor Date: Sun, 30 Oct 2016 02:32:59 +0000 (-0400) Subject: cmd/go: set CCACHE_DIR when setting HOME to non-existent dir X-Git-Tag: go1.8beta1~456 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=753caecc7e576e46a329b71c49dbf0ea9bfbd867;p=gostls13.git cmd/go: set CCACHE_DIR when setting HOME to non-existent dir This fixes systems for which ccache is the default compiler. Also remove a couple of temporary files created by TestImportMain. Fixes #17668. Change-Id: I1edefdcec5f417be0533c146253c35ff4928c1c0 Reviewed-on: https://go-review.googlesource.com/32328 Reviewed-by: Brad Fitzpatrick Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go index 86c8a80cef..93639ee5ea 100644 --- a/src/cmd/go/go_test.go +++ b/src/cmd/go/go_test.go @@ -99,6 +99,12 @@ func TestMain(m *testing.M) { // Don't let these environment variables confuse the test. os.Unsetenv("GOBIN") os.Unsetenv("GOPATH") + if home, ccacheDir := os.Getenv("HOME"), os.Getenv("CCACHE_DIR"); home != "" && ccacheDir == "" { + // On some systems the default C compiler is ccache. + // Setting HOME to a non-existent directory will break + // those systems. Set CCACHE_DIR to cope. Issue 17668. + os.Setenv("CCACHE_DIR", filepath.Join(home, ".ccache")) + } os.Setenv("HOME", "/test-go-home-does-not-exist") r := m.Run() @@ -2536,6 +2542,7 @@ func TestImportMain(t *testing.T) { var _ = xmain.X func TestFoo(t *testing.T) {} `) + tg.creatingTemp("p4" + exeSuffix) tg.run("build", "p4") tg.runFail("test", "p4") tg.grepStderr("import \"x\" is a program, not an importable package", "did not diagnose package main") @@ -2550,6 +2557,7 @@ func TestImportMain(t *testing.T) { var _ = xmain.X func TestFoo(t *testing.T) {} `) + tg.creatingTemp("p5" + exeSuffix) tg.run("build", "p5") tg.runFail("test", "p5") tg.grepStderr("import \"x\" is a program, not an importable package", "did not diagnose package main")