mirror of
https://github.com/golang/go.git
synced 2025-05-05 23:53:05 +00:00
[release-branch.go1.23] runtime: skip TestCgoCallbackPprof on platforms with broken profiling
CL 658035 added TestCgoCallbackPprof, which is consistently failing on solaris. runtime/pprof maintains a list of platforms where CPU profiling does not work properly. Since this test requires CPU profiling, skip the this test on those platforms. For #72870. For #72876. For #72871. Change-Id: I6a6a636cbf6b16abcbba8771178fe1d001be9d9b Reviewed-on: https://go-review.googlesource.com/c/go/+/658415 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Michael Pratt <mpratt@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/658435 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@google.com> TryBot-Bypass: Dmitri Shuralyov <dmitshur@google.com>
This commit is contained in:
parent
c855149768
commit
2c0a0fc6b9
@ -522,3 +522,26 @@ func ParallelOn64Bit(t *testing.T) {
|
|||||||
}
|
}
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CPUProfilingBroken returns true if CPU profiling has known issues on this
|
||||||
|
// platform.
|
||||||
|
func CPUProfilingBroken() bool {
|
||||||
|
switch runtime.GOOS {
|
||||||
|
case "plan9":
|
||||||
|
// Profiling unimplemented.
|
||||||
|
return true
|
||||||
|
case "aix":
|
||||||
|
// See https://golang.org/issue/45170.
|
||||||
|
return true
|
||||||
|
case "ios", "dragonfly", "netbsd", "illumos", "solaris":
|
||||||
|
// See https://golang.org/issue/13841.
|
||||||
|
return true
|
||||||
|
case "openbsd":
|
||||||
|
if runtime.GOARCH == "arm" || runtime.GOARCH == "arm64" {
|
||||||
|
// See https://golang.org/issue/13841.
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
@ -82,6 +82,9 @@ func TestCgoCallbackPprof(t *testing.T) {
|
|||||||
case "plan9", "windows":
|
case "plan9", "windows":
|
||||||
t.Skipf("no pthreads on %s", runtime.GOOS)
|
t.Skipf("no pthreads on %s", runtime.GOOS)
|
||||||
}
|
}
|
||||||
|
if testenv.CPUProfilingBroken() {
|
||||||
|
t.Skip("skipping on platform with broken profiling")
|
||||||
|
}
|
||||||
|
|
||||||
got := runTestProg(t, "testprogcgo", "CgoCallbackPprof")
|
got := runTestProg(t, "testprogcgo", "CgoCallbackPprof")
|
||||||
if want := "OK\n"; got != want {
|
if want := "OK\n"; got != want {
|
||||||
|
@ -415,27 +415,6 @@ func parseProfile(t *testing.T, valBytes []byte, f func(uintptr, []*profile.Loca
|
|||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
func cpuProfilingBroken() bool {
|
|
||||||
switch runtime.GOOS {
|
|
||||||
case "plan9":
|
|
||||||
// Profiling unimplemented.
|
|
||||||
return true
|
|
||||||
case "aix":
|
|
||||||
// See https://golang.org/issue/45170.
|
|
||||||
return true
|
|
||||||
case "ios", "dragonfly", "netbsd", "illumos", "solaris":
|
|
||||||
// See https://golang.org/issue/13841.
|
|
||||||
return true
|
|
||||||
case "openbsd":
|
|
||||||
if runtime.GOARCH == "arm" || runtime.GOARCH == "arm64" {
|
|
||||||
// See https://golang.org/issue/13841.
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
// testCPUProfile runs f under the CPU profiler, checking for some conditions specified by need,
|
// testCPUProfile runs f under the CPU profiler, checking for some conditions specified by need,
|
||||||
// as interpreted by matches, and returns the parsed profile.
|
// as interpreted by matches, and returns the parsed profile.
|
||||||
func testCPUProfile(t *testing.T, matches profileMatchFunc, f func(dur time.Duration)) *profile.Profile {
|
func testCPUProfile(t *testing.T, matches profileMatchFunc, f func(dur time.Duration)) *profile.Profile {
|
||||||
@ -453,7 +432,7 @@ func testCPUProfile(t *testing.T, matches profileMatchFunc, f func(dur time.Dura
|
|||||||
t.Skip("skipping on wasip1")
|
t.Skip("skipping on wasip1")
|
||||||
}
|
}
|
||||||
|
|
||||||
broken := cpuProfilingBroken()
|
broken := testenv.CPUProfilingBroken()
|
||||||
|
|
||||||
deadline, ok := t.Deadline()
|
deadline, ok := t.Deadline()
|
||||||
if broken || !ok {
|
if broken || !ok {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user