mirror of
				https://github.com/coredns/coredns.git
				synced 2025-11-03 18:53:13 -05:00 
			
		
		
		
	fix TestNewServer() hanging (#1786)
This commit is contained in:
		
				
					committed by
					
						
						Miek Gieben
					
				
			
			
				
	
			
			
			
						parent
						
							643550eabe
						
					
				
				
					commit
					0455febc34
				
			@@ -23,8 +23,15 @@ func NewServer(f dns.HandlerFunc) *Server {
 | 
			
		||||
	ch1 := make(chan bool)
 | 
			
		||||
	ch2 := make(chan bool)
 | 
			
		||||
 | 
			
		||||
	p, _ := net.ListenPacket("udp", ":0")
 | 
			
		||||
	l, _ := net.Listen("tcp", p.LocalAddr().String())
 | 
			
		||||
	l, _ := net.Listen("tcp", ":0")
 | 
			
		||||
	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}
 | 
			
		||||
	s2 := &dns.Server{Listener: l}
 | 
			
		||||
 
 | 
			
		||||
@@ -25,4 +25,13 @@ func TestNewServer(t *testing.T) {
 | 
			
		||||
	if ret.Id != m.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)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user