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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 ###############################################################################