]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: don't leave test binary around for coverage
authorRob Pike <r@golang.org>
Fri, 6 Sep 2013 05:54:26 +0000 (15:54 +1000)
committerRob Pike <r@golang.org>
Fri, 6 Sep 2013 05:54:26 +0000 (15:54 +1000)
It's not needed to analyze coverage data.
Fixes #6120

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/13343050

src/cmd/go/doc.go
src/cmd/go/test.go
src/cmd/go/testflag.go

index 2fd5d79e7a33d65e7eba2f0e1aaae654c1897646..7af623ae1bb34a300143dbf2ebcae242f86f06e3 100644 (file)
@@ -269,7 +269,7 @@ List packages
 
 Usage:
 
-       go list [-e] [-f format] [-json] [-tags 'tag list'] [packages]
+       go list [-e] [-race] [-f format] [-json] [-tags 'tag list'] [packages]
 
 List lists the packages named by the import paths, one per line.
 
@@ -345,6 +345,9 @@ a non-nil Error field; other information may or may not be missing
 The -tags flag specifies a list of build tags, like in the 'go build'
 command.
 
+The -race flag causes the package data to include the dependencies
+required by the race detector.
+
 For more about specifying packages, see 'go help packages'.
 
 
@@ -809,8 +812,8 @@ will compile the test binary and then run it as
 
        pkg.test -test.v -test.cpuprofile=prof.out -dir=testdata -update
 
-The test flags that generate profiles also leave the test binary in pkg.test
-for use when analyzing the profiles.
+The test flags that generate profiles (other than for coverage) also
+leave the test binary in pkg.test for use when analyzing the profiles.
 
 Flags not recognized by 'go test' must be placed after any specified packages.
 
index 002758c3b1b3bd2a9389a2660d3aa8427ce37e06..2d5557e65e9fabfc6852c6a8c856a77e42d8d06d 100644 (file)
@@ -213,8 +213,8 @@ will compile the test binary and then run it as
 
        pkg.test -test.v -test.cpuprofile=prof.out -dir=testdata -update
 
-The test flags that generate profiles also leave the test binary in pkg.test
-for use when analyzing the profiles.
+The test flags that generate profiles (other than for coverage) also
+leave the test binary in pkg.test for use when analyzing the profiles.
 
 Flags not recognized by 'go test' must be placed after any specified packages.
 `,
@@ -272,6 +272,7 @@ var (
        testCoverPaths   []string   // -coverpkg flag
        testCoverPkgs    []*Package // -coverpkg flag
        testProfile      bool       // some profiling flag
+       testNeedBinary   bool       // profile needs to keep binary around
        testI            bool       // -i flag
        testV            bool       // -v flag
        testFiles        []string   // -file flag(s)  TODO: not respected
@@ -728,7 +729,7 @@ func (b *builder) test(p *Package) (buildAction, runAction, printAction *action,
        a.target = filepath.Join(testDir, testBinary) + exeSuffix
        pmainAction := a
 
-       if testC || testProfile {
+       if testC || testNeedBinary {
                // -c or profiling flag: create action to copy binary to ./test.out.
                runAction = &action{
                        f:      (*builder).install,
index 1e0724a993b752b15f74b28b365932e208402a37..d931d35b6a70813255ed31213b19cf1a44016f81 100644 (file)
@@ -181,6 +181,7 @@ func testFlags(args []string) (packageNames, passToTest []string) {
                        testTimeout = value
                case "blockprofile", "cpuprofile", "memprofile":
                        testProfile = true
+                       testNeedBinary = true
                case "coverpkg":
                        testCover = true
                        if value == "" {