diff options
| author | Michael Pratt <mpratt@google.com> | 2026-03-27 16:13:26 -0400 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2026-03-27 15:59:18 -0700 |
| commit | 733122c7cdff477f797fd8fd92524665a80b0852 (patch) | |
| tree | e03ba984067f3af7a8ffe8a5f1fecca1ab5399ea /src | |
| parent | 5a0e0838232d7aa7c82b5a33d89458c01ccd4ffc (diff) | |
| download | go-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.go | 104 |
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) - } + }) } } |
