From 9fc3f767e6bfb65bfa3461a5ce8fa4137f85eab4 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Thu, 22 Oct 2015 14:32:20 +0300 Subject: Added timeout covering full request read --- server_timing_test.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'server_timing_test.go') diff --git a/server_timing_test.go b/server_timing_test.go index 3e86d82..af8fb09 100644 --- a/server_timing_test.go +++ b/server_timing_test.go @@ -78,6 +78,22 @@ func BenchmarkNetHTTPServerPost10000ReqPerConn(b *testing.B) { benchmarkNetHTTPServerPost(b, 10000) } +func BenchmarkServerGetRequestReadTimeout1ReqPerConn(b *testing.B) { + benchmarkServerGetRequestReadTimeout(b, 1) +} + +func BenchmarkServerGetRequestReadTimeout2ReqPerConn(b *testing.B) { + benchmarkServerGetRequestReadTimeout(b, 2) +} + +func BenchmarkServerGetRequestReadTimeout10ReqPerConn(b *testing.B) { + benchmarkServerGetRequestReadTimeout(b, 10) +} + +func BenchmarkServerGetRequestReadTimeout10000ReqPerConn(b *testing.B) { + benchmarkServerGetRequestReadTimeout(b, 10000) +} + func BenchmarkServerTimeoutError(b *testing.B) { requestsPerConn := 10 ch := make(chan struct{}, b.N) @@ -264,6 +280,22 @@ func benchmarkNetHTTPServerPost(b *testing.B, requestsPerConn int) { verifyRequestsServed(b, requestsSent, ch) } +func benchmarkServerGetRequestReadTimeout(b *testing.B, requestsPerConn int) { + ch := make(chan struct{}, b.N) + s := &Server{ + Handler: func(ctx *RequestCtx) { + if !ctx.Request.Header.IsMethodGet() { + b.Fatalf("Unexpected request method: %s", ctx.Request.Header.Method) + } + ctx.Success("text/plain", fakeResponse) + registerServedRequest(b, ch) + }, + RequestReadTimeout: 5 * time.Second, + } + requestsSent := benchmarkServer(b, &testServer{s}, requestsPerConn, getRequest) + verifyRequestsServed(b, requestsSent, ch) +} + func registerServedRequest(b *testing.B, ch chan<- struct{}) { select { case ch <- struct{}{}: -- cgit v1.2.3