The usage message says: test [-c] [-i] [build and test flags] [packages] [flags for test binary] but this was not what was implemented. Instead, after packages are named, flag processing continues, which makes it impossible, for example, to pass to the binary a flag with the same name as a test flag. This was triggered by the -v flag in glog. Consider this test: package pkg ... imports ... var v = flag.Int("v", 0, "v flag") func TestFoo(t *testing.T) { if *v != 7 { log.Fatal(*v) } } Attempting to run this test with go test pkg -v=7 would give a usage message. This change allows it. In fact it allows go test -v pkg -v=7 The solution is to implement the usage message. One compatibility issue is that flags after the package name are no longer processed as test flags, so this no longer works: go test foo -cover One must write go test -cover foo I do not think this is onerous but it must be called out in the release notes. Fixes #12177. Change-Id: Ib9267884b47a6b0c183efa888ec78333272113aa Reviewed-on: https://go-review.googlesource.com/14826 Reviewed-by: Ian Lance Taylor <iant@golang.org>
The Go Programming Language
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
For documentation about how to install and use Go, visit https://golang.org/ or load doc/install-source.html in your web browser.
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.
Please report issues here: https://golang.org/issue/new
Go is the work of hundreds of contributors. We appreciate your help!
To contribute, please read the contribution guidelines: https://golang.org/doc/contribute.html
Please note that we do not use pull requests.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
--
Binary Distribution Notes
If you have just untarred a binary Go distribution, you need to set the environment variable $GOROOT to the full path of the go directory (the one containing this file). You can omit the variable if you unpack it into /usr/local/go, or if you rebuild from sources by running all.bash (see doc/install-source.html). You should also add the Go binary directory $GOROOT/bin to your shell's path.
For example, if you extracted the tar file into $HOME/go, you might put the following in your .profile:
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
See https://golang.org/doc/install or doc/install.html for more details.