1 // Copyright 2023 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 // Tests user tasks, regions, and logging.
20 bgctx, cancel := context.WithCancel(context.Background())
23 // Create a pre-existing region. This won't end up in the trace.
24 preExistingRegion := trace.StartRegion(bgctx, "pre-existing region")
27 if err := trace.Start(os.Stdout); err != nil {
28 log.Fatalf("failed to start tracing: %v", err)
31 // Beginning of traced execution.
33 ctx, task := trace.NewTask(bgctx, "task0") // EvUserTaskCreate("task0")
34 trace.StartRegion(ctx, "task0 region")
39 defer task.End() // EvUserTaskEnd("task0")
41 trace.StartRegion(ctx, "unended region")
43 trace.WithRegion(ctx, "region0", func() {
44 // EvUserRegionBegin("region0", start)
45 trace.WithRegion(ctx, "region1", func() {
46 trace.Log(ctx, "key0", "0123456789abcdef") // EvUserLog("task0", "key0", "0....f")
48 // EvUserRegionEnd("region0", end)
53 preExistingRegion.End()
54 postExistingRegion := trace.StartRegion(bgctx, "post-existing region")
56 // End of traced execution.
59 postExistingRegion.End()