aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Pratt <mpratt@google.com>2026-03-27 16:13:26 -0400
committerGopher Robot <gobot@golang.org>2026-03-27 15:59:18 -0700
commit733122c7cdff477f797fd8fd92524665a80b0852 (patch)
treee03ba984067f3af7a8ffe8a5f1fecca1ab5399ea /src
parent5a0e0838232d7aa7c82b5a33d89458c01ccd4ffc (diff)
downloadgo-733122c7cdff477f797fd8fd92524665a80b0852.tar.xz
runtime/race: use subtests for TestOutput
For #78394. Change-Id: I4ef1a299f37e2b6532e2008378aca3aa6a6a6964 Reviewed-on: https://go-review.googlesource.com/c/go/+/760308 Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Michael Pratt <mpratt@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/runtime/race/output_test.go104
1 files changed, 52 insertions, 52 deletions
diff --git a/src/runtime/race/output_test.go b/src/runtime/race/output_test.go
index 0d5c9096f0..94ac7f0963 100644
--- a/src/runtime/race/output_test.go
+++ b/src/runtime/race/output_test.go
@@ -26,63 +26,63 @@ func TestOutput(t *testing.T) {
}
for _, test := range tests {
- if test.goos != "" && test.goos != runtime.GOOS {
- t.Logf("test %v runs only on %v, skipping: ", test.name, test.goos)
- continue
- }
- dir := t.TempDir()
- source := "main.go"
- if test.run == "test" {
- source = "main_test.go"
- }
- src := filepath.Join(dir, source)
- f, err := os.Create(src)
- if err != nil {
- t.Fatalf("failed to create file: %v", err)
- }
- _, err = f.WriteString(test.source)
- if err != nil {
- f.Close()
- t.Fatalf("failed to write: %v", err)
- }
- if err := f.Close(); err != nil {
- t.Fatalf("failed to close file: %v", err)
- }
+ t.Run(test.name, func(t *testing.T) {
+ if test.goos != "" && test.goos != runtime.GOOS {
+ t.Skipf("runs only on %v", test.goos)
+ }
+ dir := t.TempDir()
+ source := "main.go"
+ if test.run == "test" {
+ source = "main_test.go"
+ }
+ src := filepath.Join(dir, source)
+ f, err := os.Create(src)
+ if err != nil {
+ t.Fatalf("failed to create file: %v", err)
+ }
+ _, err = f.WriteString(test.source)
+ if err != nil {
+ f.Close()
+ t.Fatalf("failed to write: %v", err)
+ }
+ if err := f.Close(); err != nil {
+ t.Fatalf("failed to close file: %v", err)
+ }
- cmd := exec.Command(testenv.GoToolPath(t), test.run, "-race", "-pkgdir="+pkgdir, src)
- // GODEBUG spoils program output, GOMAXPROCS makes it flaky.
- for _, env := range os.Environ() {
- if strings.HasPrefix(env, "GODEBUG=") ||
- strings.HasPrefix(env, "GOMAXPROCS=") ||
- strings.HasPrefix(env, "GORACE=") {
- continue
+ cmd := exec.Command(testenv.GoToolPath(t), test.run, "-race", "-pkgdir="+pkgdir, src)
+ // GODEBUG spoils program output, GOMAXPROCS makes it flaky.
+ for _, env := range os.Environ() {
+ if strings.HasPrefix(env, "GODEBUG=") ||
+ strings.HasPrefix(env, "GOMAXPROCS=") ||
+ strings.HasPrefix(env, "GORACE=") {
+ continue
+ }
+ cmd.Env = append(cmd.Env, env)
}
- cmd.Env = append(cmd.Env, env)
- }
- cmd.Env = append(cmd.Env,
- "GOMAXPROCS=1", // see comment in race_test.go
- "GORACE="+test.gorace,
- )
- got, _ := cmd.CombinedOutput()
- matched := false
- for _, re := range test.re {
- if regexp.MustCompile(re).MatchString(string(got)) {
- matched = true
- break
+ cmd.Env = append(cmd.Env,
+ "GOMAXPROCS=1", // see comment in race_test.go
+ "GORACE="+test.gorace,
+ )
+ got, _ := cmd.CombinedOutput()
+ matched := false
+ for _, re := range test.re {
+ if regexp.MustCompile(re).MatchString(string(got)) {
+ matched = true
+ break
+ }
}
- }
- if !matched {
- exp := fmt.Sprintf("expect:\n%v\n", test.re[0])
- if len(test.re) > 1 {
- exp = fmt.Sprintf("expected one of %d patterns:\n",
- len(test.re))
- for k, re := range test.re {
- exp += fmt.Sprintf("pattern %d:\n%v\n", k, re)
+ if !matched {
+ exp := fmt.Sprintf("expect:\n%v\n", test.re[0])
+ if len(test.re) > 1 {
+ exp = fmt.Sprintf("expected one of %d patterns:\n",
+ len(test.re))
+ for k, re := range test.re {
+ exp += fmt.Sprintf("pattern %d:\n%v\n", k, re)
+ }
}
+ t.Fatalf("failed test case: %sgot:\n%s", exp, got)
}
- t.Fatalf("failed test case %v, %sgot:\n%s",
- test.name, exp, got)
- }
+ })
}
}