cmd/dist: only test packages and commands that have tests

Change-Id: I7aeb9fef3739c17c03fdaadbe00cd945ec9c0d72
Reviewed-on: https://go-review.googlesource.com/10492
Run-TryBot: Andrew Gerrand <adg@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go
index f5a0dc5..2c80aa6 100644
--- a/src/cmd/dist/test.go
+++ b/src/cmd/dist/test.go
@@ -395,7 +395,9 @@
 	// of running `go list std cmd` if we're running a specific test.
 	// Now we know the names of all the other tests registered so far.
 	if !t.wantSpecificRegisteredTest() {
-		all, err := exec.Command("go", "list", "std", "cmd").Output()
+		// Use a format string to only list packages and commands that have tests.
+		const format = "{{if (or .TestGoFiles .XTestGoFiles)}}{{.ImportPath}}{{end}}"
+		all, err := exec.Command("go", "list", "-f", format, "std", "cmd").Output()
 		if err != nil {
 			log.Fatalf("Error running go list std cmd: %v", err)
 		}