better handling of test multicast listener initialisation errors

We handle that error explicitly in all cases and point out the common
cause, namely the absence of a default multicast interface.

Closes #481.
This commit is contained in:
Matthias Radestock committed 2015-04-11 20:22:41 +01:00
1 parent bb99b21248
commit e0bba10ead
3 files changed
+23 -13

No files matched your search

+5 -4
View File
@@ -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
}
+8 -6
View File
@@ -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()
+10 -3
View File
@@ -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."