aboutsummaryrefslogtreecommitdiff
path: root/server_timing_test.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-10-22 14:32:20 +0300
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-10-22 14:32:20 +0300
commit9fc3f767e6bfb65bfa3461a5ce8fa4137f85eab4 (patch)
tree477eff1661e07c0067c02208838621485bbc40af /server_timing_test.go
parentconverted needMoreError to static error. This may improve server performance ... (diff)
downloadfasthttp-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.go32
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{}{}: