1
0
mirror of https://github.com/golang/go synced 2024-11-16 22:54:47 -07:00

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 <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
This commit is contained in:
Bryan C. Mills 2019-03-01 09:23:44 -05:00
parent 8eef74b493
commit 7c388cc89c

View File

@ -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))