httplib: add Close() method to shut the server down and use it in tests

This commit is contained in:
Nick Craig-Wood
2018-02-19 14:02:19 +00:00
parent d8f78a7266
commit 334bf49d30
5 changed files with 32 additions and 9 deletions

View File

@@ -14,3 +14,8 @@ func initServer(s *http.Server) {
s.ReadHeaderTimeout = 10 * time.Second // time to send the headers
s.IdleTimeout = 60 * time.Second // time to keep idle connections open
}
// closeServer closes the server in a non graceful way
func closeServer(s *http.Server) error {
return s.Close()
}

View File

@@ -11,3 +11,8 @@ import (
// Initialise the http.Server for pre go1.8
func initServer(s *http.Server) {
}
// closeServer closes the server in a non graceful way
func closeServer(s *http.Server) error {
return nil
}

View File

@@ -183,7 +183,15 @@ func (s *Server) Serve() {
} else {
err = s.httpServer.ListenAndServe()
}
log.Fatalf("Fatal error while serving HTTP: %v", err)
log.Printf("Error while serving HTTP: %v", err)
}
// Close shuts the running server down
func (s *Server) Close() {
err := closeServer(s.httpServer)
if err != nil {
log.Printf("Error on closing HTTP server: %v", err)
}
}
// URL returns the serving address of this server