| // Copyright (c) HashiCorp, Inc. |
| // SPDX-License-Identifier: MPL-2.0 |
| |
| package api |
| |
| import ( |
| "fmt" |
| "net" |
| "net/http" |
| "testing" |
| ) |
| |
| // testHTTPServer creates a test HTTP server that handles requests until |
| // the listener returned is closed. |
| func testHTTPServer(t *testing.T, handler http.Handler) (*Config, net.Listener) { |
| ln, err := net.Listen("tcp", "127.0.0.1:0") |
| if err != nil { |
| t.Fatalf("err: %s", err) |
| } |
| |
| server := &http.Server{Handler: handler} |
| go server.Serve(ln) |
| |
| config := DefaultConfig() |
| config.Address = fmt.Sprintf("http://%s", ln.Addr()) |
| |
| return config, ln |
| } |