Mercurial > hg > nginx-tests
annotate access.t @ 386:1b205a3332de
Tests: adjusted limit_req rate value.
This shortens excessive test execution time due to unnecessarily delayed
backend connection after client connection close, which is usually observed
when the client connection is closed before the request is proxied to backend.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Wed, 26 Mar 2014 22:50:22 +0400 |
parents | 2da774b0fc7d |
children | c28ecaef065f |
rev | line source |
---|---|
291
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Sergey Kandaurov |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 # Tests for nginx access module. |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
6 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 # At the moment only the new "unix:" syntax is tested (cf "all"). |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 ############################################################################### |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use warnings; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 use strict; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 use Test::More; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 BEGIN { use FindBin; chdir($FindBin::Bin); } |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 use lib 'lib'; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 use Test::Nginx; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 ############################################################################### |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 select STDERR; $| = 1; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 select STDOUT; $| = 1; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
25 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 my $t = Test::Nginx->new()->has(qw/http proxy access ipv6/); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
27 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
28 plan(skip_all => 'new syntax "unix:"') unless $t->has_version('1.5.1'); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 |
292
2da774b0fc7d
Tests: skip access.t on platforms without ipv6 support.
Sergey Kandaurov <pluknet@nginx.com>
parents:
291
diff
changeset
|
30 $t->write_file_expand('nginx.conf', <<'EOF'); |
291
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
31 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
32 %%TEST_GLOBALS%% |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 daemon off; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
35 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
36 events { |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 } |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 http { |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 %%TEST_GLOBALS_HTTP%% |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
42 server { |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 listen 127.0.0.1:8080; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 server_name localhost; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 location /inet/ { |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
47 proxy_pass http://127.0.0.1:8081/; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
48 } |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
49 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 location /inet6/ { |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
51 proxy_pass http://[::1]:8081/; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
52 } |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
53 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
54 location /unix/ { |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
55 proxy_pass http://unix:%%TESTDIR%%/unix.sock:/; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
56 } |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
57 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
58 } |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
59 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
60 server { |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
61 listen 127.0.0.1:8081; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
62 listen [::1]:8081; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
63 listen unix:%%TESTDIR%%/unix.sock; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
64 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
65 location /allow_all { |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
66 allow all; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 } |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
69 location /allow_unix { |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
70 allow unix:; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
71 } |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
72 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 location /deny_all { |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
74 deny all; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
75 } |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
76 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
77 location /deny_unix { |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
78 deny unix:; |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
79 } |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
80 } |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
81 } |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
82 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
83 EOF |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
84 |
292
2da774b0fc7d
Tests: skip access.t on platforms without ipv6 support.
Sergey Kandaurov <pluknet@nginx.com>
parents:
291
diff
changeset
|
85 eval { |
2da774b0fc7d
Tests: skip access.t on platforms without ipv6 support.
Sergey Kandaurov <pluknet@nginx.com>
parents:
291
diff
changeset
|
86 open OLDERR, ">&", \*STDERR; close STDERR; |
2da774b0fc7d
Tests: skip access.t on platforms without ipv6 support.
Sergey Kandaurov <pluknet@nginx.com>
parents:
291
diff
changeset
|
87 $t->run(); |
2da774b0fc7d
Tests: skip access.t on platforms without ipv6 support.
Sergey Kandaurov <pluknet@nginx.com>
parents:
291
diff
changeset
|
88 open STDERR, ">&", \*OLDERR; |
2da774b0fc7d
Tests: skip access.t on platforms without ipv6 support.
Sergey Kandaurov <pluknet@nginx.com>
parents:
291
diff
changeset
|
89 }; |
2da774b0fc7d
Tests: skip access.t on platforms without ipv6 support.
Sergey Kandaurov <pluknet@nginx.com>
parents:
291
diff
changeset
|
90 plan(skip_all => 'no inet6 and/or unix support') if $@; |
2da774b0fc7d
Tests: skip access.t on platforms without ipv6 support.
Sergey Kandaurov <pluknet@nginx.com>
parents:
291
diff
changeset
|
91 |
2da774b0fc7d
Tests: skip access.t on platforms without ipv6 support.
Sergey Kandaurov <pluknet@nginx.com>
parents:
291
diff
changeset
|
92 $t->plan(12); |
291
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
93 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
94 ############################################################################### |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
95 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
96 # tests with inet socket |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
97 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
98 like(http_get('/inet/allow_all'), qr/404 Not Found/, 'inet allow all'); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
99 like(http_get('/inet/allow_unix'), qr/404 Not Found/, 'inet allow unix'); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
100 like(http_get('/inet/deny_all'), qr/403 Forbidden/, 'inet deny all'); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
101 like(http_get('/inet/deny_unix'), qr/404 Not Found/, 'inet deny unix'); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
102 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
103 # tests with inet6 socket |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
104 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
105 like(http_get('/inet6/allow_all'), qr/404 Not Found/, 'inet6 allow all'); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
106 like(http_get('/inet6/allow_unix'), qr/404 Not Found/, 'inet6 allow unix'); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
107 like(http_get('/inet6/deny_all'), qr/403 Forbidden/, 'inet6 deny all'); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
108 like(http_get('/inet6/deny_unix'), qr/404 Not Found/, 'inet6 deny unix'); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
109 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
110 # tests with unix socket |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
111 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
112 like(http_get('/unix/allow_all'), qr/404 Not Found/, 'unix allow all'); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
113 like(http_get('/unix/allow_unix'), qr/404 Not Found/, 'unix allow unix'); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
114 like(http_get('/unix/deny_all'), qr/403 Forbidden/, 'unix deny all'); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
115 like(http_get('/unix/deny_unix'), qr/403 Forbidden/, 'unix deny unix'); |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
116 |
03d5be12bc3b
Tests: basic tests for access module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
117 ############################################################################### |