internal/trace: run children in race mode during race testing

This would have caught #65607.

On my machine:

internal/trace/v2:               ~13s
internal/trace/v2: -short:        ~4s
internal/trace/v2: -race -short: ~20s
internal/trace/v2: -race:        ~46s

For #65607.

Change-Id: I03a555ebaf8c761c98a82b6d35fa16d7a99aa9e3
Reviewed-on: https://go-review.googlesource.com/c/go/+/562998
Auto-Submit: Michael Pratt <mpratt@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
This commit is contained in:
Michael Pratt 2024-02-09 14:06:39 -05:00 committed by Gopher Robot
parent 09c62a86a9
commit 644bc4a3e7
1 changed files with 6 additions and 1 deletions

View File

@ -8,6 +8,7 @@ import (
"bufio"
"bytes"
"fmt"
"internal/race"
"internal/testenv"
"internal/trace/v2"
"internal/trace/v2/testtrace"
@ -541,7 +542,11 @@ func testTraceProg(t *testing.T, progName string, extra func(t *testing.T, trace
testName := progName
runTest := func(t *testing.T, stress bool) {
// Run the program and capture the trace, which is always written to stdout.
cmd := testenv.Command(t, testenv.GoToolPath(t), "run", testPath)
cmd := testenv.Command(t, testenv.GoToolPath(t), "run")
if race.Enabled {
cmd.Args = append(cmd.Args, "-race")
}
cmd.Args = append(cmd.Args, testPath)
cmd.Env = append(os.Environ(), "GOEXPERIMENT=exectracer2")
if stress {
// Advance a generation constantly.