]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: fix compile -p flag for building test of main package
authorRuss Cox <rsc@golang.org>
Thu, 4 Jan 2018 17:27:32 +0000 (12:27 -0500)
committerRuss Cox <rsc@golang.org>
Thu, 4 Jan 2018 20:11:18 +0000 (20:11 +0000)
Fixes #23180.

Change-Id: I52404ee98dcc60b96972d4242c13db0ec4340d0d
Reviewed-on: https://go-review.googlesource.com/86235
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Alessandro Arzilli <alessandro.arzilli@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/go/go_test.go
src/cmd/go/internal/work/gc.go

index 18e5eae2bc1de72c3677bb8be821cfebf91a1344..ddf097d240fd648287b578e59a04769be2261775 100644 (file)
@@ -1589,6 +1589,19 @@ func TestPackageMainTestImportsArchiveNotBinary(t *testing.T) {
        tg.run("test", "main_test")
 }
 
+func TestPackageMainTestCompilerFlags(t *testing.T) {
+       tg := testgo(t)
+       defer tg.cleanup()
+       tg.parallel()
+       tg.makeTempdir()
+       tg.setenv("GOPATH", tg.path("."))
+       tg.tempFile("src/p1/p1.go", "package main\n")
+       tg.tempFile("src/p1/p1_test.go", "package main\nimport \"testing\"\nfunc Test(t *testing.T){}\n")
+       tg.run("test", "-c", "-n", "p1")
+       tg.grepBothNot(`[\\/]compile.* -p main.*p1\.go`, "should not have run compile -p main p1.go")
+       tg.grepStderr(`[\\/]compile.* -p p1.*p1\.go`, "should have run compile -p p1 p1.go")
+}
+
 // The runtime version string takes one of two forms:
 // "go1.X[.Y]" for Go releases, and "devel +hash" at tip.
 // Determine whether we are in a released copy by
index 49258b30fd08954b6d08354f9d171078ab1fc922..d3bded6989e605ca6c67599758bd581a6bf77b02 100644 (file)
@@ -49,7 +49,7 @@ func (gcToolchain) gc(b *Builder, a *Action, archive string, importcfg []byte, a
        pkgpath := p.ImportPath
        if cfg.BuildBuildmode == "plugin" {
                pkgpath = pluginPath(a)
-       } else if p.Name == "main" {
+       } else if p.Name == "main" && !p.Internal.ForceLibrary {
                pkgpath = "main"
        }
        gcargs := []string{"-p", pkgpath}