]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/dist: actually only compile tests with -compile-only
authorAustin Clements <austin@google.com>
Mon, 24 Apr 2023 18:26:39 +0000 (14:26 -0400)
committerAustin Clements <austin@google.com>
Tue, 25 Apr 2023 19:49:28 +0000 (19:49 +0000)
Currently, "dist test -compile-only" still runs the test binaries,
just with -run=^$ so no tests are run. It does this because, until
recently, "go test -c" would fail if passed multiple test packages.
But this has some unexpected consequences: init code still runs,
TestMain still runs, and we generally can't test cross-compiling of
tests.

Now that #15513 is fixed, we can pass multiple packages to "go test
-c". Hence, this CL make dist just use "go test -c" as one would
expect.

Found in the course of working on #37486, though it doesn't really
affect that.

Change-Id: If7d3c72c9e0f74d4ea0dd422411e5ee93b314be4
Reviewed-on: https://go-review.googlesource.com/c/go/+/488275
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Austin Clements <austin@google.com>

src/cmd/dist/test.go
src/testing/testing.go

index f58b49e0282d63e7f9dd24b4eb23ed12547d1467..cc96223aa67d57a72671df173618010aed9ba8e8 100644 (file)
@@ -317,9 +317,7 @@ func (opts *goTest) bgCommand(t *tester) *exec.Cmd {
        // Combine the flags.
        args := append([]string{"test"}, build...)
        if t.compileOnly {
-               // We can't pass -c with multiple packages, so run the tests but
-               // tell them not to do anything.
-               args = append(args, "-run=^$")
+               args = append(args, "-c", "-o", os.DevNull)
        } else {
                args = append(args, run...)
        }
index c970d05256ff2cb0f0dce88b504a0d74b57e4ed6..fcf7048f23404db6d21835c8e17da539f912556d 100644 (file)
@@ -1934,7 +1934,6 @@ func (m *M) Run() (code int) {
                                // in which case every test will run nothing and succeed,
                                // with no obvious way to detect this problem (since no tests are running).
                                // So make 'no tests to run' a hard failure when testing package testing itself.
-                               // The compile-only builders use -run=^$ to run no tests, so allow that.
                                fmt.Print(chatty.prefix(), "FAIL: package testing must run tests\n")
                                testOk = false
                        }