comparison limit_req_dry_run.t @ 1486:723c7e08eec7

Tests: limit_req_dry_run tests.
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 07 Jun 2019 16:10:49 +0300
parents
children c1cdd7c73a73
comparison
equal deleted inserted replaced
1485:48c3964a10a5 1486:723c7e08eec7
1 #!/usr/bin/perl
2
3 # (C) Sergey Kandaurov
4 # (C) Nginx, Inc.
5
6 # Tests for nginx limit_req module, limit_req_dry_run directive.
7
8 ###############################################################################
9
10 use warnings;
11 use strict;
12
13 use Test::More;
14
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
16
17 use lib 'lib';
18 use Test::Nginx;
19
20 ###############################################################################
21
22 select STDERR; $| = 1;
23 select STDOUT; $| = 1;
24
25 my $t = Test::Nginx->new()->has(qw/http limit_req/);
26
27 $t->write_file_expand('nginx.conf', <<'EOF');
28
29 %%TEST_GLOBALS%%
30
31 daemon off;
32
33 events {
34 }
35
36 http {
37 %%TEST_GLOBALS_HTTP%%
38
39 limit_req_zone $binary_remote_addr zone=one:1m rate=1r/m;
40
41 server {
42 listen 127.0.0.1:8080;
43 server_name localhost;
44
45 limit_req_dry_run on;
46
47 location /delay {
48 limit_req zone=one burst=2;
49 }
50
51 location /reject {
52 limit_req zone=one;
53 }
54
55 location /reject/off {
56 limit_req zone=one;
57
58 limit_req_dry_run off;
59 }
60 }
61 }
62
63 EOF
64
65 $t->write_file('delay', 'SEE-THIS');
66 $t->write_file('reject', 'SEE-THIS');
67 $t->try_run('no limit_req_dry_run')->plan(6);
68
69 ###############################################################################
70
71 like(http_get('/delay'), qr/^HTTP\/1.. 200 /m, 'dry run');
72 like(http_get('/delay'), qr/^HTTP\/1.. 200 /m, 'dry run - not delayed');
73 like(http_get('/reject'), qr/^HTTP\/1.. 200 /m, 'dry run - not rejected');
74
75 like(http_get('/reject/off'), qr/^HTTP\/1.. 503 /m, 'dry run off - rejected');
76
77 $t->stop();
78
79 like($t->read_file('error.log'), qr/delaying request, dry/, 'log - delay');
80 like($t->read_file('error.log'), qr/limiting requests, dry/, 'log - reject');
81
82 ###############################################################################