| // Copyright 2020 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 benchmark | |
| import ( | |
| "testing" | |
| ) | |
| func TestMakeBenchString(t *testing.T) { | |
| tests := []struct { | |
| have, want string | |
| }{ | |
| {"foo", "BenchmarkFoo"}, | |
| {" foo ", "BenchmarkFoo"}, | |
| {"foo bar", "BenchmarkFooBar"}, | |
| } | |
| for i, test := range tests { | |
| if v := makeBenchString(test.have); test.want != v { | |
| t.Errorf("test[%d] makeBenchString(%q) == %q, want %q", i, test.have, v, test.want) | |
| } | |
| } | |
| } | |
| func TestPProfFlag(t *testing.T) { | |
| tests := []struct { | |
| name string | |
| want bool | |
| }{ | |
| {"", false}, | |
| {"foo", true}, | |
| } | |
| for i, test := range tests { | |
| b := New(GC, test.name) | |
| if v := b.shouldPProf(); test.want != v { | |
| t.Errorf("test[%d] shouldPProf() == %v, want %v", i, v, test.want) | |
| } | |
| } | |
| } | |
| func TestPProfNames(t *testing.T) { | |
| want := "foo_BenchmarkTest.cpuprof" | |
| if v := makePProfFilename("foo", "test", "cpuprof"); v != want { | |
| t.Errorf("makePProfFilename() == %q, want %q", v, want) | |
| } | |
| } | |
| // Ensure that public APIs work with a nil Metrics object. | |
| func TestNilBenchmarkObject(t *testing.T) { | |
| var b *Metrics | |
| b.Start("TEST") | |
| b.Report(nil) | |
| } |