aboutsummaryrefslogtreecommitdiff
path: root/server_timing_test.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-11-02 15:09:45 +0200
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-11-02 15:09:45 +0200
commit3eaecd9c6cecececdaddde85f53f50f1e6272522 (patch)
tree306261dfda0362014b9a2f8dc6d5cf0d556e715e /server_timing_test.go
parentClear response before calling request handler (diff)
downloadfasthttp-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.go21
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