fix TestNewServer() hanging (#1786)

This commit is contained in:
Ruslan Drozhdzh 2018-05-08 20:35:47 +03:00 committed by Miek Gieben
parent 643550eabe
commit 0455febc34
2 changed files with 18 additions and 2 deletions

View file

@ -23,8 +23,15 @@ func NewServer(f dns.HandlerFunc) *Server {
ch1 := make(chan bool) ch1 := make(chan bool)
ch2 := make(chan bool) ch2 := make(chan bool)
p, _ := net.ListenPacket("udp", ":0") l, _ := net.Listen("tcp", ":0")
l, _ := net.Listen("tcp", p.LocalAddr().String()) if l == nil {
return nil
}
p, _ := net.ListenPacket("udp", l.Addr().String())
if p == nil {
l.Close()
return nil // yes, this may crash some test, but this is better than hanging
}
s1 := &dns.Server{PacketConn: p} s1 := &dns.Server{PacketConn: p}
s2 := &dns.Server{Listener: l} s2 := &dns.Server{Listener: l}

View file

@ -25,4 +25,13 @@ func TestNewServer(t *testing.T) {
if ret.Id != m.Id { if ret.Id != m.Id {
t.Fatalf("Msg ID's should match, expected %d, got %d", m.Id, ret.Id) t.Fatalf("Msg ID's should match, expected %d, got %d", m.Id, ret.Id)
} }
c.Net = "udp"
ret, _, err = c.Exchange(m, s.Addr)
if err != nil {
t.Fatalf("Could not send message to dnstest.Server: %s", err)
}
if ret.Id != m.Id {
t.Fatalf("Msg ID's should match, expected %d, got %d", m.Id, ret.Id)
}
} }