diff options
author | Aliaksandr Valialkin <valyala@gmail.com> | 2015-10-22 14:32:20 +0300 |
---|---|---|
committer | Aliaksandr Valialkin <valyala@gmail.com> | 2015-10-22 14:32:20 +0300 |
commit | 9fc3f767e6bfb65bfa3461a5ce8fa4137f85eab4 (patch) | |
tree | 477eff1661e07c0067c02208838621485bbc40af /server_timing_test.go | |
parent | converted needMoreError to static error. This may improve server performance ... (diff) | |
download | fasthttp-9fc3f767e6bfb65bfa3461a5ce8fa4137f85eab4.tar.gz fasthttp-9fc3f767e6bfb65bfa3461a5ce8fa4137f85eab4.tar.bz2 fasthttp-9fc3f767e6bfb65bfa3461a5ce8fa4137f85eab4.zip |
Added timeout covering full request read
Diffstat (limited to 'server_timing_test.go')
-rw-r--r-- | server_timing_test.go | 32 |
1 files changed, 32 insertions, 0 deletions
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{}{}: |