Commit 0271d41e authored by Bryan C. Mills's avatar Bryan C. Mills

internal/testenv: remove SetModVendor

It turns out not to be necessary. Russ expressed a preference for
avoiding module fetches over making 'go mod tidy' work within std and
cmd right away, so for now we will make the loader use the vendor
directory for the standard library even if '-mod=vendor' is not set
explicitly.

Updates #30228

Change-Id: Idf7208e63da8cb7bfe281b93ec21b61d40334947
Reviewed-on: https://go-review.googlesource.com/c/go/+/166357
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarJay Conrod <jayconrod@google.com>
parent 632162cc
......@@ -115,5 +115,3 @@ func TestAddr2Line(t *testing.T) {
testAddr2Line(t, exepath, syms[symName])
testAddr2Line(t, exepath, "0x"+syms[symName])
}
func init() { testenv.SetModVendor() }
......@@ -202,8 +202,6 @@ var testfile = []testline{
const detailOutput = false
func init() { testenv.SetModVendor() }
// Compiles testfile checks that the description of lexical blocks emitted
// by the linker in debug_info, for each function in the main package,
// corresponds to what we expect it to be.
......
......@@ -77,8 +77,6 @@ var debug = flag.Bool("debug", false, "keep rewritten files for debugging")
// We use TestMain to set up a temporary directory and remove it when
// the tests are done.
func TestMain(m *testing.M) {
testenv.SetModVendor()
dir, err := ioutil.TempDir("", "gotestcover")
if err != nil {
fmt.Fprintln(os.Stderr, err)
......
......@@ -134,8 +134,6 @@ func parseOutput(t *testing.T, td *ParsedTestData, asmout []byte) {
}
}
func init() { testenv.SetModVendor() }
func TestDynlink(t *testing.T) {
testenv.MustHaveGoBuild(t)
......
......@@ -13,8 +13,6 @@ import (
"testing"
)
func init() { testenv.SetModVendor() }
func TestUndefinedRelocErrors(t *testing.T) {
t.Parallel()
testenv.MustHaveGoBuild(t)
......
......@@ -38,8 +38,6 @@ func TestLargeSymName(t *testing.T) {
_ = AuthorPaidByTheColumnInch
}
func init() { testenv.SetModVendor() }
func TestIssue21703(t *testing.T) {
t.Parallel()
......
......@@ -30,8 +30,6 @@ func testMain(m *testing.M) int {
return 0
}
testenv.SetModVendor()
tmpDir, err := ioutil.TempDir("", "TestNM")
if err != nil {
fmt.Println("TempDir failed:", err)
......
......@@ -24,7 +24,6 @@ func TestMain(m *testing.M) {
if !testenv.HasGoBuild() {
return
}
testenv.SetModVendor()
var exitcode int
if err := buildObjdump(); err == nil {
......
......@@ -44,7 +44,6 @@ func main() {
log.SetPrefix("vet/all: ")
log.SetFlags(log.Lshortfile)
testenv.SetModVendor()
var err error
cmdGoPath, err = testenv.GoTool()
if err != nil {
......
......@@ -32,8 +32,6 @@ func TestMain(m *testing.M) {
}
func testMain(m *testing.M) int {
testenv.SetModVendor()
dir, err := ioutil.TempDir("", "vet_test")
if err != nil {
fmt.Fprintln(os.Stderr, err)
......
......@@ -1146,8 +1146,6 @@ func TestParsePEMCRL(t *testing.T) {
// Can't check the signature here without a package cycle.
}
func init() { testenv.SetModVendor() }
func TestImports(t *testing.T) {
testenv.MustHaveGoRun(t)
......
......@@ -21,8 +21,6 @@ var (
pclinetestBinary string
)
func init() { testenv.SetModVendor() }
func dotest(t *testing.T) {
testenv.MustHaveGoBuild(t)
// For now, only works on amd64 platforms.
......
......@@ -16,8 +16,6 @@ import (
"testing"
)
func init() { testenv.SetModVendor() }
func TestForCompiler(t *testing.T) {
testenv.MustHaveGoBuild(t)
......
......@@ -18,8 +18,6 @@ import (
"time"
)
func init() { testenv.SetModVendor() }
const maxTime = 2 * time.Second
var importer = New(&build.Default, token.NewFileSet(), make(map[string]*types.Package))
......
......@@ -19,7 +19,6 @@ import (
"runtime"
"strconv"
"strings"
"sync"
"testing"
)
......@@ -78,31 +77,6 @@ func MustHaveGoRun(t testing.TB) {
}
}
var modVendorOnce sync.Once
// SetModVendor adds the "-mod=vendor" flag to the GOFLAGS environment variable.
// This allows tests whose working directories are within the cmd and std
// modules to run ``go'' commands without accessing the network to load
// dependencies modules.
//
// SetModVendor must be called before any test may read the GOFLAGS environment
// variable.
//
// TODO(golang.org/issue/30240): If we load go.mod files from vendor/
// automatically, this will probably no longer be necessary.
func SetModVendor() {
modVendorOnce.Do(func() {
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, " "))
})
}
// GoToolPath reports the path to the Go tool.
// It is a convenience wrapper around GoTool.
// If the tool is unavailable GoToolPath calls t.Skip.
......
......@@ -25,8 +25,6 @@ import (
var toRemove []string
func TestMain(m *testing.M) {
testenv.SetModVendor()
status := m.Run()
for _, file := range toRemove {
os.RemoveAll(file)
......
......@@ -301,8 +301,6 @@ func TestProcSelfMaps(t *testing.T) {
})
}
func init() { testenv.SetModVendor() }
// TestMapping checkes the mapping section of CPU profiles
// has the HasFunctions field set correctly. If all PCs included
// in the samples are successfully symbolized, the corresponding
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment