use an automatically assigned port for http tests
instead of random port, which can clash Fixes #720.
This commit is contained in:
1 parent
db217cd56f
commit
c93e789b6b
3 files changed
+16
-8
No files matched your search
+3
-4
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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
@@ -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 {
|
||||
|
||||
Reference in new issue
Block a user