| 316 | } |
| 317 | |
| 318 | func (o SimpleServerOptions) StartServer(t *testing.T, logger slog.Logger, listenAddr string) { |
| 319 | srv := http.Server{ |
| 320 | Addr: listenAddr, |
| 321 | Handler: o.Router(t, logger), |
| 322 | ReadTimeout: 10 * time.Second, |
| 323 | } |
| 324 | serveDone := make(chan struct{}) |
| 325 | go func() { |
| 326 | defer close(serveDone) |
| 327 | err := srv.ListenAndServe() |
| 328 | if err != nil && !xerrors.Is(err, http.ErrServerClosed) { |
| 329 | t.Error("HTTP server error:", err) |
| 330 | } |
| 331 | }() |
| 332 | t.Cleanup(func() { |
| 333 | _ = srv.Close() |
| 334 | <-serveDone |
| 335 | }) |
| 336 | } |
| 337 | |
| 338 | type NGINXServerOptions struct { |
| 339 | SimpleServerOptions |