mirror of
https://github.com/golang/go
synced 2024-11-11 23:20:24 -07:00
cmd/go: make -coverpkg=all skip test-only packages
Otherwise, the added test would fail in an unnecessary way: go build example.com/cov/onlytest: no non-test Go files ... The test script is mimicking other cover_pkgall_*.txt scripts, so it similarly tests both GOPATH and module modes. Fixes #27333. Change-Id: Ie60be569b31d49b173a78556c0669a87ada6799e Reviewed-on: https://go-review.googlesource.com/c/go/+/288292 Trust: Daniel Martí <mvdan@mvdan.cc> Trust: Jay Conrod <jayconrod@google.com> Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
This commit is contained in:
parent
05250429ae
commit
c59b17e5a2
@ -290,10 +290,12 @@ func TestPackagesAndErrors(ctx context.Context, p *Package, cover *TestCover) (p
|
||||
seen[p1] = true
|
||||
}
|
||||
for _, p1 := range cover.Pkgs {
|
||||
if !seen[p1] {
|
||||
seen[p1] = true
|
||||
pmain.Internal.Imports = append(pmain.Internal.Imports, p1)
|
||||
if seen[p1] {
|
||||
// Don't add duplicate imports.
|
||||
continue
|
||||
}
|
||||
seen[p1] = true
|
||||
pmain.Internal.Imports = append(pmain.Internal.Imports, p1)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -716,6 +716,12 @@ func runTest(ctx context.Context, cmd *base.Command, args []string) {
|
||||
}
|
||||
}
|
||||
|
||||
// A package which only has test files can't be imported
|
||||
// as a dependency, nor can it be instrumented for coverage.
|
||||
if len(p.GoFiles)+len(p.CgoFiles) == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
// Silently ignore attempts to run coverage on
|
||||
// sync/atomic when using atomic coverage mode.
|
||||
// Atomic coverage mode uses sync/atomic, so
|
||||
|
48
src/cmd/go/testdata/script/cover_pkgall_imports.txt
vendored
Normal file
48
src/cmd/go/testdata/script/cover_pkgall_imports.txt
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
# This test checks that -coverpkg=all can be used
|
||||
# when the package pattern includes packages
|
||||
# which only have tests.
|
||||
# Verifies golang.org/issue/27333, golang.org/issue/43242.
|
||||
|
||||
[short] skip
|
||||
cd $GOPATH/src/example.com/cov
|
||||
|
||||
env GO111MODULE=on
|
||||
go test -coverpkg=all ./...
|
||||
|
||||
env GO111MODULE=off
|
||||
go test -coverpkg=all ./...
|
||||
|
||||
-- $GOPATH/src/example.com/cov/go.mod --
|
||||
module example.com/cov
|
||||
|
||||
-- $GOPATH/src/example.com/cov/notest/notest.go --
|
||||
package notest
|
||||
|
||||
func Foo() {}
|
||||
|
||||
-- $GOPATH/src/example.com/cov/onlytest/onlytest_test.go --
|
||||
package onlytest_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"example.com/cov/notest"
|
||||
)
|
||||
|
||||
func TestFoo(t *testing.T) {
|
||||
notest.Foo()
|
||||
}
|
||||
|
||||
-- $GOPATH/src/example.com/cov/withtest/withtest.go --
|
||||
package withtest
|
||||
|
||||
func Bar() {}
|
||||
|
||||
-- $GOPATH/src/example.com/cov/withtest/withtest_test.go --
|
||||
package withtest
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestBar(t *testing.T) {
|
||||
Bar()
|
||||
}
|
Loading…
Reference in New Issue
Block a user