comparison limit_req.t @ 172:d099e407fff5

Tests: tune sleep in limit_req.t to avoid spurious timeouts. Tune sleep and increase rate accordingly (we have to sleep for at a delay time and a bit more). This should still catch the original problem since 0.8.38 (where delay time for rates different from 1r/s was fixed).
author Maxim Dounin <mdounin@mdounin.ru>
date Wed, 31 Aug 2011 14:43:16 +0400
parents c0ae29632905
children f9325406df0b
comparison
equal deleted inserted replaced
171:cfb8147f19a7 172:d099e407fff5
33 } 33 }
34 34
35 http { 35 http {
36 %%TEST_GLOBALS_HTTP%% 36 %%TEST_GLOBALS_HTTP%%
37 37
38 limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; 38 limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
39 limit_req_zone $binary_remote_addr zone=long:10m rate=1r/s; 39 limit_req_zone $binary_remote_addr zone=long:10m rate=2r/s;
40 limit_req_zone $binary_remote_addr zone=fast:10m rate=1000r/s; 40 limit_req_zone $binary_remote_addr zone=fast:10m rate=1000r/s;
41 41
42 server { 42 server {
43 listen 127.0.0.1:8080; 43 listen 127.0.0.1:8080;
44 server_name localhost; 44 server_name localhost;
72 # Second request will be delayed by limit_req, make sure it isn't truncated. 72 # Second request will be delayed by limit_req, make sure it isn't truncated.
73 # The bug only manifests itself if buffer will be filled, so sleep for a while 73 # The bug only manifests itself if buffer will be filled, so sleep for a while
74 # before reading response. 74 # before reading response.
75 75
76 my $l1 = length(http_get('/long.html')); 76 my $l1 = length(http_get('/long.html'));
77 my $l2 = length(http_get('/long.html', sleep => 1.1)); 77 my $l2 = length(http_get('/long.html', sleep => 0.6));
78 is($l2, $l1, 'delayed big request not truncated'); 78 is($l2, $l1, 'delayed big request not truncated');
79 79
80 # make sure rejected requests are not counted, and access is again allowed 80 # make sure rejected requests are not counted, and access is again allowed
81 # after 1/rate seconds 81 # after 1/rate seconds
82 82