Fixes #35280
Change-Id: I6fa3747ff7b92c6fcabdf8692d85e103de55859f
Reviewed-on: https://go-review.googlesource.com/c/go/+/204598
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
}
func TestBuilderAllocs(t *testing.T) {
- var b Builder
- const msg = "hello"
- b.Grow(len(msg) * 2) // because AllocsPerRun does an extra "warm-up" iteration
- var s string
- allocs := int(testing.AllocsPerRun(1, func() {
- b.WriteString("hello")
- s = b.String()
- }))
- if want := msg + msg; s != want {
- t.Errorf("String: got %#q; want %#q", s, want)
- }
- if allocs > 0 {
- t.Fatalf("got %d alloc(s); want 0", allocs)
- }
-
// Issue 23382; verify that copyCheck doesn't force the
// Builder to escape and be heap allocated.
n := testing.AllocsPerRun(10000, func() {