Mercurial > hg > nginx-tests
annotate stream_udp_wildcard.t @ 1427:eb1d883305ea
Tests: avoid edge cases in upstream random two test.
Unavailable servers contribute to the number of attempts, if selected,
before the balancer would fall back to the default round-robin method.
This means that it's quite possible to get server with more connections.
To facilitate with selecting two alive servers, down server was removed
from the upstream configuration at the cost of slightly worse coverage.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Thu, 10 Jan 2019 17:42:34 +0300 |
parents | 97c8280de681 |
children | f3ba4c74de31 |
rev | line source |
---|---|
1164
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Sergey Kandaurov |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
6 # Tests for stream proxy module with datagrams, source address selection. |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use strict; |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 use Test::Nginx::Stream qw/ dgram /; |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 ############################################################################### |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 select STDERR; $| = 1; |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 select STDOUT; $| = 1; |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
25 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 plan(skip_all => '127.0.0.2 local address required') |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
27 unless defined IO::Socket::INET->new( LocalAddr => '127.0.0.2' ); |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
28 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 plan(skip_all => 'listen on wildcard address') |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
30 unless $ENV{TEST_NGINX_UNSAFE}; |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
31 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
32 my $t = Test::Nginx->new()->has(qw/stream stream_return udp/)->plan(1) |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 ->write_file_expand('nginx.conf', <<'EOF'); |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
35 %%TEST_GLOBALS%% |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
36 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 daemon off; |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 events { |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 } |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
42 stream { |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 server { |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 listen %%PORT_8999_UDP%% udp; |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 return $server_addr; |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 } |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
47 } |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
48 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
49 EOF |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
51 $t->run(); |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
52 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
53 ############################################################################### |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
54 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
55 my $s = dgram( |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
56 LocalAddr => '127.0.0.1', |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
57 PeerAddr => '127.0.0.2:' . port(8999) |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
58 ); |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
59 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
60 is($s->io('test'), '127.0.0.2', 'stream udp wildcard'); |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
61 |
cdd44ff602db
Tests: stream udp test with wildcard address.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
62 ############################################################################### |