changeset 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 746d9ffdbd26
children d2ceb8c8ef8b
files stream_udp_limit_conn.t stream_udp_proxy.t stream_udp_upstream.t
diffstat 3 files changed, 27 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/stream_udp_limit_conn.t
+++ b/stream_udp_limit_conn.t
@@ -87,18 +87,24 @@ my $s = dgram('127.0.0.1:' . port(8981))
 
 is($s->io('1'), '1', 'passed');
 
-# if not all responses were sent to client, then new request
-# in same socket will be treated as new connection
+# regardless of incomplete responses, new requests in the same
+# socket will be treated as requests in existing session
+
+TODO: {
+local $TODO = 'not yet' unless $t->has_version('1.15.0');
 
-is($s->io('1', read_timeout => 0.1), '', 'rejected new connection');
+is($s->io('1', read_timeout => 0.1), '1', 'passed new request');
+
+}
+
 is(dgram('127.0.0.1:' . port(8981))->io('1', read_timeout => 0.1), '',
-	'rejected same zone');
+	'rejected new session');
 is(dgram('127.0.0.1:' . port(8982))->io('1'), '1', 'passed different zone');
 is(dgram('127.0.0.1:' . port(8983))->io('1'), '1', 'passed same zone unlimited');
 
 sleep 1;	# waiting for proxy_timeout to expire
 
-is($s->io('2', read => 2), '12', 'new connection after proxy_timeout');
+is($s->io('2', read => 2), '12', 'new session after proxy_timeout');
 
 is(dgram('127.0.0.1:' . port(8981))->io('2', read => 2), '12', 'passed 2');
 
--- a/stream_udp_proxy.t
+++ b/stream_udp_proxy.t
@@ -22,7 +22,7 @@ use Test::Nginx::Stream qw/ dgram /;
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/stream udp/)->plan(5)
+my $t = Test::Nginx->new()->has(qw/stream udp/)->plan(4)
 	->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
@@ -69,8 +69,8 @@ is($s->io('1', read => 1, read_timeout =
 
 $s = dgram('127.0.0.1:' . port(8982));
 is($s->io('1'), '1', 'proxy responses 1');
+$s = dgram('127.0.0.1:' . port(8982));
 is($s->io('2', read => 2), '12', 'proxy responses 2');
-is($s->io('3', read => 3, read_timeout => 0.5), '12', 'proxy responses 3');
 
 $s = dgram('127.0.0.1:' . port(8983));
 is($s->io('3', read => 3), '123', 'proxy responses default');
--- a/stream_udp_upstream.t
+++ b/stream_udp_upstream.t
@@ -23,7 +23,7 @@ use Test::Nginx::Stream qw/ dgram /;
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/stream udp/)
+my $t = Test::Nginx->new()->has(qw/stream udp/)->plan(4)
 	->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
@@ -37,9 +37,6 @@ stream {
     proxy_responses      1;
     proxy_timeout        1s;
 
-    log_format bytes $upstream_addr!
-                     $upstream_bytes_sent!$upstream_bytes_received;
-
     upstream u {
         server 127.0.0.1:%%PORT_8984_UDP%%;
         server 127.0.0.1:%%PORT_8985_UDP%%;
@@ -58,7 +55,7 @@ stream {
     }
 
     upstream u4 {
-        server 127.0.0.1:%%PORT_8986_UDP%%;
+        server 127.0.0.1:%%PORT_8986_UDP%% down;
         server 127.0.0.1:%%PORT_8984_UDP%% backup;
     }
 
@@ -80,7 +77,6 @@ stream {
     server {
         listen      127.0.0.1:%%PORT_8983_UDP%% udp;
         proxy_pass  u4;
-        access_log  %%TESTDIR%%/u.log bytes;
     }
 }
 
@@ -88,25 +84,29 @@ EOF
 
 $t->run_daemon(\&udp_daemon, port(8984), $t);
 $t->run_daemon(\&udp_daemon, port(8985), $t);
-$t->run()->plan(5);
+$t->run();
 
 $t->waitforfile($t->testdir . '/' . port(8984));
 $t->waitforfile($t->testdir . '/' . port(8985));
 
 ###############################################################################
 
-my @ports = my ($port4, $port5, $port6) = (port(8984), port(8985), port(8986));
+my @ports = my ($port4, $port5) = (port(8984), port(8985));
 
 is(many(10, port(8980)), "$port4: 5, $port5: 5", 'balanced');
-is(many(10, port(8981)), "$port4: 5, $port5: 5", 'failures');
+
+# no next upstream for dgram
+
+TODO: {
+local $TODO = 'not yet' unless $t->has_version('1.15.0');
+
+is(many(10, port(8981)), "$port4: 5, $port5: 4", 'failures');
+
+}
+
 is(many(9, port(8982)), "$port4: 3, $port5: 6", 'weight');
 is(many(10, port(8983)), "$port4: 10", 'backup');
 
-$t->stop();
-
-like($t->read_file('u.log'), qr/127.0.0.1:$port6, 127.0.0.1:$port4!1, 1!0, 4/,
-	'per-upstream variables');
-
 ###############################################################################
 
 sub many {