// Copyright 2023 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package pprof_test import ( "bytes" "compress/gzip" "io" "log" "os" "testing" "time" "golang.org/x/tools/internal/pprof" ) func TestTotalTime(t *testing.T) { // $ go tool pprof testdata/sample.pprof <&- 2>&1 | grep Total // Duration: 11.10s, Total samples = 27.59s (248.65%) const ( filename = "testdata/sample.pprof" want = time.Duration(27590003550) ) profGz, err := os.ReadFile(filename) if err != nil { t.Fatal(err) } rd, err := gzip.NewReader(bytes.NewReader(profGz)) if err != nil { t.Fatal(err) } payload, err := io.ReadAll(rd) if err != nil { t.Fatal(err) } got, err := pprof.TotalTime(payload) if err != nil { log.Fatal(err) } if got != want { t.Fatalf("TotalTime(%q): got %v (%d), want %v (%d)", filename, got, got, want, want) } }