cmd/go: fix tests from x/vgo repo

This CL fixes up tests from the x/vgo repo that are failing
on some of the builders.
It will be submitted together with CL 123576.

Change-Id: I6bec81a93ad4f7116e8edc8c15beafa25747530c
Reviewed-on: https://go-review.googlesource.com/123580
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/src/cmd/go/internal/modfetch/unzip.go b/src/cmd/go/internal/modfetch/unzip.go
index 3c69803..c2cb17e 100644
--- a/src/cmd/go/internal/modfetch/unzip.go
+++ b/src/cmd/go/internal/modfetch/unzip.go
@@ -10,6 +10,7 @@
 	"io"
 	"io/ioutil"
 	"os"
+	"path"
 	"path/filepath"
 	"sort"
 	"strings"
@@ -57,7 +58,7 @@
 		if zf.Name == prefix || strings.HasSuffix(zf.Name, "/") {
 			continue
 		}
-		if filepath.Clean(zf.Name) != zf.Name || strings.HasPrefix(zf.Name[len(prefix)+1:], "/") {
+		if path.Clean(zf.Name) != zf.Name || strings.HasPrefix(zf.Name[len(prefix)+1:], "/") {
 			return fmt.Errorf("unzip %v: invalid file name %s", zipfile, zf.Name)
 		}
 		s := int64(zf.UncompressedSize64)
diff --git a/src/cmd/go/mod_test.go b/src/cmd/go/mod_test.go
index ebd9c9b..faebff0 100644
--- a/src/cmd/go/mod_test.go
+++ b/src/cmd/go/mod_test.go
@@ -6,8 +6,10 @@
 
 import (
 	"bytes"
+	"internal/testenv"
 	"io/ioutil"
 	"os"
+	"os/exec"
 	"path/filepath"
 	"regexp"
 	"sort"
@@ -81,48 +83,48 @@
 	// In GOPATH/src with go.mod.
 	tg.cd(tg.path("gp/src/x/y/z"))
 	tg.setenv("GO111MODULE", "auto")
-	tg.run("env", "-json")
-	tg.grepStdout(`"GOMOD": ""`, "expected module mode disabled")
+	tg.run("env", "GOMOD")
+	tg.grepStdoutNot(`go.mod`, "expected module mode disabled")
 
 	tg.cd(tg.path("gp/src/x/y/z/w"))
-	tg.run("env", "-json")
-	tg.grepStdout(`"GOMOD": ""`, "expected module mode disabled")
+	tg.run("env", "GOMOD")
+	tg.grepStdoutNot(`go.mod`, "expected module mode disabled")
 
 	tg.setenv("GO111MODULE", "off")
-	tg.run("env", "-json")
-	tg.grepStdout(`"GOMOD": ""`, "expected module mode disabled")
+	tg.run("env", "GOMOD")
+	tg.grepStdoutNot(`go.mod`, "expected module mode disabled")
 
 	tg.setenv("GO111MODULE", "on")
-	tg.run("env", "-json")
-	tg.grepStdout(`"GOMOD": ".*z[/\\]go.mod"`, "expected module mode enabled")
+	tg.run("env", "GOMOD")
+	tg.grepStdout(`.*z[/\\]go.mod$`, "expected module mode enabled")
 
 	// In GOPATH/src without go.mod.
 	tg.cd(tg.path("gp/src/x/y"))
 	tg.setenv("GO111MODULE", "auto")
-	tg.run("env", "-json")
-	tg.grepStdout(`"GOMOD": ""`, "expected module mode disabled")
+	tg.run("env", "GOMOD")
+	tg.grepStdoutNot(`go.mod`, "expected module mode disabled")
 
 	tg.setenv("GO111MODULE", "off")
-	tg.run("env", "-json")
-	tg.grepStdout(`"GOMOD": ""`, "expected module mode disabled")
+	tg.run("env", "GOMOD")
+	tg.grepStdoutNot(`go.mod`, "expected module mode disabled")
 
 	tg.setenv("GO111MODULE", "on")
-	tg.runFail("env", "-json")
+	tg.runFail("env", "GOMOD")
 	tg.grepStderr(`cannot find main module root`, "expected module mode failure")
 
 	// Outside GOPATH/src with go.mod.
 	tg.cd(tg.path("gp/foo"))
 	tg.setenv("GO111MODULE", "auto")
-	tg.run("env", "-json")
-	tg.grepStdout(`"GOMOD": ".*foo[/\\]go.mod"`, "expected module mode enabled")
+	tg.run("env", "GOMOD")
+	tg.grepStdout(`.*foo[/\\]go.mod$`, "expected module mode enabled")
 
 	tg.cd(tg.path("gp/foo/bar/baz"))
-	tg.run("env", "-json")
-	tg.grepStdout(`"GOMOD": ".*foo[/\\]go.mod"`, "expected module mode enabled")
+	tg.run("env", "GOMOD")
+	tg.grepStdout(`.*foo[/\\]go.mod$`, "expected module mode enabled")
 
 	tg.setenv("GO111MODULE", "off")
-	tg.run("env", "-json")
-	tg.grepStdout(`"GOMOD": ""`, "expected module mode disabled")
+	tg.run("env", "GOMOD")
+	tg.grepStdoutNot(`go.mod`, "expected module mode disabled")
 }
 
 func TestModVersionsInGOPATHMode(t *testing.T) {
@@ -933,6 +935,11 @@
 }
 
 func TestModInitLegacy(t *testing.T) {
+	testenv.MustHaveExternalNetwork(t)
+	if _, err := exec.LookPath("git"); err != nil {
+		t.Skip("skipping because git binary not found")
+	}
+
 	tg := testGoModules(t)
 	defer tg.cleanup()
 
@@ -1035,6 +1042,11 @@
 }
 
 func TestModInitLegacy2(t *testing.T) {
+	testenv.MustHaveExternalNetwork(t)
+	if _, err := exec.LookPath("git"); err != nil {
+		t.Skip("skipping because git binary not found")
+	}
+
 	tg := testGoModules(t)
 	defer tg.cleanup()