cmd/go: stop tests from using network during -short
It turned out that "go get" was using the network to look up https://github.com?go-get=1 while resolving github.com/google/go-cmp, and that is not the fastest page to load. Stop that lookup by adjusting the path prefixes in the vcs table. It also turned out that "go get" was using the network to look up https://rsc.io?go-get=1 while resolving https://rsc.io/nonexist.svn. That's a bit more defensible maybe, since rsc.io is not a known VCS host. But for tests we really want to avoid the network entirely, so this CL adds a special case in repoRootFromVCSPaths that returns a hard error for plain "rsc.io" instead of doing the web fetch. To keep us honest in the future, I added two automatically-set env variables TESTGONETWORK=panic and TESTGOVCS=panic. These cause the go command to panic rather than make a network request or invoke a VCS command. go test -short cmd/go now passes with these checks. This reduced the time spent in go test -short cmd/go on my Google workstation from 154s to 30s. (Yay network firewalls.) Change-Id: I49207fca7f901fa011765fb984dc9cec8b691f11 Reviewed-on: https://go-review.googlesource.com/c/go/+/274441 Trust: Russ Cox <rsc@golang.org> Trust: Jay Conrod <jayconrod@google.com> Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by:Jay Conrod <jayconrod@google.com>
Loading
Please sign in to comment