]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/dist: skip testing packages without tests in short test mode
authorDmitri Shuralyov <dmitshur@golang.org>
Wed, 14 Jun 2023 00:14:26 +0000 (20:14 -0400)
committerGopher Robot <gobot@golang.org>
Thu, 27 Jul 2023 17:32:21 +0000 (17:32 +0000)
For short all.bash, we can keep the small speedup of 2-10 seconds by
skipping 'go test' on packages without tests. This is viable without
coverage loss since the Go release process is guaranteed to run long
tests for all first class ports.

For golang/go#60463.

Change-Id: Ib5a6bd357d757141bc8f1c1dec148a6565726587
Reviewed-on: https://go-review.googlesource.com/c/go/+/503115
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
src/cmd/dist/test.go

index 5a875ebf19e2eb9a4cd07fc0c2795c72dc673320..8fea9fc76eea03c08ae65e2dcbd93b06b1583d67 100644 (file)
@@ -605,12 +605,18 @@ func (t *tester) registerTests() {
                // that running 'go test std cmd' could find problems in.
                // (In race test mode, also set -tags=race.)
                //
-               // This includes vendored packages and other packages without
-               // tests so that 'dist test' finds if any of them don't build,
-               // have a problem reported by high-confidence vet checks that
-               // come with 'go test', and anything else 'go test' may check
-               // in the future. See go.dev/issue/60463.
+               // In long test mode, this includes vendored packages and other
+               // packages without tests so that 'dist test' finds if any of
+               // them don't build, have a problem reported by high-confidence
+               // vet checks that come with 'go test', and anything else it
+               // may check in the future. See go.dev/issue/60463.
                cmd := exec.Command(gorootBinGo, "list")
+               if t.short {
+                       // In short test mode, use a format string to only
+                       // list packages and commands that have tests.
+                       const format = "{{if (or .TestGoFiles .XTestGoFiles)}}{{.ImportPath}}{{end}}"
+                       cmd.Args = append(cmd.Args, "-f", format)
+               }
                if t.race {
                        cmd.Args = append(cmd.Args, "-tags=race")
                }