mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: check that pprof accepts but doesn't need executable
The profiles are self-contained now. Check that they work by themselves in the tests that invoke pprof, but also keep checking that the old command lines work. Change-Id: I24c74b5456f0b50473883c3640625c6612f72309 Reviewed-on: https://go-review.googlesource.com/37166 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Michael Matloob <matloob@golang.org>
This commit is contained in:
parent
0b8c983ece
commit
8c24e52247
2 changed files with 50 additions and 39 deletions
|
|
@ -476,28 +476,33 @@ func TestMemPprof(t *testing.T) {
|
|||
fn := strings.TrimSpace(string(got))
|
||||
defer os.Remove(fn)
|
||||
|
||||
cmd := testEnv(exec.Command(testenv.GoToolPath(t), "tool", "pprof", "-alloc_space", "-top", exe, fn))
|
||||
|
||||
found := false
|
||||
for i, e := range cmd.Env {
|
||||
if strings.HasPrefix(e, "PPROF_TMPDIR=") {
|
||||
cmd.Env[i] = "PPROF_TMPDIR=" + os.TempDir()
|
||||
found = true
|
||||
break
|
||||
for try := 0; try < 2; try++ {
|
||||
cmd := testEnv(exec.Command(testenv.GoToolPath(t), "tool", "pprof", "-alloc_space", "-top"))
|
||||
// Check that pprof works both with and without explicit executable on command line.
|
||||
if try == 0 {
|
||||
cmd.Args = append(cmd.Args, exe, fn)
|
||||
} else {
|
||||
cmd.Args = append(cmd.Args, fn)
|
||||
}
|
||||
found := false
|
||||
for i, e := range cmd.Env {
|
||||
if strings.HasPrefix(e, "PPROF_TMPDIR=") {
|
||||
cmd.Env[i] = "PPROF_TMPDIR=" + os.TempDir()
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
cmd.Env = append(cmd.Env, "PPROF_TMPDIR="+os.TempDir())
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
cmd.Env = append(cmd.Env, "PPROF_TMPDIR="+os.TempDir())
|
||||
}
|
||||
|
||||
top, err := cmd.CombinedOutput()
|
||||
t.Logf("%s", top)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if !bytes.Contains(top, []byte("MemProf")) {
|
||||
t.Error("missing MemProf in pprof output")
|
||||
top, err := cmd.CombinedOutput()
|
||||
t.Logf("%s:\n%s", cmd.Args, top)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
} else if !bytes.Contains(top, []byte("MemProf")) {
|
||||
t.Error("missing MemProf in pprof output")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue