mirror of https://github.com/golang/go.git
cmd/go: process -debug-trace flag for cmd/test and cmd/vet
These commands are build-like commands that do their own flag processing, so the value of debug-trace isn't available until the command starts running. Start tracing in the cmd's run function. Updates #38714 Change-Id: I4d633e6ee907bf09feac52c2aff3daceb9b20e12 Reviewed-on: https://go-review.googlesource.com/c/go/+/248324 Run-TryBot: Michael Matloob <matloob@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
parent
38fea3a4ec
commit
ebccba7954
|
|
@ -31,6 +31,7 @@ import (
|
|||
"cmd/go/internal/lockedfile"
|
||||
"cmd/go/internal/modload"
|
||||
"cmd/go/internal/str"
|
||||
"cmd/go/internal/trace"
|
||||
"cmd/go/internal/work"
|
||||
"cmd/internal/test2json"
|
||||
)
|
||||
|
|
@ -571,6 +572,23 @@ func runTest(ctx context.Context, cmd *base.Command, args []string) {
|
|||
|
||||
pkgArgs, testArgs = testFlags(args)
|
||||
|
||||
if cfg.DebugTrace != "" {
|
||||
var close func() error
|
||||
var err error
|
||||
ctx, close, err = trace.Start(ctx, cfg.DebugTrace)
|
||||
if err != nil {
|
||||
base.Fatalf("failed to start trace: %v", err)
|
||||
}
|
||||
defer func() {
|
||||
if err := close(); err != nil {
|
||||
base.Fatalf("failed to stop trace: %v", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
ctx, span := trace.StartSpan(ctx, fmt.Sprint("Running ", cmd.Name(), " command"))
|
||||
defer span.Done()
|
||||
|
||||
work.FindExecCmd() // initialize cached result
|
||||
|
||||
work.BuildInit()
|
||||
|
|
|
|||
|
|
@ -6,12 +6,16 @@
|
|||
package vet
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
|
||||
"cmd/go/internal/base"
|
||||
"cmd/go/internal/cfg"
|
||||
"cmd/go/internal/load"
|
||||
"cmd/go/internal/modload"
|
||||
"cmd/go/internal/trace"
|
||||
"cmd/go/internal/work"
|
||||
"context"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// Break init loop.
|
||||
|
|
@ -54,6 +58,23 @@ func runVet(ctx context.Context, cmd *base.Command, args []string) {
|
|||
|
||||
vetFlags, pkgArgs := vetFlags(args)
|
||||
|
||||
if cfg.DebugTrace != "" {
|
||||
var close func() error
|
||||
var err error
|
||||
ctx, close, err = trace.Start(ctx, cfg.DebugTrace)
|
||||
if err != nil {
|
||||
base.Fatalf("failed to start trace: %v", err)
|
||||
}
|
||||
defer func() {
|
||||
if err := close(); err != nil {
|
||||
base.Fatalf("failed to stop trace: %v", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
ctx, span := trace.StartSpan(ctx, fmt.Sprint("Running ", cmd.Name(), " command"))
|
||||
defer span.Done()
|
||||
|
||||
work.BuildInit()
|
||||
work.VetFlags = vetFlags
|
||||
if len(vetFlags) > 0 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue