1 // Copyright 2014 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 testing_test 6 7 import "testing" 8 9 var global interface{} 10 11 var allocsPerRunTests = []struct { 12 name string 13 fn func() 14 allocs float64 15 }{ 16 {"alloc *byte", func() { global = new(*byte) }, 1}, 17 {"alloc complex128", func() { global = new(complex128) }, 1}, 18 {"alloc float64", func() { global = new(float64) }, 1}, 19 {"alloc int32", func() { global = new(int32) }, 1}, 20 {"alloc byte", func() { global = new(byte) }, 1}, 21 } 22 23 func TestAllocsPerRun(t *testing.T) { 24 for _, tt := range allocsPerRunTests { 25 if allocs := testing.AllocsPerRun(100, tt.fn); allocs != tt.allocs { 26 t.Errorf("AllocsPerRun(100, %s) = %v, want %v", tt.name, allocs, tt.allocs) 27 } 28 } 29 } 30