]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: fix module get -insecure
authorRuss Cox <rsc@golang.org>
Sat, 18 Aug 2018 04:42:58 +0000 (00:42 -0400)
committerRuss Cox <rsc@golang.org>
Sat, 18 Aug 2018 18:23:06 +0000 (18:23 +0000)
Need to actually use the flag for it to take effect.

Fixes #27049.

Change-Id: I57227b45f46f9dd67ecbf87c11bb2d08124bcfa0
Reviewed-on: https://go-review.googlesource.com/129801
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/go/go_test.go
src/cmd/go/internal/modfetch/repo.go

index ec6a72c66a53a3f7b4edecd32660d3d0a72a4e79..85cae90f87905c1dc1727a135d16150f00bebaba 100644 (file)
@@ -3532,24 +3532,43 @@ func TestImportLocal(t *testing.T) {
 }
 
 func TestGoGetInsecure(t *testing.T) {
-       testenv.MustHaveExternalNetwork(t)
+       test := func(t *testing.T, modules bool) {
+               testenv.MustHaveExternalNetwork(t)
 
-       tg := testgo(t)
-       defer tg.cleanup()
-       tg.makeTempdir()
-       tg.setenv("GOPATH", tg.path("."))
-       tg.failSSH()
+               tg := testgo(t)
+               defer tg.cleanup()
+               tg.makeTempdir()
+               tg.failSSH()
 
-       const repo = "insecure.go-get-issue-15410.appspot.com/pkg/p"
+               if modules {
+                       tg.setenv("GOPATH", tg.path("gp"))
+                       tg.tempFile("go.mod", "module m")
+                       tg.cd(tg.path("."))
+                       tg.setenv("GO111MODULE", "on")
+               } else {
+                       tg.setenv("GOPATH", tg.path("."))
+                       tg.setenv("GO111MODULE", "off")
+               }
 
-       // Try go get -d of HTTP-only repo (should fail).
-       tg.runFail("get", "-d", repo)
+               const repo = "insecure.go-get-issue-15410.appspot.com/pkg/p"
 
-       // Try again with -insecure (should succeed).
-       tg.run("get", "-d", "-insecure", repo)
+               // Try go get -d of HTTP-only repo (should fail).
+               tg.runFail("get", "-d", repo)
+
+               // Try again with -insecure (should succeed).
+               tg.run("get", "-d", "-insecure", repo)
+
+               // Try updating without -insecure (should fail).
+               tg.runFail("get", "-d", "-u", "-f", repo)
+
+               if modules {
+                       tg.run("list", "-m", "...")
+                       tg.grepStdout("insecure.go-get-issue", "should find insecure module")
+               }
+       }
 
-       // Try updating without -insecure (should fail).
-       tg.runFail("get", "-d", "-u", "-f", repo)
+       t.Run("gopath", func(t *testing.T) { test(t, false) })
+       t.Run("modules", func(t *testing.T) { test(t, true) })
 }
 
 func TestGoGetUpdateInsecure(t *testing.T) {
index c8b133574e7a8d862ecaa9fdc29f23cc53526a03..0ea8c1f0e35e8d00da36ca56c7beb7fd25ebb846 100644 (file)
@@ -216,7 +216,11 @@ func lookup(path string) (r Repo, err error) {
                return lookupProxy(path)
        }
 
-       rr, err := get.RepoRootForImportPath(path, get.PreferMod, web.Secure)
+       security := web.Secure
+       if get.Insecure {
+               security = web.Insecure
+       }
+       rr, err := get.RepoRootForImportPath(path, get.PreferMod, security)
        if err != nil {
                // We don't know where to find code for a module with this path.
                return nil, err
@@ -257,7 +261,11 @@ func ImportRepoRev(path, rev string) (Repo, *RevInfo, error) {
        // Note: Because we are converting a code reference from a legacy
        // version control system, we ignore meta tags about modules
        // and use only direct source control entries (get.IgnoreMod).
-       rr, err := get.RepoRootForImportPath(path, get.IgnoreMod, web.Secure)
+       security := web.Secure
+       if get.Insecure {
+               security = web.Insecure
+       }
+       rr, err := get.RepoRootForImportPath(path, get.IgnoreMod, security)
        if err != nil {
                return nil, nil, err
        }