Skip to content

Commit

Permalink
cmd/dist: actually only compile tests with -compile-only
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
aclements committed Apr 25, 2023
1 parent 715d53c commit ce0b914
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 4 deletions.
4 changes: 1 addition & 3 deletions src/cmd/dist/test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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...)
}
Expand Down
1 change: 0 additions & 1 deletion src/testing/testing.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down

0 comments on commit ce0b914

Please sign in to comment.