aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorJay Conrod <jayconrod@google.com>2020-07-08 16:20:51 -0400
committerJay Conrod <jayconrod@google.com>2021-05-10 15:53:43 +0000
commitdeb3403ff52b8833df6c4e2f82cbdddeb13573dd (patch)
tree232da9d044da3d5a95e09eab72d94b8d2a9ee8fe /src/cmd
parent82517acae866d60a9754d44d004bfa159e656c07 (diff)
downloadgo-deb3403ff52b8833df6c4e2f82cbdddeb13573dd.tar.gz
go-deb3403ff52b8833df6c4e2f82cbdddeb13573dd.zip
go/build: include files with parse errors in GoFiles and other lists
go/build.ImportDir returns a *build.Package with various lists of files. If a file is invalid for some reason, for example, because it has a different package name than other files, it's added to InvalidGoFiles in addition to GoFiles, TestGoFiles, or other lists. Previously, files with parse errors or build constraint errors were not included in these lists, which causes problems for tools that use 'go list' since InvalidGoFiles is not printed. With this change, files with any kind of error are added to one of the GoFiles lists. Fixes #39986 Change-Id: Iee007b5092293eb4420c8a39ce731805fe32135f Reviewed-on: https://go-review.googlesource.com/c/go/+/241577 Trust: Jay Conrod <jayconrod@google.com> Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/go/testdata/script/list_load_err.txt26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/cmd/go/testdata/script/list_load_err.txt b/src/cmd/go/testdata/script/list_load_err.txt
index b3b72713e5..0cfa7fbed2 100644
--- a/src/cmd/go/testdata/script/list_load_err.txt
+++ b/src/cmd/go/testdata/script/list_load_err.txt
@@ -2,26 +2,42 @@
# other files in the same package cause go/build.Import to return an error.
# Verfifies golang.org/issue/38568
-
go list -e -deps ./scan
stdout m/want
-
go list -e -deps ./multi
stdout m/want
-
go list -e -deps ./constraint
stdout m/want
-
[cgo] go list -e -test -deps ./cgotest
[cgo] stdout m/want
-
[cgo] go list -e -deps ./cgoflag
[cgo] stdout m/want
+
+# go list -e should include files with errors in GoFiles, TestGoFiles, and
+# other lists, assuming they match constraints.
+# Verifies golang.org/issue/39986
+go list -e -f '{{range .GoFiles}}{{.}},{{end}}' ./scan
+stdout '^good.go,scan.go,$'
+
+go list -e -f '{{range .GoFiles}}{{.}},{{end}}' ./multi
+stdout '^a.go,b.go,$'
+
+go list -e -f '{{range .GoFiles}}{{.}},{{end}}' ./constraint
+stdout '^good.go,$'
+go list -e -f '{{range .IgnoredGoFiles}}{{.}},{{end}}' ./constraint
+stdout '^constraint.go,$'
+
+[cgo] go list -e -f '{{range .XTestGoFiles}}{{.}},{{end}}' ./cgotest
+[cgo] stdout '^cgo_test.go,$'
+
+[cgo] go list -e -f '{{range .GoFiles}}{{.}},{{end}}' ./cgoflag
+[cgo] stdout '^cgoflag.go,$'
+
-- go.mod --
module m