From 7c388cc89c76bc7167287fb488afcaf5a4aa12bf Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Fri, 1 Mar 2019 09:23:44 -0500 Subject: [PATCH] go/internal/srcimporter: set -mod=vendor before running tests Otherwise, if the working directory is inside a standard-library module, the test may try to fetch module contents from GOPROXY or upstream. Updates #26924 Updates #30228 Updates #30241 Change-Id: I4cb9a07721bd808fd094f7ed55a74cf7bce9cd6f Reviewed-on: https://go-review.googlesource.com/c/164625 Run-TryBot: Bryan C. Mills TryBot-Result: Gobot Gobot Reviewed-by: Jay Conrod --- .../internal/srcimporter/srcimporter_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/go/internal/srcimporter/srcimporter_test.go b/src/go/internal/srcimporter/srcimporter_test.go index b84672610c..f8e1c323b3 100644 --- a/src/go/internal/srcimporter/srcimporter_test.go +++ b/src/go/internal/srcimporter/srcimporter_test.go @@ -10,6 +10,7 @@ import ( "go/types" "internal/testenv" "io/ioutil" + "os" "path" "path/filepath" "runtime" @@ -18,6 +19,23 @@ import ( "time" ) +func TestMain(m *testing.M) { + // Add -mod=vendor to GOFLAGS to ensure that we don't fetch modules while importing std or cmd. + // + // TODO(golang.org/issue/30240): If we load go.mod files from vendor/ + // automatically, this will probably no longer be necessary. + var goflags []string + for _, f := range strings.Fields(os.Getenv("GOFLAGS")) { + if !strings.HasPrefix(f, "-mod=") && !strings.HasPrefix(f, "--mod=") { + goflags = append(goflags, f) + } + } + goflags = append(goflags, "-mod=vendor") + os.Setenv("GOFLAGS", strings.Join(goflags, " ")) + + os.Exit(m.Run()) +} + const maxTime = 2 * time.Second var importer = New(&build.Default, token.NewFileSet(), make(map[string]*types.Package)) -- 2.48.1