diff --git a/server_test.go b/server_test.go index 6e8d442f..044121cf 100644 --- a/server_test.go +++ b/server_test.go @@ -43,6 +43,22 @@ func RunLocalUDPServer(laddr string) (*Server, string, error) { return server, pc.LocalAddr().String(), nil } +func RunLocalUDPServerUnsafe(laddr string) (*Server, string, error) { + pc, err := net.ListenPacket("udp", laddr) + if err != nil { + return nil, "", err + } + server := &Server{PacketConn: pc, Unsafe: true} + go func() { + server.ActivateAndServe() + pc.Close() + }() + + time.Sleep(50 * time.Millisecond) + + return server, pc.LocalAddr().String(), nil +} + func RunLocalTCPServer(laddr string) (*Server, string, error) { l, err := net.Listen("tcp", laddr) if err != nil { @@ -328,7 +344,6 @@ func TestServingResponse(t *testing.T) { if err != nil { t.Fatalf("Unable to run test server: %s", err) } - defer s.Shutdown() c := new(Client) m := new(Msg) @@ -345,7 +360,14 @@ func TestServingResponse(t *testing.T) { t.Log("exchanged response message") t.Fatal() } - s.Unsafe = true + + s.Shutdown() + s, addrstr, err = RunLocalUDPServerUnsafe("127.0.0.1:0") + if err != nil { + t.Fatalf("Unable to run test server: %s", err) + } + defer s.Shutdown() + m.Response = true _, _, err = c.Exchange(m, addrstr) if err != nil {