github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/cmd/link/benchmark/bench_test.go (about)

     1  // Copyright 2020 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.
     4  
     5  package benchmark
     6  
     7  import (
     8  	"testing"
     9  )
    10  
    11  func TestMakeBenchString(t *testing.T) {
    12  	tests := []struct {
    13  		have, want string
    14  	}{
    15  		{"foo", "BenchmarkFoo"},
    16  		{"  foo  ", "BenchmarkFoo"},
    17  		{"foo bar", "BenchmarkFooBar"},
    18  	}
    19  	for i, test := range tests {
    20  		if v := makeBenchString(test.have); test.want != v {
    21  			t.Errorf("test[%d] makeBenchString(%q) == %q, want %q", i, test.have, v, test.want)
    22  		}
    23  	}
    24  }
    25  
    26  func TestPProfFlag(t *testing.T) {
    27  	tests := []struct {
    28  		name string
    29  		want bool
    30  	}{
    31  		{"", false},
    32  		{"foo", true},
    33  	}
    34  	for i, test := range tests {
    35  		b := New(GC, test.name)
    36  		if v := b.shouldPProf(); test.want != v {
    37  			t.Errorf("test[%d] shouldPProf() == %v, want %v", i, v, test.want)
    38  		}
    39  	}
    40  }
    41  
    42  func TestPProfNames(t *testing.T) {
    43  	want := "foo_BenchmarkTest.cpuprof"
    44  	if v := makePProfFilename("foo", "test", "cpuprof"); v != want {
    45  		t.Errorf("makePProfFilename() == %q, want %q", v, want)
    46  	}
    47  }
    48  
    49  // Ensure that public APIs work with a nil Metrics object.
    50  func TestNilBenchmarkObject(t *testing.T) {
    51  	var b *Metrics
    52  	b.Start("TEST")
    53  	b.Report(nil)
    54  }