diff options
author | Than McIntosh <thanm@google.com> | 2023-01-13 16:46:49 -0500 |
---|---|---|
committer | Than McIntosh <thanm@google.com> | 2023-01-17 16:41:24 +0000 |
commit | 6cb8c43b842daffe628e8ee7a94ea3b1ba17299d (patch) | |
tree | 444591884ce2c94002216e5a2415c6ba6b55e496 | |
parent | 02ed0e5e67530e6b041989d55048ce373dc60327 (diff) | |
download | go-6cb8c43b842daffe628e8ee7a94ea3b1ba17299d.tar.gz go-6cb8c43b842daffe628e8ee7a94ea3b1ba17299d.zip |
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>
-rw-r--r-- | src/cmd/go/internal/list/list.go | 3 | ||||
-rw-r--r-- | src/cmd/go/testdata/script/cover_list.txt | 28 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/cmd/go/internal/list/list.go b/src/cmd/go/internal/list/list.go index 72201850b2..811d659ba3 100644 --- a/src/cmd/go/internal/list/list.go +++ b/src/cmd/go/internal/list/list.go @@ -336,6 +336,9 @@ For more about modules, see https://golang.org/ref/mod. func init() { CmdList.Run = runList // break init cycle work.AddBuildFlags(CmdList, work.DefaultBuildFlags) + if cfg.Experiment != nil && cfg.Experiment.CoverageRedesign { + work.AddCoverFlags(CmdList, nil) + } CmdList.Flag.Var(&listJsonFields, "json", "") } diff --git a/src/cmd/go/testdata/script/cover_list.txt b/src/cmd/go/testdata/script/cover_list.txt new file mode 100644 index 0000000000..c66c087793 --- /dev/null +++ b/src/cmd/go/testdata/script/cover_list.txt @@ -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") +} |