]> Cypherpunks repositories - gostls13.git/commitdiff
net: add UDP allocs test
authorJosh Bleecher Snyder <josharian@gmail.com>
Thu, 4 Nov 2021 18:33:39 +0000 (11:33 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Thu, 4 Nov 2021 21:53:05 +0000 (21:53 +0000)
Change-Id: Ibefd1ca0236d17d57fc5aa5938a56ae92272ca60
Reviewed-on: https://go-review.googlesource.com/c/go/+/361396
Trust: Josh Bleecher Snyder <josharian@gmail.com>
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/net/udpsock_test.go

index 7eef6f64af03c7c14dc89a895ba58ad93900cf21..518c66c33147a3b5944fd35ee6bf46575eb4fd8c 100644 (file)
@@ -474,6 +474,59 @@ func TestUDPReadTimeout(t *testing.T) {
        }
 }
 
+func TestAllocs(t *testing.T) {
+       conn, err := ListenUDP("udp4", &UDPAddr{IP: IPv4(127, 0, 0, 1)})
+       if err != nil {
+               t.Fatal(err)
+       }
+       defer conn.Close()
+       addr := conn.LocalAddr()
+       addrPort := addr.(*UDPAddr).AddrPort()
+       buf := make([]byte, 8)
+
+       allocs := testing.AllocsPerRun(1000, func() {
+               _, _, err := conn.WriteMsgUDPAddrPort(buf, nil, addrPort)
+               if err != nil {
+                       t.Fatal(err)
+               }
+               _, _, _, _, err = conn.ReadMsgUDPAddrPort(buf, nil)
+               if err != nil {
+                       t.Fatal(err)
+               }
+       })
+       if got := int(allocs); got != 0 {
+               t.Errorf("WriteMsgUDPAddrPort/ReadMsgUDPAddrPort allocated %d objects", got)
+       }
+
+       allocs = testing.AllocsPerRun(1000, func() {
+               _, err := conn.WriteToUDPAddrPort(buf, addrPort)
+               if err != nil {
+                       t.Fatal(err)
+               }
+               _, _, err = conn.ReadFromUDPAddrPort(buf)
+               if err != nil {
+                       t.Fatal(err)
+               }
+       })
+       if got := int(allocs); got != 0 {
+               t.Errorf("WriteToUDPAddrPort/ReadFromUDPAddrPort allocated %d objects", got)
+       }
+
+       allocs = testing.AllocsPerRun(1000, func() {
+               _, err := conn.WriteTo(buf, addr)
+               if err != nil {
+                       t.Fatal(err)
+               }
+               _, _, err = conn.ReadFromUDP(buf)
+               if err != nil {
+                       t.Fatal(err)
+               }
+       })
+       if got := int(allocs); got != 1 {
+               t.Errorf("WriteTo/ReadFromUDP allocated %d objects", got)
+       }
+}
+
 func BenchmarkReadWriteMsgUDPAddrPort(b *testing.B) {
        conn, err := ListenUDP("udp4", &UDPAddr{IP: IPv4(127, 0, 0, 1)})
        if err != nil {