comparison limit-req.t @ 78:c893908c1a44

Tests: add some limit_req module tests.
author Maxim Dounin <mdounin@mdounin.ru>
date Sat, 28 Mar 2009 02:08:21 +0300
parents
children d5330d926fac
comparison
equal deleted inserted replaced
77:ff5f4f298532 78:c893908c1a44
1 #!/usr/bin/perl
2
3 # (C) Maxim Dounin
4
5 # Tests for nginx limit_req module.
6
7 ###############################################################################
8
9 use warnings;
10 use strict;
11
12 use Test::More;
13
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
15
16 use lib 'lib';
17 use Test::Nginx;
18
19 ###############################################################################
20
21 select STDERR; $| = 1;
22 select STDOUT; $| = 1;
23
24 my $t = Test::Nginx->new()->plan(2);
25
26 $t->write_file_expand('nginx.conf', <<'EOF');
27
28 master_process off;
29 daemon off;
30
31 events {
32 }
33
34 http {
35 root %%TESTDIR%%;
36
37 client_body_temp_path %%TESTDIR%%/client_body_temp;
38 fastcgi_temp_path %%TESTDIR%%/fastcgi_temp;
39 proxy_temp_path %%TESTDIR%%/proxy_temp;
40
41 limit_req_zone $binary_remote_addr zone=one:10m rate=1r/m;
42
43 server {
44 listen 127.0.0.1:8080;
45 server_name localhost;
46 location / {
47 limit_req zone=one burst=1 nodelay;
48 }
49 }
50 }
51
52 EOF
53
54 $t->write_file('test1.html', 'XtestX');
55 $t->run();
56
57 ###############################################################################
58
59 like(http_get('/test1.html'), qr/^HTTP\/1.. 200 /m, 'request');
60 http_get('/test1.html');
61 like(http_get('/test1.html'), qr/^HTTP\/1.. 503 /m, 'request rejected');
62
63 ###############################################################################