1 // Copyright 2012 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.
9 gccgo does not pass this.
20 nextToOne = "1.00000000000000011102230246251565404236316680908203125" + strings.Repeat("0", 10000) + "1"
22 mallocTest = []struct {
27 {0, `AppendInt(localBuf[:0], 123, 10)`, func() {
29 AppendInt(localBuf[:0], 123, 10)
31 {0, `AppendInt(globalBuf[:0], 123, 10)`, func() { AppendInt(globalBuf[:0], 123, 10) }},
32 {0, `AppendFloat(localBuf[:0], 1.23, 'g', 5, 64)`, func() {
34 AppendFloat(localBuf[:0], 1.23, 'g', 5, 64)
36 {0, `AppendFloat(globalBuf[:0], 1.23, 'g', 5, 64)`, func() { AppendFloat(globalBuf[:0], 1.23, 'g', 5, 64) }},
37 {0, `ParseFloat("123.45", 64)`, func() { ParseFloat("123.45", 64) }},
38 {0, `ParseFloat("123.456789123456789", 64)`, func() { ParseFloat("123.456789123456789", 64) }},
39 {0, `ParseFloat("1.000000000000000111022302462515654042363166809082031251", 64)`, func() {
40 ParseFloat("1.000000000000000111022302462515654042363166809082031251", 64)
42 {0, `ParseFloat("1.0000000000000001110223024625156540423631668090820312500...001", 64)`, func() {
43 ParseFloat(nextToOne, 64)
48 func TestCountMallocs(t *testing.T) {
50 t.Skip("skipping malloc count in short mode")
52 if runtime.GOMAXPROCS(0) > 1 {
53 t.Skip("skipping; GOMAXPROCS>1")
55 for _, mt := range mallocTest {
56 allocs := testing.AllocsPerRun(100, mt.fn)
57 if max := float64(mt.count); allocs > max {
58 t.Errorf("%s: %v allocs, want <=%v", mt.desc, allocs, max)