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) = @_;