diff options
author | Aliaksandr Valialkin <valyala@gmail.com> | 2015-11-02 15:09:45 +0200 |
---|---|---|
committer | Aliaksandr Valialkin <valyala@gmail.com> | 2015-11-02 15:09:45 +0200 |
commit | 3eaecd9c6cecececdaddde85f53f50f1e6272522 (patch) | |
tree | 306261dfda0362014b9a2f8dc6d5cf0d556e715e /server_timing_test.go | |
parent | Clear response before calling request handler (diff) | |
download | fasthttp-3eaecd9c6cecececdaddde85f53f50f1e6272522.tar.gz fasthttp-3eaecd9c6cecececdaddde85f53f50f1e6272522.tar.bz2 fasthttp-3eaecd9c6cecececdaddde85f53f50f1e6272522.zip |
Added ability to limit the number of concurrent client connections per ip
Diffstat (limited to 'server_timing_test.go')
-rw-r--r-- | server_timing_test.go | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/server_timing_test.go b/server_timing_test.go index 634b4ea..8d68890 100644 --- a/server_timing_test.go +++ b/server_timing_test.go @@ -111,6 +111,22 @@ func BenchmarkNetHTTPServerGet10KReqPerConn1KClients(b *testing.B) { benchmarkNetHTTPServerGet(b, 1000, 10000) } +func BenchmarkServerMaxConnsPerIP(b *testing.B) { + clientsCount := 1000 + requestsPerConn := 10 + ch := make(chan struct{}, b.N) + s := &Server{ + Handler: func(ctx *RequestCtx) { + ctx.Success("foobar", []byte("123")) + registerServedRequest(b, ch) + }, + MaxConnsPerIP: clientsCount * 2, + } + req := "GET /foo HTTP/1.1\r\nHost: google.com\r\n\r\n" + benchmarkServer(b, &testServer{s, clientsCount}, clientsCount, requestsPerConn, req) + verifyRequestsServed(b, ch) +} + func BenchmarkServerTimeoutError(b *testing.B) { clientsCount := 1 requestsPerConn := 10 @@ -165,7 +181,10 @@ func (c *fakeServerConn) Write(b []byte) (int, error) { return len(b), nil } -var fakeAddr net.TCPAddr +var fakeAddr = net.TCPAddr{ + IP: []byte{1, 2, 3, 4}, + Port: 12345, +} func (c *fakeServerConn) RemoteAddr() net.Addr { return &fakeAddr |