Mercurial > hg > nginx-tests
comparison stream_udp_upstream.t @ 1334:c4f58dfe8207
Tests: stream udp tests adjusted for upcoming udp streams.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Thu, 24 May 2018 20:52:00 +0300 |
parents | 766bcbb632ee |
children | 5bee71e1548f |
comparison
equal
deleted
inserted
replaced
1333:746d9ffdbd26 | 1334:c4f58dfe8207 |
---|---|
21 ############################################################################### | 21 ############################################################################### |
22 | 22 |
23 select STDERR; $| = 1; | 23 select STDERR; $| = 1; |
24 select STDOUT; $| = 1; | 24 select STDOUT; $| = 1; |
25 | 25 |
26 my $t = Test::Nginx->new()->has(qw/stream udp/) | 26 my $t = Test::Nginx->new()->has(qw/stream udp/)->plan(4) |
27 ->write_file_expand('nginx.conf', <<'EOF'); | 27 ->write_file_expand('nginx.conf', <<'EOF'); |
28 | 28 |
29 %%TEST_GLOBALS%% | 29 %%TEST_GLOBALS%% |
30 | 30 |
31 daemon off; | 31 daemon off; |
34 } | 34 } |
35 | 35 |
36 stream { | 36 stream { |
37 proxy_responses 1; | 37 proxy_responses 1; |
38 proxy_timeout 1s; | 38 proxy_timeout 1s; |
39 | |
40 log_format bytes $upstream_addr! | |
41 $upstream_bytes_sent!$upstream_bytes_received; | |
42 | 39 |
43 upstream u { | 40 upstream u { |
44 server 127.0.0.1:%%PORT_8984_UDP%%; | 41 server 127.0.0.1:%%PORT_8984_UDP%%; |
45 server 127.0.0.1:%%PORT_8985_UDP%%; | 42 server 127.0.0.1:%%PORT_8985_UDP%%; |
46 } | 43 } |
56 server 127.0.0.1:%%PORT_8984_UDP%%; | 53 server 127.0.0.1:%%PORT_8984_UDP%%; |
57 server 127.0.0.1:%%PORT_8985_UDP%% weight=2; | 54 server 127.0.0.1:%%PORT_8985_UDP%% weight=2; |
58 } | 55 } |
59 | 56 |
60 upstream u4 { | 57 upstream u4 { |
61 server 127.0.0.1:%%PORT_8986_UDP%%; | 58 server 127.0.0.1:%%PORT_8986_UDP%% down; |
62 server 127.0.0.1:%%PORT_8984_UDP%% backup; | 59 server 127.0.0.1:%%PORT_8984_UDP%% backup; |
63 } | 60 } |
64 | 61 |
65 server { | 62 server { |
66 listen 127.0.0.1:%%PORT_8980_UDP%% udp; | 63 listen 127.0.0.1:%%PORT_8980_UDP%% udp; |
78 } | 75 } |
79 | 76 |
80 server { | 77 server { |
81 listen 127.0.0.1:%%PORT_8983_UDP%% udp; | 78 listen 127.0.0.1:%%PORT_8983_UDP%% udp; |
82 proxy_pass u4; | 79 proxy_pass u4; |
83 access_log %%TESTDIR%%/u.log bytes; | |
84 } | 80 } |
85 } | 81 } |
86 | 82 |
87 EOF | 83 EOF |
88 | 84 |
89 $t->run_daemon(\&udp_daemon, port(8984), $t); | 85 $t->run_daemon(\&udp_daemon, port(8984), $t); |
90 $t->run_daemon(\&udp_daemon, port(8985), $t); | 86 $t->run_daemon(\&udp_daemon, port(8985), $t); |
91 $t->run()->plan(5); | 87 $t->run(); |
92 | 88 |
93 $t->waitforfile($t->testdir . '/' . port(8984)); | 89 $t->waitforfile($t->testdir . '/' . port(8984)); |
94 $t->waitforfile($t->testdir . '/' . port(8985)); | 90 $t->waitforfile($t->testdir . '/' . port(8985)); |
95 | 91 |
96 ############################################################################### | 92 ############################################################################### |
97 | 93 |
98 my @ports = my ($port4, $port5, $port6) = (port(8984), port(8985), port(8986)); | 94 my @ports = my ($port4, $port5) = (port(8984), port(8985)); |
99 | 95 |
100 is(many(10, port(8980)), "$port4: 5, $port5: 5", 'balanced'); | 96 is(many(10, port(8980)), "$port4: 5, $port5: 5", 'balanced'); |
101 is(many(10, port(8981)), "$port4: 5, $port5: 5", 'failures'); | 97 |
98 # no next upstream for dgram | |
99 | |
100 TODO: { | |
101 local $TODO = 'not yet' unless $t->has_version('1.15.0'); | |
102 | |
103 is(many(10, port(8981)), "$port4: 5, $port5: 4", 'failures'); | |
104 | |
105 } | |
106 | |
102 is(many(9, port(8982)), "$port4: 3, $port5: 6", 'weight'); | 107 is(many(9, port(8982)), "$port4: 3, $port5: 6", 'weight'); |
103 is(many(10, port(8983)), "$port4: 10", 'backup'); | 108 is(many(10, port(8983)), "$port4: 10", 'backup'); |
104 | |
105 $t->stop(); | |
106 | |
107 like($t->read_file('u.log'), qr/127.0.0.1:$port6, 127.0.0.1:$port4!1, 1!0, 4/, | |
108 'per-upstream variables'); | |
109 | 109 |
110 ############################################################################### | 110 ############################################################################### |
111 | 111 |
112 sub many { | 112 sub many { |
113 my ($count, $port) = @_; | 113 my ($count, $port) = @_; |