]> Cypherpunks repositories - gostls13.git/commitdiff
go/internal/srcimporter: set -mod=vendor before running tests
authorBryan C. Mills <bcmills@google.com>
Fri, 1 Mar 2019 14:23:44 +0000 (09:23 -0500)
committerBryan C. Mills <bcmills@google.com>
Fri, 1 Mar 2019 17:21:57 +0000 (17:21 +0000)
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>
src/go/internal/srcimporter/srcimporter_test.go

index b84672610c6f8be8875062192fcb11b8d64c505e..f8e1c323b32bb6adab817b1033a9712518a68613 100644 (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))