From b6c424b769b6f7d19c805327d59b1daa76f72285 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 2 Mar 2026 07:41:33 +0200 Subject: Add HTTP timeouts for flamegraph web servers --- internal/flamegraph/webserver_timeout_test.go | 43 +++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 internal/flamegraph/webserver_timeout_test.go (limited to 'internal/flamegraph/webserver_timeout_test.go') diff --git a/internal/flamegraph/webserver_timeout_test.go b/internal/flamegraph/webserver_timeout_test.go new file mode 100644 index 0000000..c1df7e5 --- /dev/null +++ b/internal/flamegraph/webserver_timeout_test.go @@ -0,0 +1,43 @@ +package flamegraph + +import ( + "net/http" + "testing" + "time" +) + +func TestNewHTTPServerUsesConfiguredTimeouts(t *testing.T) { + mux := http.NewServeMux() + timeouts := serverTimeouts{ + readTimeout: 11 * time.Second, + writeTimeout: 44 * time.Second, + idleTimeout: 66 * time.Second, + } + + srv := newHTTPServer(mux, timeouts) + + if srv.Handler != mux { + t.Fatalf("Handler not set from mux") + } + if srv.ReadTimeout != timeouts.readTimeout { + t.Fatalf("ReadTimeout = %v, want %v", srv.ReadTimeout, timeouts.readTimeout) + } + if srv.WriteTimeout != timeouts.writeTimeout { + t.Fatalf("WriteTimeout = %v, want %v", srv.WriteTimeout, timeouts.writeTimeout) + } + if srv.IdleTimeout != timeouts.idleTimeout { + t.Fatalf("IdleTimeout = %v, want %v", srv.IdleTimeout, timeouts.idleTimeout) + } +} + +func TestLiveServerWriteTimeoutIsLongerThanDefault(t *testing.T) { + if liveServerTimeouts.readTimeout != defaultServerTimeouts.readTimeout { + t.Fatalf("read timeout mismatch: live=%v default=%v", liveServerTimeouts.readTimeout, defaultServerTimeouts.readTimeout) + } + if liveServerTimeouts.idleTimeout != defaultServerTimeouts.idleTimeout { + t.Fatalf("idle timeout mismatch: live=%v default=%v", liveServerTimeouts.idleTimeout, defaultServerTimeouts.idleTimeout) + } + if liveServerTimeouts.writeTimeout <= defaultServerTimeouts.writeTimeout { + t.Fatalf("expected live write timeout > default write timeout, got live=%v default=%v", liveServerTimeouts.writeTimeout, defaultServerTimeouts.writeTimeout) + } +} -- cgit v1.2.3