Tests: silence a data race detected during server tests

This commit is contained in:
Filippo Valsorda 2014-12-06 02:59:02 +00:00
parent ddb0b0f565
commit e613ea6d07
1 changed files with 24 additions and 2 deletions

View File

@ -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 {