cmd/go: declare net hosts in script tests
Although we aren't precise about enforcing the hosts just yet,
we can eventually use the declared hostnames to selectively skip
tests (for example, if an external service has an outage while
a Go release is being tested).
Also relax the constraint to [short] in tests that require only
vcs-test.golang.org, which has redirected to an in-process server
since around CL 427914.
Also enforce that tests that use the network actually use the [net]
constraint, by setting TESTGONETWORK=panic in the test environment
until the condition is evaluated.
For #52545.
For #54503.
Updates #27494.
Change-Id: I13be6b42a9beee97657eb45424882e787ac164c3
Reviewed-on: https://go-review.googlesource.com/c/go/+/473276
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Bypass: Bryan Mills <bcmills@google.com>
Reviewed-by: Russ Cox <rsc@golang.org>
Auto-Submit: Bryan Mills <bcmills@google.com>
diff --git a/src/cmd/go/internal/web/http.go b/src/cmd/go/internal/web/http.go
index cd3e39a..e7935ea 100644
--- a/src/cmd/go/internal/web/http.go
+++ b/src/cmd/go/internal/web/http.go
@@ -114,7 +114,7 @@
return nil, false
}
for i, t := range testInterceptors {
- if u.Host == t.FromHost && (t.Scheme == "" || u.Scheme == t.Scheme) {
+ if u.Host == t.FromHost && (u.Scheme == "" || u.Scheme == t.Scheme) {
return &testInterceptors[i], true
}
}
diff --git a/src/cmd/go/script_test.go b/src/cmd/go/script_test.go
index 4211fb6..072a2df 100644
--- a/src/cmd/go/script_test.go
+++ b/src/cmd/go/script_test.go
@@ -210,6 +210,7 @@
"GOROOT=" + testGOROOT,
"GOROOT_FINAL=" + testGOROOT_FINAL, // causes spurious rebuilds and breaks the "stale" built-in if not propagated
"GOTRACEBACK=system",
+ "TESTGONETWORK=panic", // allow only local connections by default; the [net] condition resets this
"TESTGO_GOROOT=" + testGOROOT,
"TESTGO_EXE=" + testGo,
"TESTGO_VCSTEST_HOST=" + httpURL.Host,
@@ -232,8 +233,11 @@
"GIT_TRACE_CURL_NO_DATA=1",
"GIT_REDACT_COOKIES=o,SSO,GSSO_Uberproxy")
}
- if !testenv.HasExternalNetwork() {
- env = append(env, "TESTGONETWORK=panic", "TESTGOVCS=panic")
+ if testing.Short() {
+ // VCS commands are always somewhat slow: they either require access to external hosts,
+ // or they require our intercepted vcs-test.golang.org to regenerate the repository.
+ // Require all tests that use VCS commands to be skipped in short mode.
+ env = append(env, "TESTGOVCS=panic")
}
if os.Getenv("CGO_ENABLED") != "" || runtime.GOOS != goHostOS || runtime.GOARCH != goHostArch {
// If the actual CGO_ENABLED might not match the cmd/go default, set it
diff --git a/src/cmd/go/scriptconds_test.go b/src/cmd/go/scriptconds_test.go
index c57d55a..a9b5f9a 100644
--- a/src/cmd/go/scriptconds_test.go
+++ b/src/cmd/go/scriptconds_test.go
@@ -40,6 +40,7 @@
add("buildmode", script.PrefixCondition("go supports -buildmode=<suffix>", hasBuildmode))
add("case-sensitive", script.OnceCondition("$WORK filesystem is case-sensitive", isCaseSensitive))
add("cgo", script.BoolCondition("host CGO_ENABLED", testenv.HasCGO()))
+ add("cgolinkext", script.BoolCondition("platform requires external linking for cgo", platform.MustLinkExternal(cfg.Goos, cfg.Goarch, true)))
add("cross", script.BoolCondition("cmd/go GOOS/GOARCH != GOHOSTOS/GOHOSTARCH", goHostOS != runtime.GOOS || goHostArch != runtime.GOARCH))
add("fuzz", sysCondition("-fuzz", platform.FuzzSupported, false))
add("fuzz-instrumented", sysCondition("-fuzz with instrumentation", platform.FuzzInstrumented, false))
@@ -49,8 +50,7 @@
add("link", lazyBool("testenv.HasLink()", testenv.HasLink))
add("mismatched-goroot", script.Condition("test's GOROOT_FINAL does not match the real GOROOT", isMismatchedGoroot))
add("msan", sysCondition("-msan", platform.MSanSupported, true))
- add("cgolinkext", script.BoolCondition("platform requires external linking for cgo", platform.MustLinkExternal(cfg.Goos, cfg.Goarch, true)))
- add("net", lazyBool("testenv.HasExternalNetwork()", testenv.HasExternalNetwork))
+ add("net", script.PrefixCondition("can connect to external network host <suffix>", hasNet))
add("race", sysCondition("-race", platform.RaceDetectorSupported, true))
add("symlink", lazyBool("testenv.HasSymlink()", testenv.HasSymlink))
add("trimpath", script.OnceCondition("test binary was built with -trimpath", isTrimpath))
@@ -95,6 +95,20 @@
return platform.BuildModeSupported(runtime.Compiler, mode, GOOS, GOARCH), nil
}
+func hasNet(s *script.State, host string) (bool, error) {
+ if !testenv.HasExternalNetwork() {
+ return false, nil
+ }
+
+ // TODO(bcmills): Add a flag or environment variable to allow skipping tests
+ // for specific hosts and/or skipping all net tests except for specific hosts.
+
+ // Since we have confirmed that the network is available,
+ // allow cmd/go to use it.
+ s.Setenv("TESTGONETWORK", "")
+ return true, nil
+}
+
func hasGodebug(s *script.State, value string) (bool, error) {
godebug, _ := s.LookupEnv("GODEBUG")
for _, p := range strings.Split(godebug, ",") {
diff --git a/src/cmd/go/testdata/script/README b/src/cmd/go/testdata/script/README
index 349ba97..c653764 100644
--- a/src/cmd/go/testdata/script/README
+++ b/src/cmd/go/testdata/script/README
@@ -402,8 +402,8 @@
test's GOROOT_FINAL does not match the real GOROOT
[msan]
GOOS/GOARCH supports -msan
-[net]
- testenv.HasExternalNetwork()
+[net:*]
+ can connect to external network host <suffix>
[race]
GOOS/GOARCH supports -race
[root]
diff --git a/src/cmd/go/testdata/script/get_404_meta.txt b/src/cmd/go/testdata/script/get_404_meta.txt
index 553afb9..4ffbdeb 100644
--- a/src/cmd/go/testdata/script/get_404_meta.txt
+++ b/src/cmd/go/testdata/script/get_404_meta.txt
@@ -1,6 +1,6 @@
# golang.org/issue/13037: 'go get' was not parsing <meta> tags in 404 served over HTTPS.
-[!net] skip
+[!net:bazil.org] skip
[!git] skip
env GONOSUMDB=bazil.org,github.com,golang.org
diff --git a/src/cmd/go/testdata/script/get_custom_domain_wildcard.txt b/src/cmd/go/testdata/script/get_custom_domain_wildcard.txt
index 32ddd92..45ab524 100644
--- a/src/cmd/go/testdata/script/get_custom_domain_wildcard.txt
+++ b/src/cmd/go/testdata/script/get_custom_domain_wildcard.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:rsc.io] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_dash_t.txt b/src/cmd/go/testdata/script/get_dash_t.txt
index 66d217a..8f3a036 100644
--- a/src/cmd/go/testdata/script/get_dash_t.txt
+++ b/src/cmd/go/testdata/script/get_dash_t.txt
@@ -1,6 +1,6 @@
# Tests issue 8181
-[!net] skip
+[!net:github.com] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_domain_root.txt b/src/cmd/go/testdata/script/get_domain_root.txt
index 250fa64..dfcea86 100644
--- a/src/cmd/go/testdata/script/get_domain_root.txt
+++ b/src/cmd/go/testdata/script/get_domain_root.txt
@@ -1,7 +1,7 @@
# Tests issue #9357
# go get foo.io (not foo.io/subdir) was not working consistently.
-[!net] skip
+[!net:go-get-issue-9357.appspot.com] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_dot_slash_download.txt b/src/cmd/go/testdata/script/get_dot_slash_download.txt
index 2af9564..6dbd118 100644
--- a/src/cmd/go/testdata/script/get_dot_slash_download.txt
+++ b/src/cmd/go/testdata/script/get_dot_slash_download.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:rsc.io] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_goroot.txt b/src/cmd/go/testdata/script/get_goroot.txt
index dc1e5ad..7510692 100644
--- a/src/cmd/go/testdata/script/get_goroot.txt
+++ b/src/cmd/go/testdata/script/get_goroot.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:github.com] skip
env GO111MODULE=off
# Issue 4186. go get cannot be used to download packages to $GOROOT.
diff --git a/src/cmd/go/testdata/script/get_insecure.txt b/src/cmd/go/testdata/script/get_insecure.txt
index 0079220..afe64b8 100644
--- a/src/cmd/go/testdata/script/get_insecure.txt
+++ b/src/cmd/go/testdata/script/get_insecure.txt
@@ -1,6 +1,6 @@
# TODO(matloob): Split this test into two? It's one of the slowest tests we have.
-[!net] skip
+[!net:insecure.go-get-issue-15410.appspot.com] skip
[!git] skip
env PATH=$WORK/tmp/bin${:}$PATH
diff --git a/src/cmd/go/testdata/script/get_insecure_custom_domain.txt b/src/cmd/go/testdata/script/get_insecure_custom_domain.txt
index 3a0765f..4b3c9d6 100644
--- a/src/cmd/go/testdata/script/get_insecure_custom_domain.txt
+++ b/src/cmd/go/testdata/script/get_insecure_custom_domain.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:insecure.go-get-issue-15410.appspot.com] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_insecure_env.txt b/src/cmd/go/testdata/script/get_insecure_env.txt
index 8748440..98e7053 100644
--- a/src/cmd/go/testdata/script/get_insecure_env.txt
+++ b/src/cmd/go/testdata/script/get_insecure_env.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:insecure.go-get-issue-15410.appspot.com] skip
[!git] skip
# GOPATH: Set up
diff --git a/src/cmd/go/testdata/script/get_insecure_redirect.txt b/src/cmd/go/testdata/script/get_insecure_redirect.txt
index 2e5ec4e..2a37902 100644
--- a/src/cmd/go/testdata/script/get_insecure_redirect.txt
+++ b/src/cmd/go/testdata/script/get_insecure_redirect.txt
@@ -1,7 +1,6 @@
# golang.org/issue/29591: 'go get' was following plain-HTTP redirects even without -insecure (now replaced by GOINSECURE).
# golang.org/issue/34049: 'go get' would panic in case of an insecure redirect in GOPATH mode
-[!net] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_insecure_update.txt b/src/cmd/go/testdata/script/get_insecure_update.txt
index 01660d5..7cddd6b 100644
--- a/src/cmd/go/testdata/script/get_insecure_update.txt
+++ b/src/cmd/go/testdata/script/get_insecure_update.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:github.com] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_internal_wildcard.txt b/src/cmd/go/testdata/script/get_internal_wildcard.txt
index 71ecb8c..b25e746 100644
--- a/src/cmd/go/testdata/script/get_internal_wildcard.txt
+++ b/src/cmd/go/testdata/script/get_internal_wildcard.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:github.com] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_issue11307.txt b/src/cmd/go/testdata/script/get_issue11307.txt
index dc46e74..d490959 100644
--- a/src/cmd/go/testdata/script/get_issue11307.txt
+++ b/src/cmd/go/testdata/script/get_issue11307.txt
@@ -1,6 +1,6 @@
# go get -u was not working except in checkout directory
-[!net] skip
+[!net:github.com] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_issue16471.txt b/src/cmd/go/testdata/script/get_issue16471.txt
index 6036913..1aeae58 100644
--- a/src/cmd/go/testdata/script/get_issue16471.txt
+++ b/src/cmd/go/testdata/script/get_issue16471.txt
@@ -1,4 +1,5 @@
-[!net] skip
+[!net:rsc.io] skip
+[!net:github.com] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_issue22125.txt b/src/cmd/go/testdata/script/get_issue22125.txt
index 3418df8..086081f 100644
--- a/src/cmd/go/testdata/script/get_issue22125.txt
+++ b/src/cmd/go/testdata/script/get_issue22125.txt
@@ -1,6 +1,6 @@
# This test verifies a fix for a security issue; see https://go.dev/issue/22125.
-[!net] skip
+[short] skip
[!git] skip
[!exec:svn] skip
diff --git a/src/cmd/go/testdata/script/get_non_pkg.txt b/src/cmd/go/testdata/script/get_non_pkg.txt
index 5eac1e3..5202e88 100644
--- a/src/cmd/go/testdata/script/get_non_pkg.txt
+++ b/src/cmd/go/testdata/script/get_non_pkg.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:golang.org] skip
[!git] skip
env GOBIN=$WORK/tmp/gobin
@@ -11,4 +11,4 @@
stderr 'golang.org/x/tools: no Go files'
! go get -d golang.org/x/tools
-stderr 'golang.org/x/tools: no Go files'
\ No newline at end of file
+stderr 'golang.org/x/tools: no Go files'
diff --git a/src/cmd/go/testdata/script/get_race.txt b/src/cmd/go/testdata/script/get_race.txt
index 87fbf62..1e06c80 100644
--- a/src/cmd/go/testdata/script/get_race.txt
+++ b/src/cmd/go/testdata/script/get_race.txt
@@ -1,6 +1,6 @@
# Tests issue #20502
-[!net] skip
+[!net:github.com] skip
[!git] skip
[!race] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_test_only.txt b/src/cmd/go/testdata/script/get_test_only.txt
index ec8baf9..af90f74 100644
--- a/src/cmd/go/testdata/script/get_test_only.txt
+++ b/src/cmd/go/testdata/script/get_test_only.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:golang.org] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_tilde.txt b/src/cmd/go/testdata/script/get_tilde.txt
index e520957..1c3a029 100644
--- a/src/cmd/go/testdata/script/get_tilde.txt
+++ b/src/cmd/go/testdata/script/get_tilde.txt
@@ -1,24 +1,25 @@
env GO111MODULE=off
-[short] skip
# Paths containing windows short names should be rejected before attempting to fetch.
-! go get example.com/longna~1.dir/thing
+! go get vcs-test.golang.org/longna~1.dir/thing
stderr 'trailing tilde and digits'
-! go get example.com/longna~1/thing
+! go get vcs-test.golang.org/longna~1/thing
stderr 'trailing tilde and digits'
-! go get example.com/~9999999/thing
+! go get vcs-test.golang.org/~9999999/thing
stderr 'trailing tilde and digits'
+[short] stop
+
# A path containing an element that is just a tilde, or a tilde followed by non-digits,
# should attempt to resolve.
-! go get example.com/~glenda/notfound
+! go get vcs-test.golang.org/~glenda/notfound
! stderr 'trailing tilde and digits'
stderr 'unrecognized import path'
-! go get example.com/~glenda2/notfound
+! go get vcs-test.golang.org/~glenda2/notfound
! stderr 'trailing tilde and digits'
stderr 'unrecognized import path'
-! go get example.com/~/notfound
+! go get vcs-test.golang.org/~/notfound
! stderr 'trailing tilde and digits'
stderr 'unrecognized import path'
diff --git a/src/cmd/go/testdata/script/get_update.txt b/src/cmd/go/testdata/script/get_update.txt
index 5aeb990..a70a80d 100644
--- a/src/cmd/go/testdata/script/get_update.txt
+++ b/src/cmd/go/testdata/script/get_update.txt
@@ -2,7 +2,7 @@
# The recursive updating was trying to walk to
# former dependencies, not current ones.
-[!net] skip
+[!net:github.com] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_update_all.txt b/src/cmd/go/testdata/script/get_update_all.txt
index 2b75849..22fe3ed 100644
--- a/src/cmd/go/testdata/script/get_update_all.txt
+++ b/src/cmd/go/testdata/script/get_update_all.txt
@@ -1,8 +1,6 @@
# Issue 14444: go get -u .../ duplicate loads errors
# Check that go get update -u ... does not try to load duplicates
-[!net] skip
-
env GO111MODULE=off
go get -u -n .../
diff --git a/src/cmd/go/testdata/script/get_update_unknown_protocol.txt b/src/cmd/go/testdata/script/get_update_unknown_protocol.txt
index 12807ad..714ed6a 100644
--- a/src/cmd/go/testdata/script/get_update_unknown_protocol.txt
+++ b/src/cmd/go/testdata/script/get_update_unknown_protocol.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:github.com] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_update_wildcard.txt b/src/cmd/go/testdata/script/get_update_wildcard.txt
index 01e2c37..c833783 100644
--- a/src/cmd/go/testdata/script/get_update_wildcard.txt
+++ b/src/cmd/go/testdata/script/get_update_wildcard.txt
@@ -1,6 +1,6 @@
# Issue 14450: go get -u .../ tried to import not downloaded package
-[!net] skip
+[!net:github.com] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/get_vendor.txt b/src/cmd/go/testdata/script/get_vendor.txt
index f9a4a6b..179456d 100644
--- a/src/cmd/go/testdata/script/get_vendor.txt
+++ b/src/cmd/go/testdata/script/get_vendor.txt
@@ -11,7 +11,7 @@
go get -d
go get -t -d
-[!net] stop
+[!net:github.com] stop
[!git] stop
cd $GOPATH/src
diff --git a/src/cmd/go/testdata/script/get_with_git_trace.txt b/src/cmd/go/testdata/script/get_with_git_trace.txt
index abc7014..6f1305a8 100644
--- a/src/cmd/go/testdata/script/get_with_git_trace.txt
+++ b/src/cmd/go/testdata/script/get_with_git_trace.txt
@@ -2,7 +2,7 @@
env GIT_TRACE=1
-[!net] skip
+[!net:golang.org] skip
[!git] skip
# go get should be success when GIT_TRACE set
diff --git a/src/cmd/go/testdata/script/gopath_moved_repo.txt b/src/cmd/go/testdata/script/gopath_moved_repo.txt
index 5815d73..8108d9b 100644
--- a/src/cmd/go/testdata/script/gopath_moved_repo.txt
+++ b/src/cmd/go/testdata/script/gopath_moved_repo.txt
@@ -3,7 +3,7 @@
# Test that 'go get -u' reports packages whose VCS configurations do not
# match their import paths.
-[!net] skip
+[!net:rsc.io] skip
[short] skip
# We need to execute a custom Go program to break the config files.
diff --git a/src/cmd/go/testdata/script/gopath_vendor_dup_err.txt b/src/cmd/go/testdata/script/gopath_vendor_dup_err.txt
index 22e6048..5f1e09a 100644
--- a/src/cmd/go/testdata/script/gopath_vendor_dup_err.txt
+++ b/src/cmd/go/testdata/script/gopath_vendor_dup_err.txt
@@ -1,4 +1,3 @@
-[!net] skip
env GO111MODULE=off
# Issue 17119: Test more duplicate load errors.
diff --git a/src/cmd/go/testdata/script/govcs.txt b/src/cmd/go/testdata/script/govcs.txt
index 419a6c5..dd128cc 100644
--- a/src/cmd/go/testdata/script/govcs.txt
+++ b/src/cmd/go/testdata/script/govcs.txt
@@ -67,12 +67,12 @@
# git is OK by default
env GOVCS=
env GONOSUMDB='*'
-[net] [git] [!short] go get rsc.io/sampler
+[net:rsc.io] [git] [!short] go get rsc.io/sampler
# hg is OK by default
env GOVCS=
env GONOSUMDB='*'
-[net] [exec:hg] [!short] go get vcs-test.golang.org/go/custom-hg-hello
+[exec:hg] [!short] go get vcs-test.golang.org/go/custom-hg-hello
# git can be disallowed
env GOVCS=public:hg
@@ -150,12 +150,12 @@
# git is OK by default
env GOVCS=
env GONOSUMDB='*'
-[net] [git] [!short] go get rsc.io/sampler
+[net:rsc.io] [git] [!short] go get rsc.io/sampler
# hg is OK by default
env GOVCS=
env GONOSUMDB='*'
-[net] [exec:hg] [!short] go get vcs-test.golang.org/go/custom-hg-hello
+[exec:hg] [!short] go get vcs-test.golang.org/go/custom-hg-hello
# git can be disallowed
env GOVCS=public:hg
diff --git a/src/cmd/go/testdata/script/install_shadow_gopath.txt b/src/cmd/go/testdata/script/install_shadow_gopath.txt
index 2039d9e..148e6cc 100644
--- a/src/cmd/go/testdata/script/install_shadow_gopath.txt
+++ b/src/cmd/go/testdata/script/install_shadow_gopath.txt
@@ -1,8 +1,6 @@
# Tests Issue #3562
# go get foo.io (not foo.io/subdir) was not working consistently.
-[!net] skip
-
env GO111MODULE=off
env GOPATH=$WORK/gopath1${:}$WORK/gopath2
diff --git a/src/cmd/go/testdata/script/list_std_vendor.txt b/src/cmd/go/testdata/script/list_std_vendor.txt
index 923e957..834babe 100644
--- a/src/cmd/go/testdata/script/list_std_vendor.txt
+++ b/src/cmd/go/testdata/script/list_std_vendor.txt
@@ -25,7 +25,7 @@
# However, 'go mod' and 'go get' subcommands should report the original module
# dependencies, not the vendored packages.
-[!net] stop
+[!net:golang.org] stop
env GOPROXY=
env GOWORK=off
diff --git a/src/cmd/go/testdata/script/mod_auth.txt b/src/cmd/go/testdata/script/mod_auth.txt
index d8ea5867..5e2b7a9 100644
--- a/src/cmd/go/testdata/script/mod_auth.txt
+++ b/src/cmd/go/testdata/script/mod_auth.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[short] skip
env GO111MODULE=on
env GOPROXY=direct
diff --git a/src/cmd/go/testdata/script/mod_convert.txt b/src/cmd/go/testdata/script/mod_convert.txt
index 1c9d626..922d924 100644
--- a/src/cmd/go/testdata/script/mod_convert.txt
+++ b/src/cmd/go/testdata/script/mod_convert.txt
@@ -1,5 +1,6 @@
-[short] skip
-[!net] skip
+[!net:github.com] skip
+[!net:golang.org] skip
+[!net:gopkg.in] skip
[!git] skip
env GO111MODULE=on
@@ -13,6 +14,9 @@
go mod init github.com/docker/distribution
cmpenv go.mod go.mod.want
+[!net:google.golang.org] skip
+[!net:cloud.google.com] skip
+
go mod download github.com/fishy/gcsbucket@v0.0.0-20180217031846-618d60fe84e0
cp $GOPATH/pkg/mod/github.com/fishy/gcsbucket@v0.0.0-20180217031846-618d60fe84e0/Gopkg.lock ../y
cd ../y
diff --git a/src/cmd/go/testdata/script/mod_convert_tsv_insecure.txt b/src/cmd/go/testdata/script/mod_convert_tsv_insecure.txt
index 9910ce7..6ff6993 100644
--- a/src/cmd/go/testdata/script/mod_convert_tsv_insecure.txt
+++ b/src/cmd/go/testdata/script/mod_convert_tsv_insecure.txt
@@ -2,7 +2,7 @@
env GOPROXY=direct
env GOSUMDB=off
-[!net] skip
+[short] skip
[!git] skip
# secure fetch should report insecure warning
diff --git a/src/cmd/go/testdata/script/mod_download_git_decorate_full.txt b/src/cmd/go/testdata/script/mod_download_git_decorate_full.txt
index 997b502..080ccf0 100644
--- a/src/cmd/go/testdata/script/mod_download_git_decorate_full.txt
+++ b/src/cmd/go/testdata/script/mod_download_git_decorate_full.txt
@@ -1,6 +1,6 @@
env GO111MODULE=on
-[!net] skip
+[short] skip
[!git] skip
env GOPROXY=direct
@@ -25,4 +25,4 @@
-- $WORK/home/gopher/.gitconfig --
[log]
- decorate = full
\ No newline at end of file
+ decorate = full
diff --git a/src/cmd/go/testdata/script/mod_download_hash.txt b/src/cmd/go/testdata/script/mod_download_hash.txt
index e62a165..5677e69a 100644
--- a/src/cmd/go/testdata/script/mod_download_hash.txt
+++ b/src/cmd/go/testdata/script/mod_download_hash.txt
@@ -1,7 +1,7 @@
env GO111MODULE=on
# Testing mod download with non semantic versions; turn off proxy.
-[!net] skip
+[!net:rsc.io] skip
[!git] skip
env GOPROXY=direct
env GOSUMDB=off
diff --git a/src/cmd/go/testdata/script/mod_download_insecure_redirect.txt b/src/cmd/go/testdata/script/mod_download_insecure_redirect.txt
index fed5b8d..20a6ac2 100644
--- a/src/cmd/go/testdata/script/mod_download_insecure_redirect.txt
+++ b/src/cmd/go/testdata/script/mod_download_insecure_redirect.txt
@@ -1,6 +1,6 @@
# golang.org/issue/29591: 'go get' was following plain-HTTP redirects even without -insecure (now replaced by GOINSECURE).
-[!net] skip
+[short] skip
[!git] skip
env GO111MODULE=on
diff --git a/src/cmd/go/testdata/script/mod_download_issue51114.txt b/src/cmd/go/testdata/script/mod_download_issue51114.txt
index 68cce8c..4d274d6 100644
--- a/src/cmd/go/testdata/script/mod_download_issue51114.txt
+++ b/src/cmd/go/testdata/script/mod_download_issue51114.txt
@@ -1,6 +1,5 @@
-[short] skip
+[!net:github.com] skip
[!git] skip
-[!net] skip
[!GOOS:linux] skip # Uses XDG_CONFIG_HOME
env GIT_CONFIG_GLOBAL=$WORK/.gitconfig
diff --git a/src/cmd/go/testdata/script/mod_download_private_vcs.txt b/src/cmd/go/testdata/script/mod_download_private_vcs.txt
index 7459b80..2f72a42 100644
--- a/src/cmd/go/testdata/script/mod_download_private_vcs.txt
+++ b/src/cmd/go/testdata/script/mod_download_private_vcs.txt
@@ -1,7 +1,7 @@
env GO111MODULE=on
# Testing stderr for git ls-remote; turn off proxy.
-[!net] skip
+[!net:github.com] skip
[!git] skip
env GOPROXY=direct
diff --git a/src/cmd/go/testdata/script/mod_download_svn.txt b/src/cmd/go/testdata/script/mod_download_svn.txt
index 79e00dc..c11b4f9 100644
--- a/src/cmd/go/testdata/script/mod_download_svn.txt
+++ b/src/cmd/go/testdata/script/mod_download_svn.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[short] skip
[!exec:svn] skip
# 'go mod download' will fall back to svn+ssh once svn fails over protocols like https.
diff --git a/src/cmd/go/testdata/script/mod_get_direct.txt b/src/cmd/go/testdata/script/mod_get_direct.txt
index b7b0529..02b10ab 100644
--- a/src/cmd/go/testdata/script/mod_get_direct.txt
+++ b/src/cmd/go/testdata/script/mod_get_direct.txt
@@ -2,8 +2,7 @@
# 'GOPROXY=direct go get golang.org/x/tools/gopls@master' did not correctly
# resolve the pseudo-version for its dependency on golang.org/x/tools.
-[short] skip
-[!net] skip
+[!net:cloud.google.com] skip
[!git] skip
env GO111MODULE=on
diff --git a/src/cmd/go/testdata/script/mod_get_fallback.txt b/src/cmd/go/testdata/script/mod_get_fallback.txt
index 3572233..a5119b6 100644
--- a/src/cmd/go/testdata/script/mod_get_fallback.txt
+++ b/src/cmd/go/testdata/script/mod_get_fallback.txt
@@ -1,6 +1,7 @@
env GO111MODULE=on
-[!net] skip
+[!net:golang.org] skip
+[!net:proxy.golang.org] skip
env GOPROXY=https://proxy.golang.org,direct
env GOSUMDB=off
diff --git a/src/cmd/go/testdata/script/mod_get_fossil.txt b/src/cmd/go/testdata/script/mod_get_fossil.txt
index c2d42f0..830e0de 100644
--- a/src/cmd/go/testdata/script/mod_get_fossil.txt
+++ b/src/cmd/go/testdata/script/mod_get_fossil.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[short] skip
[!exec:fossil] skip
# Regression test for 'go get' to ensure repositories
diff --git a/src/cmd/go/testdata/script/mod_get_hash.txt b/src/cmd/go/testdata/script/mod_get_hash.txt
index 63e9e46..ec5549d 100644
--- a/src/cmd/go/testdata/script/mod_get_hash.txt
+++ b/src/cmd/go/testdata/script/mod_get_hash.txt
@@ -1,7 +1,7 @@
env GO111MODULE=on
env GOPROXY=direct
env GOSUMDB=off
-[!net] skip
+[!net:golang.org] skip
[!git] skip
# fetch commit hash reachable from refs/heads/* and refs/tags/* is OK
diff --git a/src/cmd/go/testdata/script/mod_get_major.txt b/src/cmd/go/testdata/script/mod_get_major.txt
index 76c9de5..4e0febb 100644
--- a/src/cmd/go/testdata/script/mod_get_major.txt
+++ b/src/cmd/go/testdata/script/mod_get_major.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[short] skip
[!git] skip
env GO111MODULE=on
diff --git a/src/cmd/go/testdata/script/mod_get_pseudo.txt b/src/cmd/go/testdata/script/mod_get_pseudo.txt
index 7b43c69..47ad54e 100644
--- a/src/cmd/go/testdata/script/mod_get_pseudo.txt
+++ b/src/cmd/go/testdata/script/mod_get_pseudo.txt
@@ -1,7 +1,7 @@
env GO111MODULE=on
# Testing git->module converter's generation of +incompatible tags; turn off proxy.
-[!net] skip
+[!net:github.com] skip
[!git] skip
env GOPROXY=direct
env GOSUMDB=off
diff --git a/src/cmd/go/testdata/script/mod_get_pseudo_other_branch.txt b/src/cmd/go/testdata/script/mod_get_pseudo_other_branch.txt
index 21f900f3..6019b45 100644
--- a/src/cmd/go/testdata/script/mod_get_pseudo_other_branch.txt
+++ b/src/cmd/go/testdata/script/mod_get_pseudo_other_branch.txt
@@ -6,7 +6,7 @@
# tag that appears in any commit that is a (transitive) parent of the commit
# supplied to 'go get', regardless of branches
-[!net] skip
+[short] skip
[!git] skip
# For this test repository:
diff --git a/src/cmd/go/testdata/script/mod_get_pseudo_prefix.txt b/src/cmd/go/testdata/script/mod_get_pseudo_prefix.txt
index 513450d..ac3233e 100644
--- a/src/cmd/go/testdata/script/mod_get_pseudo_prefix.txt
+++ b/src/cmd/go/testdata/script/mod_get_pseudo_prefix.txt
@@ -6,7 +6,7 @@
# prefixed tag in any commit that is a parent of the commit supplied
# to 'go get', when using a repo with go.mod in a sub directory.
-[!net] skip
+[short] skip
[!git] skip
# For this test repository go.mod resides in sub/ (only):
diff --git a/src/cmd/go/testdata/script/mod_getx.txt b/src/cmd/go/testdata/script/mod_getx.txt
index dee3f74..46bb95b 100644
--- a/src/cmd/go/testdata/script/mod_getx.txt
+++ b/src/cmd/go/testdata/script/mod_getx.txt
@@ -1,5 +1,4 @@
-[short] skip
-[!net] skip
+[!net:golang.org] skip
[!git] skip
env GO111MODULE=on
diff --git a/src/cmd/go/testdata/script/mod_git_export_subst.txt b/src/cmd/go/testdata/script/mod_git_export_subst.txt
index 44fb501..740ccbdb 100644
--- a/src/cmd/go/testdata/script/mod_git_export_subst.txt
+++ b/src/cmd/go/testdata/script/mod_git_export_subst.txt
@@ -2,7 +2,7 @@
env GOPROXY=direct
# Testing that git export-subst is disabled
-[!net] skip
+[!net:github.com] skip
[!git] skip
go build
diff --git a/src/cmd/go/testdata/script/mod_gonoproxy.txt b/src/cmd/go/testdata/script/mod_gonoproxy.txt
index 98a1d28..94d03f2 100644
--- a/src/cmd/go/testdata/script/mod_gonoproxy.txt
+++ b/src/cmd/go/testdata/script/mod_gonoproxy.txt
@@ -36,13 +36,14 @@
stderr '^go: golang.org/x/text: module lookup disabled by GOPROXY=off$'
# GONOPROXY bypasses proxy
-[!net] skip
+[!net:rsc.io] skip
[!git] skip
env GOPRIVATE=none
env GONOPROXY='*/fortune'
! go get rsc.io/fortune # does not exist in real world, only on test proxy
stderr 'git ls-remote'
+[!net:golang.org] skip
env GOSUMDB=
env GONOPROXY=
env GOPRIVATE='*/x'
diff --git a/src/cmd/go/testdata/script/mod_gopkg_unstable.txt b/src/cmd/go/testdata/script/mod_gopkg_unstable.txt
index 3608bcd..856f493 100644
--- a/src/cmd/go/testdata/script/mod_gopkg_unstable.txt
+++ b/src/cmd/go/testdata/script/mod_gopkg_unstable.txt
@@ -7,7 +7,7 @@
cp go.mod.empty go.mod
go list
-[!net] skip
+[!net:gopkg.in] skip
[!git] skip
skip # TODO(#54503): redirect gopkg.in requests to a local server and re-enable.
diff --git a/src/cmd/go/testdata/script/mod_init_glide.txt b/src/cmd/go/testdata/script/mod_init_glide.txt
index 2126ae5..0d087eb 100644
--- a/src/cmd/go/testdata/script/mod_init_glide.txt
+++ b/src/cmd/go/testdata/script/mod_init_glide.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:github.com] skip
[!git] skip
env GO111MODULE=on
diff --git a/src/cmd/go/testdata/script/mod_invalid_version.txt b/src/cmd/go/testdata/script/mod_invalid_version.txt
index d1e1da4..c841f27 100644
--- a/src/cmd/go/testdata/script/mod_invalid_version.txt
+++ b/src/cmd/go/testdata/script/mod_invalid_version.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:golang.org] skip
[!git] skip
env GO111MODULE=on
@@ -178,6 +178,8 @@
! go list -m golang.org/x/text
stderr 'golang.org/x/text@v0.1.1-0.20170915032832-14c0d48ead0c\+incompatible: invalid version: \+incompatible suffix not allowed: major version v0 is compatible'
+[!net:github.com] stop
+
# The pseudo-version for a commit after a tag with a non-matching major version
# should instead be based on the last matching tag.
cp go.mod.orig go.mod
diff --git a/src/cmd/go/testdata/script/mod_list_direct.txt b/src/cmd/go/testdata/script/mod_list_direct.txt
index 3e7c479..8bab330 100644
--- a/src/cmd/go/testdata/script/mod_list_direct.txt
+++ b/src/cmd/go/testdata/script/mod_list_direct.txt
@@ -2,7 +2,7 @@
env GOPROXY=direct
env GOSUMDB=off
-[!net] skip
+[short] skip
[!git] skip
# golang.org/issue/33099: if an import path ends in a major-version suffix,
diff --git a/src/cmd/go/testdata/script/mod_list_odd_tags.txt b/src/cmd/go/testdata/script/mod_list_odd_tags.txt
index b413e87..232754e 100644
--- a/src/cmd/go/testdata/script/mod_list_odd_tags.txt
+++ b/src/cmd/go/testdata/script/mod_list_odd_tags.txt
@@ -1,6 +1,5 @@
[short] skip
[!git] skip
-[!net] skip
env GOPROXY=direct
diff --git a/src/cmd/go/testdata/script/mod_missing_repo.txt b/src/cmd/go/testdata/script/mod_missing_repo.txt
index 4b403fe..d0076f7 100644
--- a/src/cmd/go/testdata/script/mod_missing_repo.txt
+++ b/src/cmd/go/testdata/script/mod_missing_repo.txt
@@ -2,7 +2,7 @@
# subgroups could not be fetched because the server returned bogus go-import
# tags for prefixes of the module path.
-[!net] skip
+[short] skip
[!git] skip
env GO111MODULE=on
diff --git a/src/cmd/go/testdata/script/mod_prefer_compatible.txt b/src/cmd/go/testdata/script/mod_prefer_compatible.txt
index 7ba5eb4..57036b9 100644
--- a/src/cmd/go/testdata/script/mod_prefer_compatible.txt
+++ b/src/cmd/go/testdata/script/mod_prefer_compatible.txt
@@ -2,7 +2,8 @@
# @latest, @upgrade, and @patch should prefer compatible versions over
# +incompatible ones, even if offered by a proxy.
-[!net] skip
+[!net:github.com] skip
+[!net:proxy.golang.org] skip
env GO111MODULE=on
env GOPROXY=
diff --git a/src/cmd/go/testdata/script/mod_proxy_errors.txt b/src/cmd/go/testdata/script/mod_proxy_errors.txt
index 9cd1a82..99a4ef1 100644
--- a/src/cmd/go/testdata/script/mod_proxy_errors.txt
+++ b/src/cmd/go/testdata/script/mod_proxy_errors.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[short] skip
env GO111MODULE=on
env GOSUMDB=off
diff --git a/src/cmd/go/testdata/script/mod_proxy_https.txt b/src/cmd/go/testdata/script/mod_proxy_https.txt
index a5e28dd..c87a0d9 100644
--- a/src/cmd/go/testdata/script/mod_proxy_https.txt
+++ b/src/cmd/go/testdata/script/mod_proxy_https.txt
@@ -5,7 +5,7 @@
! go list -versions -m golang.org/x/text
stderr 'invalid proxy URL.*proxydir'
-[!net] stop
+[!net:proxy.golang.org] stop
# GOPROXY HTTPS paths may elide the "https://" prefix.
# (See golang.org/issue/32191.)
diff --git a/src/cmd/go/testdata/script/mod_pseudo_cache.txt b/src/cmd/go/testdata/script/mod_pseudo_cache.txt
index a7ceac4..bcaefa2 100644
--- a/src/cmd/go/testdata/script/mod_pseudo_cache.txt
+++ b/src/cmd/go/testdata/script/mod_pseudo_cache.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:golang.org] skip
[!git] skip
env GO111MODULE=on
diff --git a/src/cmd/go/testdata/script/mod_replace_gopkgin.txt b/src/cmd/go/testdata/script/mod_replace_gopkgin.txt
index 04b79dd..91008f9 100644
--- a/src/cmd/go/testdata/script/mod_replace_gopkgin.txt
+++ b/src/cmd/go/testdata/script/mod_replace_gopkgin.txt
@@ -7,8 +7,7 @@
skip 'skipping test that depends on an unreliable third-party server; see https://go.dev/issue/54503'
# TODO(#54043): Make this test hermetic and re-enable it.
-[short] skip
-[!net] skip
+[!net:gopkg.in] skip
[!git] skip
env GO111MODULE=on
diff --git a/src/cmd/go/testdata/script/mod_retract_pseudo_base.txt b/src/cmd/go/testdata/script/mod_retract_pseudo_base.txt
index c52f0b8..87b440d 100644
--- a/src/cmd/go/testdata/script/mod_retract_pseudo_base.txt
+++ b/src/cmd/go/testdata/script/mod_retract_pseudo_base.txt
@@ -2,7 +2,7 @@
# as the base.
# Verifies golang.org/issue/41700.
-[!net] skip
+[short] skip
[!git] skip
env GOPROXY=direct
env GOSUMDB=off
diff --git a/src/cmd/go/testdata/script/mod_sumdb_file_path.txt b/src/cmd/go/testdata/script/mod_sumdb_file_path.txt
index d89ad1a..c95a667 100644
--- a/src/cmd/go/testdata/script/mod_sumdb_file_path.txt
+++ b/src/cmd/go/testdata/script/mod_sumdb_file_path.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:proxy.golang.org] skip
env GO111MODULE=on
env GOSUMDB=
diff --git a/src/cmd/go/testdata/script/mod_sumdb_golang.txt b/src/cmd/go/testdata/script/mod_sumdb_golang.txt
index 7dd6cdc..8698412 100644
--- a/src/cmd/go/testdata/script/mod_sumdb_golang.txt
+++ b/src/cmd/go/testdata/script/mod_sumdb_golang.txt
@@ -11,7 +11,8 @@
# Download direct from github.
-[!net] skip
+[!net:proxy.golang.org] skip
+[!net:sum.golang.org] skip
[!git] skip
env GOSUMDB=sum.golang.org
env GOPROXY=direct
diff --git a/src/cmd/go/testdata/script/mod_vcs_missing.txt b/src/cmd/go/testdata/script/mod_vcs_missing.txt
index 9e6e371..7f63e9d 100644
--- a/src/cmd/go/testdata/script/mod_vcs_missing.txt
+++ b/src/cmd/go/testdata/script/mod_vcs_missing.txt
@@ -1,5 +1,5 @@
[exec:bzr] skip 'tests NOT having bzr'
-[!net] skip
+[!net:launchpad.net] skip
env GO111MODULE=on
env GOPROXY=direct
diff --git a/src/cmd/go/testdata/script/reuse_git.txt b/src/cmd/go/testdata/script/reuse_git.txt
index 4f9e0dd..0357d670 100644
--- a/src/cmd/go/testdata/script/reuse_git.txt
+++ b/src/cmd/go/testdata/script/reuse_git.txt
@@ -1,6 +1,5 @@
[short] skip
[!git] skip
-[!net] skip
env GO111MODULE=on
env GOPROXY=direct
diff --git a/src/cmd/go/testdata/script/vendor_list_issue11977.txt b/src/cmd/go/testdata/script/vendor_list_issue11977.txt
index 35c82c7..f519175 100644
--- a/src/cmd/go/testdata/script/vendor_list_issue11977.txt
+++ b/src/cmd/go/testdata/script/vendor_list_issue11977.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:github.com] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/vendor_test_issue11864.txt b/src/cmd/go/testdata/script/vendor_test_issue11864.txt
index ff179cb..9e34811 100644
--- a/src/cmd/go/testdata/script/vendor_test_issue11864.txt
+++ b/src/cmd/go/testdata/script/vendor_test_issue11864.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:github.com] skip
[!git] skip
env GO111MODULE=off
diff --git a/src/cmd/go/testdata/script/vendor_test_issue14613.txt b/src/cmd/go/testdata/script/vendor_test_issue14613.txt
index 7822dee..9535fc1 100644
--- a/src/cmd/go/testdata/script/vendor_test_issue14613.txt
+++ b/src/cmd/go/testdata/script/vendor_test_issue14613.txt
@@ -1,4 +1,4 @@
-[!net] skip
+[!net:github.com] skip
[!git] skip
env GO111MODULE=off