]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: expand tests for standard-library vendoring in GOPATH mode
authorBryan C. Mills <bcmills@google.com>
Wed, 20 Feb 2019 18:52:23 +0000 (13:52 -0500)
committerBryan C. Mills <bcmills@google.com>
Wed, 27 Feb 2019 16:33:34 +0000 (16:33 +0000)
This should help to catch any regressions in the course of implementing #26924.

Updates #26924

Change-Id: Ide28a9aa0235867e0ce72f855fbed51c50e2c2f2
Reviewed-on: https://go-review.googlesource.com/c/163520
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
src/cmd/go/testdata/script/list_std.txt
src/cmd/go/testdata/script/std_vendor.txt [new file with mode: 0644]

index 88a659f74332defcee3c3b11012a792a4fd90b25..5960d442e56fb0ab9e60a789b951b1f65bccea3f 100644 (file)
@@ -2,13 +2,24 @@ env GO111MODULE=off
 
 [!gc] skip
 
-# listing GOROOT should only find standard packages
+# Listing GOROOT should only find standard packages.
 cd $GOROOT/src
 go list -f '{{if not .Standard}}{{.ImportPath}}{{end}}' ./...
 ! stdout .
 # TODO: ignore _/blah/go/src in output
 
-# our vendored packages should be reported as standard
-go list std cmd
+# Standard packages should include cmd, but not cmd/vendor.
+go list ./...
+stdout cmd/compile
+! stdout vendor/golang.org
+! stdout cmd/vendor
+
+# In GOPATH mode, packages vendored into GOROOT should be reported as standard.
+go list -f '{{if .Standard}}{{.ImportPath}}{{end}}' std cmd
 stdout internal/x/net/http2/hpack
 stdout cmd/vendor/golang\.org/x/arch/x86/x86asm
+
+# However, vendored packages should not match wildcard patterns beginning with cmd.
+go list cmd/...
+stdout cmd/compile
+! stdout cmd/vendor
diff --git a/src/cmd/go/testdata/script/std_vendor.txt b/src/cmd/go/testdata/script/std_vendor.txt
new file mode 100644 (file)
index 0000000..f781519
--- /dev/null
@@ -0,0 +1,24 @@
+env GO111MODULE=off
+
+[!gc] skip
+
+# 'go list' should report imports from _test.go in the TestImports field.
+go list -f '{{.TestImports}}'
+stdout net/http # from .TestImports
+
+# 'go list -test' should report vendored transitive dependencies of _test.go
+# imports in the Deps field, with a 'vendor' prefix on their import paths.
+go list -test -f '{{.Deps}}'
+stdout internal/x/crypto # dep of .TestImports
+
+-- go.mod --
+module m
+
+-- x.go --
+package x
+
+-- x_test.go --
+package x
+import "testing"
+import _ "net/http"
+func Test(t *testing.T) {}