Skip to content

Commit

Permalink
runtime/pprof: disable TestMorestack on macOS under race detector
Browse files Browse the repository at this point in the history
This is failing but only under the race detector.
It doesn't really seem fair to expect pprof to find
specific profile events with the race detector slowing
everything down anyway.

Change-Id: I4b353d3d63944c87884d117e07d119b2c7bf4684
Reviewed-on: https://go-review.googlesource.com/c/go/+/294071
Trust: Russ Cox <[email protected]>
Reviewed-by: Cherry Zhang <[email protected]>
  • Loading branch information
rsc committed Feb 19, 2021
1 parent 01eb70e commit fa18f22
Showing 1 changed file with 14 additions and 11 deletions.
25 changes: 14 additions & 11 deletions src/runtime/pprof/pprof_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"context"
"fmt"
"internal/profile"
"internal/race"
"internal/testenv"
"io"
"math/big"
Expand Down Expand Up @@ -261,18 +262,13 @@ func parseProfile(t *testing.T, valBytes []byte, f func(uintptr, []*profile.Loca
// as interpreted by matches, and returns the parsed profile.
func testCPUProfile(t *testing.T, matches matchFunc, need []string, avoid []string, f func(dur time.Duration)) *profile.Profile {
switch runtime.GOOS {
case "darwin", "ios":
switch runtime.GOARCH {
case "arm64":
// nothing
default:
out, err := exec.Command("uname", "-a").CombinedOutput()
if err != nil {
t.Fatal(err)
}
vers := string(out)
t.Logf("uname -a: %v", vers)
case "darwin":
out, err := exec.Command("uname", "-a").CombinedOutput()
if err != nil {
t.Fatal(err)
}
vers := string(out)
t.Logf("uname -a: %v", vers)
case "plan9":
t.Skip("skipping on plan9")
}
Expand Down Expand Up @@ -588,6 +584,13 @@ func stackContainsAll(spec string, count uintptr, stk []*profile.Location, label
}

func TestMorestack(t *testing.T) {
if runtime.GOOS == "darwin" && race.Enabled {
// For whatever reason, using the race detector on macOS keeps us
// from finding the newstack/growstack calls in the profile.
// Not worth worrying about.
// https://build.golang.org/log/280d387327806e17c8aabeb38b9503dbbd942ed1
t.Skip("skipping on darwin race detector")
}
testCPUProfile(t, stackContainsAll, []string{"runtime.newstack,runtime/pprof.growstack"}, avoidFunctions(), func(duration time.Duration) {
t := time.After(duration)
c := make(chan bool)
Expand Down

0 comments on commit fa18f22

Please sign in to comment.