use an automatically assigned port for http tests

instead of random port, which can clash

Fixes #720.
This commit is contained in:
Matthias Radestock committed 2015-05-29 10:21:41 +01:00
1 parent db217cd56f
commit c93e789b6b
3 files changed
+16 -8

No files matched your search

+3 -4
View File
@@ -17,7 +17,7 @@ func httpErrorAndLog(level *log.Logger, w http.ResponseWriter, msg string,
level.Printf("[http] "+logmsg, logargs...)
}
func ListenHTTP(version string, server *DNSServer, domain string, db Zone, port int) {
func ServeHTTP(listener net.Listener, version string, server *DNSServer, domain string, db Zone) {
muxRouter := mux.NewRouter()
@@ -90,8 +90,7 @@ func ListenHTTP(version string, server *DNSServer, domain string, db Zone, port
http.Handle("/", muxRouter)
address := fmt.Sprintf(":%d", port)
if err := http.ListenAndServe(address, nil); err != nil {
Error.Fatal("[http] Unable to create http listener: ", err)
if err := http.Serve(listener, nil); err != nil {
Error.Fatal("[http] Unable to serve http: ", err)
}
}
+7 -3
View File
@@ -2,7 +2,6 @@ package nameserver
import (
"fmt"
"math/rand"
"net"
"net/http"
"net/url"
@@ -35,9 +34,14 @@ func TestHttp(t *testing.T) {
wt.AssertNoErr(t, err)
defer zone.Stop()
port := rand.Intn(10000) + 32768
httpListener, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatal("Unable to create http listener: ", err)
}
port := httpListener.Addr().(*net.TCPAddr).Port
fmt.Println("Http test on port", port)
go ListenHTTP("", nil, testDomain, zone, port)
go ServeHTTP(httpListener, "", nil, testDomain, zone)
time.Sleep(100 * time.Millisecond) // Allow for http server to get going
+6 -1
View File
@@ -127,8 +127,13 @@ func main() {
Error.Fatal("[main] Failed to initialize the WeaveDNS server", err)
}
httpListener, err := net.Listen("tcp", fmt.Sprintf(":%d", httpPort))
if err != nil {
Error.Fatal("[main] Unable to create http listener: ", err)
}
go SignalHandlerLoop(srv)
go weavedns.ListenHTTP(version, srv, domain, zone, httpPort)
go weavedns.ServeHTTP(httpListener, version, srv, domain, zone)
err = srv.Start()
if err != nil {