mirror of https://github.com/golang/go.git
cmd/go: include coverage build flags for "go list"
This patch ensures that the go command's "list" subcommand accepts coverage-related build options, which were incorrectly left out when "go build -cover" was rolled out. This is needed in order to do things like check the staleness of an installed cover-instrumented target. Fixes #57785. Change-Id: I140732ff1e6b83cd9c453701bb8199b333fc0f2e Reviewed-on: https://go-review.googlesource.com/c/go/+/462116 Reviewed-by: Bryan Mills <bcmills@google.com> Reviewed-by: Russ Cox <rsc@golang.org> Run-TryBot: Than McIntosh <thanm@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
02ed0e5e67
commit
6cb8c43b84
|
|
@ -336,6 +336,9 @@ For more about modules, see https://golang.org/ref/mod.
|
||||||
func init() {
|
func init() {
|
||||||
CmdList.Run = runList // break init cycle
|
CmdList.Run = runList // break init cycle
|
||||||
work.AddBuildFlags(CmdList, work.DefaultBuildFlags)
|
work.AddBuildFlags(CmdList, work.DefaultBuildFlags)
|
||||||
|
if cfg.Experiment != nil && cfg.Experiment.CoverageRedesign {
|
||||||
|
work.AddCoverFlags(CmdList, nil)
|
||||||
|
}
|
||||||
CmdList.Flag.Var(&listJsonFields, "json", "")
|
CmdList.Flag.Var(&listJsonFields, "json", "")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
|
||||||
|
# This test is intended to verify that "go list" accepts coverage related
|
||||||
|
# build arguments (such as -cover, -covermode). See issue #57785.
|
||||||
|
|
||||||
|
[short] skip
|
||||||
|
[!GOEXPERIMENT:coverageredesign] skip
|
||||||
|
|
||||||
|
env GOBIN=$WORK/bin
|
||||||
|
|
||||||
|
# Install a target and then do an ordinary staleness check on it.
|
||||||
|
go install m/example
|
||||||
|
! stale m/example
|
||||||
|
|
||||||
|
# Run a second staleness check with "-cover" as a build flag. The
|
||||||
|
# installed target should indeed be stale, since we didn't build it
|
||||||
|
# with -cover.
|
||||||
|
stale -cover m/example
|
||||||
|
|
||||||
|
-- go.mod --
|
||||||
|
module m
|
||||||
|
|
||||||
|
go 1.20
|
||||||
|
-- example/main.go --
|
||||||
|
package main
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
println("hi mom")
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue