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:
1 parent
bb99b21248
commit
e0bba10ead
3 files changed
+23
-13
No files matched your search
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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."
|
||||
|
||||
Reference in new issue
Block a user