]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: convert TestAccidentalGitCheckout to a script test
authorBryan C. Mills <bcmills@google.com>
Mon, 18 Jul 2022 21:01:20 +0000 (17:01 -0400)
committerGopher Robot <gobot@golang.org>
Tue, 16 Aug 2022 16:14:48 +0000 (16:14 +0000)
As far as I can determine, this is the only existing non-script test
that relies on vcs-test.golang.org. I am attempting to eliminate the
vcs-test server, and to keep configuration straightforward I would
like to only set up its replacement for script tests.

For #27494.

Change-Id: Ib978228b9c3f403af5f1c445e08942cbe7915b62
Reviewed-on: https://go-review.googlesource.com/c/go/+/418103
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>

src/cmd/go/go_test.go
src/cmd/go/testdata/script/get_issue22125.txt [new file with mode: 0644]

index d573a7aecc84b510159d5646eaa1499765578ddf..a96ff1e322891ddabf68f54c08b10f4db04431f4 100644 (file)
@@ -1042,29 +1042,6 @@ func TestGetGitDefaultBranch(t *testing.T) {
        tg.grepStdout(`\* another-branch`, "not on correct default branch")
 }
 
-// Security issue. Don't disable. See golang.org/issue/22125.
-func TestAccidentalGitCheckout(t *testing.T) {
-       testenv.MustHaveExternalNetwork(t)
-       testenv.MustHaveExecPath(t, "git")
-       testenv.MustHaveExecPath(t, "svn")
-
-       tg := testgo(t)
-       defer tg.cleanup()
-       tg.parallel()
-       tg.tempDir("src")
-
-       tg.setenv("GOPATH", tg.path("."))
-
-       tg.runFail("get", "-u", "vcs-test.golang.org/go/test1-svn-git")
-       tg.grepStderr("src[\\\\/]vcs-test.* uses git, but parent .*src[\\\\/]vcs-test.* uses svn", "get did not fail for right reason")
-
-       if _, err := os.Stat(tg.path("SrC")); err == nil {
-               // This case only triggers on a case-insensitive file system.
-               tg.runFail("get", "-u", "vcs-test.golang.org/go/test2-svn-git/test2main")
-               tg.grepStderr("src[\\\\/]vcs-test.* uses git, but parent .*src[\\\\/]vcs-test.* uses svn", "get did not fail for right reason")
-       }
-}
-
 func TestPackageMainTestCompilerFlags(t *testing.T) {
        tg := testgo(t)
        defer tg.cleanup()
diff --git a/src/cmd/go/testdata/script/get_issue22125.txt b/src/cmd/go/testdata/script/get_issue22125.txt
new file mode 100644 (file)
index 0000000..6fdbe81
--- /dev/null
@@ -0,0 +1,14 @@
+# This test verifies a fix for a security issue; see https://go.dev/issue/22125.
+
+[!net] skip
+[!exec:git] skip
+[!exec:svn] skip
+
+env GO111MODULE=off
+
+cd $GOPATH
+! go get -u vcs-test.golang.org/go/test1-svn-git
+stderr 'src'${/}'vcs-test.* uses git, but parent .*src'${/}'vcs-test.* uses svn'
+
+[!case-sensitive] ! go get -u vcs-test.golang.org/go/test2-svn-git/test2main
+[!case-sensitive] stderr 'src'${/}'vcs-test.* uses git, but parent .*src'${/}'vcs-test.* uses svn'