]> Cypherpunks repositories - gostls13.git/commit
cmd/cover: invoke go command to find packages
authorRuss Cox <rsc@golang.org>
Fri, 6 Jul 2018 05:29:47 +0000 (01:29 -0400)
committerRuss Cox <rsc@golang.org>
Tue, 10 Jul 2018 03:56:55 +0000 (03:56 +0000)
commitfd263ccefe4f1280b357cb1cb481a6599efd5f6b
tree03a2309c756042e273c4a857c992f811e94c0471
parent5a8b652c6e93311fb6f336e7075aee46ef560213
cmd/cover: invoke go command to find packages

cmd/cover has always assumed that package x/y/z can be
found in $GOPATH/src/x/y/z (roughly; by using go/build).
That won't be true for too much longer. Instead, run the
go command to find out where packages are.

This will make 'go tool cover' safe for use with Go modules
when they are in use in Go 1.11, and it continues to work
with the existing Go toolchains too.

An alternative would be to modify the cover profile format
to record file names directly, but that would require also
updating golang.org/x/tools/cover/profile and any tools
that use it, which seems not worth the trouble.
(That fork of the code does not contain any code to resolve
package names to directory locations, so it's unaffected.)

No new test here: cmd/go's TestCoverageFunc tests this code.

Fixes #25318 (when people use Go 1.11 instead of vgo).

Change-Id: I8769b15107aecf25f7aaf8692b724cf7d0f073d0
Reviewed-on: https://go-review.googlesource.com/122478
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
src/cmd/cover/func.go
src/cmd/cover/html.go
src/cmd/go/internal/load/test.go
src/cmd/go/internal/test/test.go