]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: set CCACHE_DIR when setting HOME to non-existent dir
authorIan Lance Taylor <iant@golang.org>
Sun, 30 Oct 2016 02:32:59 +0000 (22:32 -0400)
committerIan Lance Taylor <iant@golang.org>
Sun, 30 Oct 2016 03:14:12 +0000 (03:14 +0000)
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 <bradfitz@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/go/go_test.go

index 86c8a80cefa2d2b2cf7ef7d182a7b097661669f7..93639ee5ea4cb048da846568d1b49b288b6bf388 100644 (file)
@@ -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")