aboutsummaryrefslogtreecommitdiff
path: root/src/internal/trace/trace_test.go
diff options
context:
space:
mode:
authorFelix Geisendörfer <felix.geisendoerfer@datadoghq.com>2024-08-27 21:07:57 +0200
committerMichael Knyszek <mknyszek@google.com>2024-09-23 15:02:42 +0000
commit6eb40d158a80985460afc3924c4239dc97a34ae0 (patch)
tree3df8096e85d0add2cab2ae19007c3733f16e26f8 /src/internal/trace/trace_test.go
parent89a5a60da623ca9e7f91a93cd34b35785e30ab7e (diff)
downloadgo-6eb40d158a80985460afc3924c4239dc97a34ae0.tar.xz
cmd/trace,internal/trace,runtime: refactor to access frames via range over func
Change-Id: Id0be0eb35ae8560bd5338ec296a086aaf4617db0 Reviewed-on: https://go-review.googlesource.com/c/go/+/608856 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com>
Diffstat (limited to 'src/internal/trace/trace_test.go')
-rw-r--r--src/internal/trace/trace_test.go18
1 files changed, 6 insertions, 12 deletions
diff --git a/src/internal/trace/trace_test.go b/src/internal/trace/trace_test.go
index dcf9d05fb4..facac47eef 100644
--- a/src/internal/trace/trace_test.go
+++ b/src/internal/trace/trace_test.go
@@ -16,6 +16,7 @@ import (
"os"
"path/filepath"
"runtime"
+ "slices"
"strings"
"testing"
)
@@ -148,12 +149,11 @@ func TestTraceCPUProfile(t *testing.T) {
if hogRegion != nil && ev.Goroutine() == hogRegion.Goroutine() {
traceSamples++
var fns []string
- ev.Stack().Frames()(func(frame trace.StackFrame) bool {
+ for frame := range ev.Stack().Frames() {
if frame.Func != "runtime.goexit" {
fns = append(fns, fmt.Sprintf("%s:%d", frame.Func, frame.Line))
}
- return true
- })
+ }
stack := strings.Join(fns, "|")
traceStacks[stack]++
}
@@ -436,21 +436,15 @@ func TestTraceStacks(t *testing.T) {
}...)
}
stackMatches := func(stk trace.Stack, frames []frame) bool {
- i := 0
- match := true
- stk.Frames()(func(f trace.StackFrame) bool {
+ for i, f := range slices.Collect(stk.Frames()) {
if f.Func != frames[i].fn {
- match = false
return false
}
if line := uint64(frames[i].line); line != 0 && line != f.Line {
- match = false
return false
}
- i++
- return true
- })
- return match
+ }
+ return true
}
r, err := trace.NewReader(bytes.NewReader(tb))
if err != nil {