diff options
| author | Russ Cox <rsc@golang.org> | 2014-09-17 14:49:32 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2014-09-17 14:49:32 -0400 |
| commit | e19d8a47d1803a19446c658712c4bdff84d0da31 (patch) | |
| tree | 2e7903e0a12d21606597ecc82c38546e11506101 /src/testing/allocs_test.go | |
| parent | a883f117a9dda5f218bb08dc1c4e181ab1679e11 (diff) | |
| download | go-e19d8a47d1803a19446c658712c4bdff84d0da31.tar.xz | |
runtime: account for tiny allocs, for testing.AllocsPerRun
Fixes #8734.
LGTM=r, bradfitz, dvyukov
R=bradfitz, r, dvyukov
CC=golang-codereviews, iant, khr
https://golang.org/cl/143150043
Diffstat (limited to 'src/testing/allocs_test.go')
| -rw-r--r-- | src/testing/allocs_test.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/testing/allocs_test.go b/src/testing/allocs_test.go new file mode 100644 index 0000000000..ec17daa2b1 --- /dev/null +++ b/src/testing/allocs_test.go @@ -0,0 +1,29 @@ +// Copyright 2014 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 testing_test + +import "testing" + +var global interface{} + +var allocsPerRunTests = []struct { + name string + fn func() + allocs float64 +}{ + {"alloc *byte", func() { global = new(*byte) }, 1}, + {"alloc complex128", func() { global = new(complex128) }, 1}, + {"alloc float64", func() { global = new(float64) }, 1}, + {"alloc int32", func() { global = new(int32) }, 1}, + {"alloc byte", func() { global = new(byte) }, 1}, +} + +func TestAllocsPerRun(t *testing.T) { + for _, tt := range allocsPerRunTests { + if allocs := testing.AllocsPerRun(100, tt.fn); allocs != tt.allocs { + t.Errorf("AllocsPerRun(100, %s) = %v, want %v", tt.name, allocs, tt.allocs) + } + } +} |
