diff --git a/nameserver/mdns_client_test.go b/nameserver/mdns_client_test.go index fce78176..4cc4f5b7 100644 --- a/nameserver/mdns_client_test.go +++ b/nameserver/mdns_client_test.go @@ -73,15 +73,16 @@ func RunLocalMulticastServer() (*dns.Server, error) { } func setup(t *testing.T) (*MDNSClient, *dns.Server, error) { + server, err := RunLocalMulticastServer() + if err != nil { + t.Fatalf("Unable to run test server: %s. No default multicast interface?", err) + } + mdnsClient, err := NewMDNSClient() wt.AssertNoErr(t, err) err = mdnsClient.Start(nil) wt.AssertNoErr(t, err) - server, err := RunLocalMulticastServer() - if err != nil { - t.Fatalf("Unable to run test server: %s", err) - } return mdnsClient, server, err } diff --git a/nameserver/mdns_server_test.go b/nameserver/mdns_server_test.go index b34cb80e..bd550c8e 100644 --- a/nameserver/mdns_server_test.go +++ b/nameserver/mdns_server_test.go @@ -42,11 +42,6 @@ func TestServerSimpleQuery(t *testing.T) { ip, _, _ := net.ParseCIDR(testAddr1) zone.AddRecord(containerID, testName, ip) - mdnsServer, err := NewMDNSServer(zone) - wt.AssertNoErr(t, err) - err = mdnsServer.Start(nil, DefaultLocalDomain) - wt.AssertNoErr(t, err) - var receivedAddr net.IP var receivedName string var recvChan chan interface{} @@ -70,7 +65,9 @@ func TestServerSimpleQuery(t *testing.T) { // Implement a minimal listener for responses multicast, err := LinkLocalMulticastListener(nil) - wt.AssertNoErr(t, err) + if err != nil { + t.Fatalf("Unable to run test server: %s. No default multicast interface?", err) + } handleMDNS := func(w dns.ResponseWriter, r *dns.Msg) { // Only handle responses here @@ -93,6 +90,11 @@ func TestServerSimpleQuery(t *testing.T) { go listener.ActivateAndServe() defer listener.Shutdown() + mdnsServer, err := NewMDNSServer(zone) + wt.AssertNoErr(t, err) + err = mdnsServer.Start(nil, DefaultLocalDomain) + wt.AssertNoErr(t, err) + time.Sleep(100 * time.Millisecond) // Allow for server to get going reset() diff --git a/nameserver/server_test.go b/nameserver/server_test.go index 4412d85c..a1992477 100644 --- a/nameserver/server_test.go +++ b/nameserver/server_test.go @@ -22,12 +22,19 @@ var ( testPort = 17625 ) -func setupForTest() { +func setupForTest(t *testing.T) { + // fail early if we cannot find a default multicast interface + multicast, err := LinkLocalMulticastListener(nil) + if err != nil { + t.Fatalf("Unable to create multicast listener: %s. No default multicast interface?", err) + } + multicast.Close() + testPort++ } func TestUDPDNSServer(t *testing.T) { - setupForTest() + setupForTest(t) const ( successTestName = "test1.weave.local." failTestName = "test2.weave.local." @@ -110,7 +117,7 @@ func TestUDPDNSServer(t *testing.T) { } func TestTCPDNSServer(t *testing.T) { - setupForTest() + setupForTest(t) const ( numAnswers = 512 nonLocalName = "weave.works."