Skip to content

Commit

Permalink
cmd/go: list test packages even when the main package has an error
Browse files Browse the repository at this point in the history
List test packages (when list is run with -e) even when the main package
has an error. This is useful to get complete data for go/packages.

Fixes golang#37971

Change-Id: If6ba0270a319ea5e003d1ed8b1ad39e479e95509
Reviewed-on: https://go-review.googlesource.com/c/go/+/224944
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
  • Loading branch information
matloob committed Mar 24, 2020
1 parent fb2a634 commit 6a9d850
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 3 deletions.
3 changes: 0 additions & 3 deletions src/cmd/go/internal/list/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -472,9 +472,6 @@ func runList(cmd *base.Command, args []string) {
c := cache.Default()
// Add test binaries to packages to be listed.
for _, p := range pkgs {
if p.Error != nil {
continue
}
if len(p.TestGoFiles)+len(p.XTestGoFiles) > 0 {
var pmain, ptest, pxtest *load.Package
var err error
Expand Down
26 changes: 26 additions & 0 deletions src/cmd/go/testdata/script/load_test_pkg_err.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Tests issue 37971. Check that tests are still loaded even when the package has an error.

go list -e -test d
cmp stdout want_stdout

go list -e -test -deps d
stdout golang.org/fake/d

-- want_stdout --
d
d.test
d_test [d.test]
-- d/d.go --
package d

import "net/http"

const d = http.MethodGet
func Get() string { return d; }
-- d/d2.go --
-- d/d_test.go --
package d_test

import "testing"
import "golang.org/fake/d"
func TestD(t *testing.T) { d.Get(); }

0 comments on commit 6a9d850

Please sign in to comment.