aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/trace/trace_stack_test.go
diff options
context:
space:
mode:
authorMichael Anthony Knyszek <mknyszek@google.com>2023-05-08 22:29:52 +0000
committerMichael Knyszek <mknyszek@google.com>2023-11-10 15:49:59 +0000
commit43ffe2a89230553efc9fc915e944b91438d9f1fd (patch)
treed96cda88c4247a2a9b4534f518bb52630ae92357 /src/runtime/trace/trace_stack_test.go
parentf7c5cbb82087c55aa82081e931e0142783700ce8 (diff)
downloadgo-43ffe2a89230553efc9fc915e944b91438d9f1fd.tar.xz
runtime: add execution tracer v2 behind GOEXPERIMENT=exectracer2
This change mostly implements the design described in #60773 and includes a new scalable parser for the new trace format, available in internal/trace/v2. I'll leave this commit message short because this is clearly an enormous CL with a lot of detail. This change does not hook up the new tracer into cmd/trace yet. A follow-up CL will handle that. For #60773. Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest,gotip-linux-amd64-longtest-race Change-Id: I5d2aca2cc07580ed3c76a9813ac48ec96b157de0 Reviewed-on: https://go-review.googlesource.com/c/go/+/494187 Reviewed-by: Michael Pratt <mpratt@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'src/runtime/trace/trace_stack_test.go')
-rw-r--r--src/runtime/trace/trace_stack_test.go17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/runtime/trace/trace_stack_test.go b/src/runtime/trace/trace_stack_test.go
index be3adc9801..f427e578dc 100644
--- a/src/runtime/trace/trace_stack_test.go
+++ b/src/runtime/trace/trace_stack_test.go
@@ -7,6 +7,7 @@ package trace_test
import (
"bytes"
"fmt"
+ "internal/goexperiment"
"internal/testenv"
"internal/trace"
"net"
@@ -152,11 +153,11 @@ func TestTraceSymbolize(t *testing.T) {
{"runtime/trace_test.TestTraceSymbolize.func1", 0},
}},
{trace.EvGoSched, []frame{
- {"runtime/trace_test.TestTraceSymbolize", 111},
+ {"runtime/trace_test.TestTraceSymbolize", 112},
{"testing.tRunner", 0},
}},
{trace.EvGoCreate, []frame{
- {"runtime/trace_test.TestTraceSymbolize", 40},
+ {"runtime/trace_test.TestTraceSymbolize", 41},
{"testing.tRunner", 0},
}},
{trace.EvGoStop, []frame{
@@ -177,7 +178,7 @@ func TestTraceSymbolize(t *testing.T) {
}},
{trace.EvGoUnblock, []frame{
{"runtime.chansend1", 0},
- {"runtime/trace_test.TestTraceSymbolize", 113},
+ {"runtime/trace_test.TestTraceSymbolize", 114},
{"testing.tRunner", 0},
}},
{trace.EvGoBlockSend, []frame{
@@ -186,7 +187,7 @@ func TestTraceSymbolize(t *testing.T) {
}},
{trace.EvGoUnblock, []frame{
{"runtime.chanrecv1", 0},
- {"runtime/trace_test.TestTraceSymbolize", 114},
+ {"runtime/trace_test.TestTraceSymbolize", 115},
{"testing.tRunner", 0},
}},
{trace.EvGoBlockSelect, []frame{
@@ -195,7 +196,7 @@ func TestTraceSymbolize(t *testing.T) {
}},
{trace.EvGoUnblock, []frame{
{"runtime.selectgo", 0},
- {"runtime/trace_test.TestTraceSymbolize", 115},
+ {"runtime/trace_test.TestTraceSymbolize", 116},
{"testing.tRunner", 0},
}},
{trace.EvGoBlockSync, []frame{
@@ -214,7 +215,7 @@ func TestTraceSymbolize(t *testing.T) {
{trace.EvGoUnblock, []frame{
{"sync.(*WaitGroup).Add", 0},
{"sync.(*WaitGroup).Done", 0},
- {"runtime/trace_test.TestTraceSymbolize", 120},
+ {"runtime/trace_test.TestTraceSymbolize", 121},
{"testing.tRunner", 0},
}},
{trace.EvGoBlockCond, []frame{
@@ -289,6 +290,10 @@ func TestTraceSymbolize(t *testing.T) {
func skipTraceSymbolizeTestIfNecessary(t *testing.T) {
testenv.MustHaveGoBuild(t)
+ if goexperiment.ExecTracer2 {
+ // An equivalent test exists in internal/trace/v2.
+ t.Skip("skipping because this test is incompatible with the new tracer")
+ }
if IsEnabled() {
t.Skip("skipping because -test.trace is set")
}