cmd/covdata: relax mode clash policy for selected operations Relax the policy on counter mode clashes in certain cases for "go tool covdata" operations. Specifically, when generating 'percent', 'pkglist' or 'func' reports, we only care about whether a given statement is executed, thus counter mode clashes are irrelevant; there is no need to report clashes for these ops. Example: $ go build -covermode=count -o myprog.count.exe myprog $ go build -covermode=set -o myprog.set.exe myprog $ GOCOVERDIR=dir1 ./myprog.count.exe ... $ GOCOVERDIR=dir2 ./myprog.set.exe ... $ go tool covdata percent i=dir1,dir2 error: counter mode clash while reading meta-data file dir2/covmeta.1a0cd0c8ccab07d3179f0ac3dd98159a: previous file had count, new file has set $ With this patch the command above will "do the right thing" and work properly, and in addition merges using the "-pcombine" flag will also operate with relaxed rules. Note that textfmt operations still require inputs with consistent coverage modes. Change-Id: I01e97530d9780943c99b399d03d4cfff05aafd8c Reviewed-on: https://go-review.googlesource.com/c/go/+/495440 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com> Run-TryBot: Than McIntosh <thanm@google.com>
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 4.0 Attributions license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Official binary distributions are available at https://go.dev/dl/.
After downloading a binary release, visit https://go.dev/doc/install for installation instructions.
If a binary distribution is not available for your combination of operating system and architecture, visit https://go.dev/doc/install/source for source installation instructions.
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines at https://go.dev/doc/contribute.
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://go.dev/wiki/Questions for a list of places to ask questions about the Go language.