types/views: add test that LenIter doesn't allocate

For a second we thought this was allocating but we were looking
at a CPU profile (which showed calls to mallocgc view makeslice)
instead of the alloc profile.

Updates golang/go#65685 (which if fixed wouldn't have confused us)

Change-Id: Ic0132310d52d8a65758a516142525339aa23b1ed
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick 2024-02-12 17:10:43 -08:00 committed by Brad Fitzpatrick
parent c42a4e407a
commit f7f496025a
1 changed files with 9 additions and 0 deletions

View File

@ -151,6 +151,15 @@ func TestLenIter(t *testing.T) {
if !reflect.DeepEqual(orig, got) {
t.Errorf("got %q; want %q", got, orig)
}
x := 0
n := testing.AllocsPerRun(10000, func() {
for range v.LenIter() {
x++
}
})
if n > 0 {
t.Errorf("allocs = %v; want 0", n)
}
}
func TestSliceEqual(t *testing.T) {