annotate proxy_next_upstream_tries.t @ 572:ca54b445d982

Tests: masked nginx bug in proxy next upstream. When iterating through several next upstreams per a worker cycle, a previously reported event about upstream connection error may be improperly applied to the next upstream, thus leading to the invalid connection error. E.g., in kqueue, where the problem is visible, this is caused by "ev->instance" that does not tolerate more than one next upstream at once, and kevents placed on the kqueue separately for read and write events. The change is to limit test case to the only one next upstream.
author Sergey Kandaurov <pluknet@nginx.com>
date Thu, 14 May 2015 11:54:24 +0300
parents 907e89fba9c3
children ef1c363dd648
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
462
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6 # Tests for http proxy module, proxy_next_upstream_tries
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7 # and proxy_next_upstream_timeout directives.
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9 ###############################################################################
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use warnings;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12 use strict;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14 use Test::More;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16 BEGIN { use FindBin; chdir($FindBin::Bin); }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18 use lib 'lib';
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19 use Test::Nginx;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21 ###############################################################################
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 select STDERR; $| = 1;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24 select STDOUT; $| = 1;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25
568
907e89fba9c3 Tests: removed TODO and try_run() checks for legacy versions.
Sergey Kandaurov <pluknet@nginx.com>
parents: 494
diff changeset
26 my $t = Test::Nginx->new()->has(qw/http proxy rewrite/)->plan(8);
462
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28 $t->write_file_expand('nginx.conf', <<'EOF');
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30 %%TEST_GLOBALS%%
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32 daemon off;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34 events {
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37 http {
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38 %%TEST_GLOBALS_HTTP%%
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
40 upstream u {
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41 server 127.0.0.1:8081;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42 server 127.0.0.1:8081;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43 server 127.0.0.1:8081;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
45
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
46 upstream u2 {
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
47 server 127.0.0.1:8081;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48 server 127.0.0.1:8081 backup;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
49 server 127.0.0.1:8081 backup;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
50 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
51
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52 server {
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53 listen 127.0.0.1:8080;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54 server_name localhost;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
55
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
56 proxy_next_upstream http_404;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
57 proxy_intercept_errors on;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
58 error_page 404 /404;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
59
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
60 location /tries {
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
61 proxy_pass http://u;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
62 proxy_next_upstream_tries 2;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
63 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
64
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65 location /tries/backup {
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66 proxy_pass http://u2;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67 proxy_next_upstream_tries 2;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
69
479
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
70 location /tries/resolver {
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
71 resolver 127.0.0.1:8083;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
72 resolver_timeout 1s;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
73
494
623863fcb1d1 Tests: simplified proxy_next_upstream_tries.t tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 493
diff changeset
74 proxy_pass http://$host:8081;
479
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
75 proxy_next_upstream_tries 2;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
76 }
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
77
493
d456ed8a18de Tests: added proxy_next_upstream_tries.t tests with zero value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 492
diff changeset
78 location /tries/zero {
d456ed8a18de Tests: added proxy_next_upstream_tries.t tests with zero value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 492
diff changeset
79 proxy_pass http://u;
d456ed8a18de Tests: added proxy_next_upstream_tries.t tests with zero value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 492
diff changeset
80 proxy_next_upstream_tries 0;
d456ed8a18de Tests: added proxy_next_upstream_tries.t tests with zero value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 492
diff changeset
81 }
d456ed8a18de Tests: added proxy_next_upstream_tries.t tests with zero value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 492
diff changeset
82
462
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
83 location /timeout {
494
623863fcb1d1 Tests: simplified proxy_next_upstream_tries.t tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 493
diff changeset
84 proxy_pass http://u/w;
492
799487ee9aee Tests: adjusted proxy_next_upstream_timeout values.
Sergey Kandaurov <pluknet@nginx.com>
parents: 485
diff changeset
85 proxy_next_upstream_timeout 1900ms;
462
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
86 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
87
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
88 location /timeout/backup {
494
623863fcb1d1 Tests: simplified proxy_next_upstream_tries.t tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 493
diff changeset
89 proxy_pass http://u2/w;
492
799487ee9aee Tests: adjusted proxy_next_upstream_timeout values.
Sergey Kandaurov <pluknet@nginx.com>
parents: 485
diff changeset
90 proxy_next_upstream_timeout 1900ms;
462
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
91 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
92
479
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
93 location /timeout/resolver {
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
94 resolver 127.0.0.1:8083;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
95 resolver_timeout 1s;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
96
494
623863fcb1d1 Tests: simplified proxy_next_upstream_tries.t tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 493
diff changeset
97 proxy_pass http://$host:8081/w;
492
799487ee9aee Tests: adjusted proxy_next_upstream_timeout values.
Sergey Kandaurov <pluknet@nginx.com>
parents: 485
diff changeset
98 proxy_next_upstream_timeout 1900ms;
479
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
99 }
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
100
493
d456ed8a18de Tests: added proxy_next_upstream_tries.t tests with zero value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 492
diff changeset
101 location /timeout/zero {
494
623863fcb1d1 Tests: simplified proxy_next_upstream_tries.t tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 493
diff changeset
102 proxy_pass http://u/w;
493
d456ed8a18de Tests: added proxy_next_upstream_tries.t tests with zero value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 492
diff changeset
103 proxy_next_upstream_timeout 0;
d456ed8a18de Tests: added proxy_next_upstream_tries.t tests with zero value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 492
diff changeset
104 }
d456ed8a18de Tests: added proxy_next_upstream_tries.t tests with zero value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 492
diff changeset
105
462
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
106 location /404 {
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
107 return 200 x${upstream_status}x;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
108 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
109 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
110 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
111
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
112 EOF
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
113
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
114 $t->run_daemon(\&http_daemon, 8081);
479
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
115 $t->run_daemon(\&dns_daemon, 8083, $t);
568
907e89fba9c3 Tests: removed TODO and try_run() checks for legacy versions.
Sergey Kandaurov <pluknet@nginx.com>
parents: 494
diff changeset
116 $t->run();
462
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
117
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
118 $t->waitforsocket('127.0.0.1:8081');
479
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
119 $t->waitforfile($t->testdir . '/8083');
462
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
120
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
121 ###############################################################################
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
122
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
123 like(http_get('/tries'), qr/x404, 404x/, 'tries');
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
124 like(http_get('/tries/backup'), qr/x404, 404x/, 'tries backup');
479
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
125 like(http_get('/tries/resolver'), qr/x404, 404x/, 'tries resolved');
493
d456ed8a18de Tests: added proxy_next_upstream_tries.t tests with zero value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 492
diff changeset
126 like(http_get('/tries/zero'), qr/x404, 404, 404x/, 'tries zero');
d456ed8a18de Tests: added proxy_next_upstream_tries.t tests with zero value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 492
diff changeset
127
492
799487ee9aee Tests: adjusted proxy_next_upstream_timeout values.
Sergey Kandaurov <pluknet@nginx.com>
parents: 485
diff changeset
128 # two tries fit into 1.9s
462
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
129
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
130 like(http_get('/timeout'), qr/x404, 404x/, 'timeout');
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
131 like(http_get('/timeout/backup'), qr/x404, 404x/, 'timeout backup');
479
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
132 like(http_get('/timeout/resolver'), qr/x404, 404x/, 'timeout resolved');
493
d456ed8a18de Tests: added proxy_next_upstream_tries.t tests with zero value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 492
diff changeset
133 like(http_get('/timeout/zero'), qr/x404, 404, 404x/, 'timeout zero');
d456ed8a18de Tests: added proxy_next_upstream_tries.t tests with zero value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 492
diff changeset
134
462
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
135 ###############################################################################
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
136
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
137 sub http_daemon {
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
138 my ($port) = @_;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
139
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
140 my $server = IO::Socket::INET->new(
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
141 Proto => 'tcp',
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
142 LocalHost => '127.0.0.1',
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
143 LocalPort => $port,
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
144 Listen => 5,
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
145 Reuse => 1
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
146 )
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
147 or die "Can't create listening socket: $!\n";
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
148
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
149 local $SIG{PIPE} = 'IGNORE';
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
150
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
151 while (my $client = $server->accept()) {
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
152 $client->autoflush(1);
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
153
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
154 my $headers = '';
494
623863fcb1d1 Tests: simplified proxy_next_upstream_tries.t tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 493
diff changeset
155 my $uri = '';
462
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
156
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
157 while (<$client>) {
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
158 $headers .= $_;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
159 last if (/^\x0d?\x0a?$/);
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
160 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
161
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
162 next if $headers eq '';
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
163
494
623863fcb1d1 Tests: simplified proxy_next_upstream_tries.t tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 493
diff changeset
164 $uri = $1 if $headers =~ /^\S+\s+([^ ]+)\s+HTTP/i;
623863fcb1d1 Tests: simplified proxy_next_upstream_tries.t tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 493
diff changeset
165
623863fcb1d1 Tests: simplified proxy_next_upstream_tries.t tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 493
diff changeset
166 if ($uri eq '/w') {
462
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
167 Test::Nginx::log_core('||', "$port: sleep(1)");
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
168 select undef, undef, undef, 1;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
169 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
170
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
171 Test::Nginx::log_core('||', "$port: response, 404");
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
172 print $client <<EOF;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
173 HTTP/1.1 404 Not Found
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
174 Connection: close
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
175
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
176 EOF
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
177
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
178 } continue {
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
179 close $client;
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
180 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
181 }
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
182
479
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
183 sub reply_handler {
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
184 my ($recv_data) = @_;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
185
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
186 my (@name, @rdata);
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
187
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
188 use constant NOERROR => 0;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
189 use constant A => 1;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
190 use constant IN => 1;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
191
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
192 # default values
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
193
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
194 my ($hdr, $rcode, $ttl) = (0x8180, NOERROR, 3600);
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
195
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
196 # decode name
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
197
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
198 my ($len, $offset) = (undef, 12);
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
199 while (1) {
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
200 $len = unpack("\@$offset C", $recv_data);
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
201 last if $len == 0;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
202 $offset++;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
203 push @name, unpack("\@$offset A$len", $recv_data);
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
204 $offset += $len;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
205 }
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
206
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
207 $offset -= 1;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
208 my ($id, $type, $class) = unpack("n x$offset n2", $recv_data);
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
209
485
cbfe90b632e8 Tests: removed stray semicolon, no functional changes.
Sergey Kandaurov <pluknet@nginx.com>
parents: 484
diff changeset
210 @rdata = map { rd_addr($ttl, '127.0.0.1') } (1 .. 3) if $type == A;
479
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
211
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
212 $len = @name;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
213 pack("n6 (w/a*)$len x n2", $id, $hdr | $rcode, 1, scalar @rdata,
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
214 0, 0, @name, $type, $class) . join('', @rdata);
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
215 }
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
216
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
217 sub rd_addr {
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
218 my ($ttl, $addr) = @_;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
219
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
220 my $code = 'split(/\./, $addr)';
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
221
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
222 return pack 'n3N', 0xc00c, A, IN, $ttl if $addr eq '';
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
223
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
224 pack 'n3N nC4', 0xc00c, A, IN, $ttl, eval "scalar $code", eval($code);
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
225 }
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
226
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
227 sub dns_daemon {
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
228 my ($port, $t) = @_;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
229
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
230 my ($data, $recv_data);
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
231 my $socket = IO::Socket::INET->new(
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
232 LocalAddr => '127.0.0.1',
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
233 LocalPort => $port,
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
234 Proto => 'udp',
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
235 )
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
236 or die "Can't create listening socket: $!\n";
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
237
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
238 # signal we are ready
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
239
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
240 open my $fh, '>', $t->testdir() . '/' . $port;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
241 close $fh;
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
242
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
243 while (1) {
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
244 $socket->recv($recv_data, 65536);
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
245 $data = reply_handler($recv_data);
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
246 $socket->send($data);
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
247 }
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
248 }
b8f10ffa02cd Tests: proxy_next_upstream_tries tests with resolved upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 462
diff changeset
249
462
cb0662e12d6e Tests: proxy_next_upstream_{tries,timeout} tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
250 ###############################################################################