Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(344)

Delta Between Two Patch Sets: src/pkg/strconv/strconv_test.go

Issue 7002055: code review 7002055: testing: add AllocsPerRun
Left Patch Set: diff -r f4e5087c1c19 http://code.google.com/p/go Created 11 years, 3 months ago
Right Patch Set: diff -r f50a112bfe3b http://code.google.com/p/go Created 11 years, 2 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Right: Side by side diff | Download
LEFTRIGHT
(no file at all)
1 // Copyright 2012 The Go Authors. All rights reserved. 1 // Copyright 2012 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style 2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file. 3 // license that can be found in the LICENSE file.
4 4
5 package strconv_test 5 package strconv_test
6 6
7 import ( 7 import (
8 "runtime"
9 . "strconv" 8 . "strconv"
10 "strings" 9 "strings"
11 "testing" 10 "testing"
12 ) 11 )
13 12
14 var ( 13 var (
15 globalBuf [64]byte 14 globalBuf [64]byte
16 nextToOne = "1.00000000000000011102230246251565404236316680908203125" + strings.Repeat("0", 10000) + "1" 15 nextToOne = "1.00000000000000011102230246251565404236316680908203125" + strings.Repeat("0", 10000) + "1"
17 16
18 mallocTest = []struct { 17 mallocTest = []struct {
(...skipping 18 matching lines...) Expand all
37 {0, `ParseFloat("1.000000000000000111022302462515654042363166809 082031251", 64)`, func() { 36 {0, `ParseFloat("1.000000000000000111022302462515654042363166809 082031251", 64)`, func() {
38 ParseFloat("1.000000000000000111022302462515654042363166 809082031251", 64) 37 ParseFloat("1.000000000000000111022302462515654042363166 809082031251", 64)
39 }}, 38 }},
40 {0, `ParseFloat("1.000000000000000111022302462515654042363166809 0820312500...001", 64)`, func() { 39 {0, `ParseFloat("1.000000000000000111022302462515654042363166809 0820312500...001", 64)`, func() {
41 ParseFloat(nextToOne, 64) 40 ParseFloat(nextToOne, 64)
42 }}, 41 }},
43 } 42 }
44 ) 43 )
45 44
46 func TestCountMallocs(t *testing.T) { 45 func TestCountMallocs(t *testing.T) {
47 defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
48 for _, mt := range mallocTest { 46 for _, mt := range mallocTest {
49 » » const N = 100 47 » » allocs := testing.AllocsPerRun(100, mt.fn)
50 » » memstats := new(runtime.MemStats) 48 » » if max := float64(mt.count); allocs > max {
51 » » runtime.ReadMemStats(memstats) 49 » » » t.Errorf("%s: %v allocs, want <=%v", mt.desc, allocs, ma x)
52 » » mallocs := 0 - memstats.Mallocs
53 » » for i := 0; i < N; i++ {
54 » » » mt.fn()
55 » » }
56 » » runtime.ReadMemStats(memstats)
57 » » mallocs += memstats.Mallocs
58 » » if mallocs/N > uint64(mt.count) {
59 » » » t.Errorf("%s: expected %d mallocs, got %d", mt.desc, mt. count, mallocs/N)
60 } 50 }
61 } 51 }
62 } 52 }
LEFTRIGHT

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b