mirror of https://github.com/golang/go.git
cmd/go: error on space-separated list with comma
Using 'go build -tags "foo,bar"' might seem to work when you wanted -tags "foo bar", since they make up a single tag that doesn't exist and the build is unaffected. Instead, error on any tag that contains a comma. Fixes #18800. Change-Id: I6641e03e2ae121c8878d6301c4311aef97026b73 Reviewed-on: https://go-review.googlesource.com/41951 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
60db9fb6bc
commit
16b6bb88eb
|
|
@ -3885,3 +3885,15 @@ func main() {
|
|||
tg.creatingTemp(exe)
|
||||
tg.run("build", "-o", exe, "p")
|
||||
}
|
||||
|
||||
func TestBuildTagsNoComma(t *testing.T) {
|
||||
tg := testgo(t)
|
||||
defer tg.cleanup()
|
||||
tg.makeTempdir()
|
||||
tg.setenv("GOPATH", tg.path("go"))
|
||||
tg.run("install", "-tags", "tag1 tag2", "math")
|
||||
tg.runFail("install", "-tags", "tag1,tag2", "math")
|
||||
tg.grepBoth("space-separated list contains comma", "-tags with a comma-separated list didn't error")
|
||||
tg.runFail("build", "-tags", "tag1,tag2", "math")
|
||||
tg.grepBoth("space-separated list contains comma", "-tags with a comma-separated list didn't error")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1102,6 +1102,12 @@ func (b *Builder) Do(root *Action) {
|
|||
fmt.Fprintf(os.Stderr, "cmd/go: unsupported GOOS/GOARCH pair %s/%s\n", cfg.Goos, cfg.Goarch)
|
||||
os.Exit(2)
|
||||
}
|
||||
for _, tag := range cfg.BuildContext.BuildTags {
|
||||
if strings.Contains(tag, ",") {
|
||||
fmt.Fprintf(os.Stderr, "cmd/go: -tags space-separated list contains comma\n")
|
||||
os.Exit(2)
|
||||
}
|
||||
}
|
||||
|
||||
// Build list of all actions, assigning depth-first post-order priority.
|
||||
// The original implementation here was a true queue
|
||||
|
|
|
|||
Loading…
Reference in New Issue