]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/go: stop tests from using network during -short
authorRuss Cox <rsc@golang.org>
Wed, 2 Dec 2020 15:14:53 +0000 (10:14 -0500)
committerRuss Cox <rsc@golang.org>
Wed, 2 Dec 2020 17:59:03 +0000 (17:59 +0000)
commitac38af2f3db7b16067bd8983d1f5278c5c9ef706
treeafcb43d9b2256a98159edd56b0a26801fbb53c57
parent3d913a926675d8d6fcdc3cfaefd3136dfeba06e1
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>
src/cmd/go/internal/modfetch/codehost/codehost.go
src/cmd/go/internal/vcs/vcs.go
src/cmd/go/internal/web/http.go
src/cmd/go/script_test.go
src/cmd/go/testdata/script/mod_sumdb_proxy.txt