diff stream_udp_upstream.t @ 952:e9064d691790

Tests: converted tests to run in parallel.
author Andrey Zelenkov <zelenkov@nginx.com>
date Tue, 21 Jun 2016 16:39:13 +0300
parents b9e42c554ba7
children 882267679006
line wrap: on
line diff
--- a/stream_udp_upstream.t
+++ b/stream_udp_upstream.t
@@ -38,80 +38,81 @@ stream {
     proxy_timeout        1s;
 
     upstream u {
-        server 127.0.0.1:8087;
-        server 127.0.0.1:8088;
+        server 127.0.0.1:%%PORT_4_UDP%%;
+        server 127.0.0.1:%%PORT_5_UDP%%;
     }
 
     upstream u2 {
-        server 127.0.0.1:8089 down;
-        server 127.0.0.1:8089;
-        server 127.0.0.1:8087;
-        server 127.0.0.1:8088;
+        server 127.0.0.1:%%PORT_6_UDP%% down;
+        server 127.0.0.1:%%PORT_6_UDP%%;
+        server 127.0.0.1:%%PORT_4_UDP%%;
+        server 127.0.0.1:%%PORT_5_UDP%%;
     }
 
     upstream u3 {
-        server 127.0.0.1:8087;
-        server 127.0.0.1:8088 weight=2;
+        server 127.0.0.1:%%PORT_4_UDP%%;
+        server 127.0.0.1:%%PORT_5_UDP%% weight=2;
     }
 
     upstream u4 {
-        server 127.0.0.1:8089;
-        server 127.0.0.1:8087 backup;
+        server 127.0.0.1:%%PORT_6_UDP%%;
+        server 127.0.0.1:%%PORT_4_UDP%% backup;
     }
 
     server {
-        listen      127.0.0.1:8081 udp;
+        listen      127.0.0.1:%%PORT_0_UDP%% udp;
         proxy_pass  u;
     }
 
     server {
-        listen      127.0.0.1:8082 udp;
+        listen      127.0.0.1:%%PORT_1_UDP%% udp;
         proxy_pass  u2;
     }
 
     server {
-        listen      127.0.0.1:8083 udp;
+        listen      127.0.0.1:%%PORT_2_UDP%% udp;
         proxy_pass  u3;
     }
 
     server {
-        listen      127.0.0.1:8084 udp;
+        listen      127.0.0.1:%%PORT_3_UDP%% udp;
         proxy_pass  u4;
     }
 }
 
 EOF
 
-$t->run_daemon(\&udp_daemon, 8087, $t);
-$t->run_daemon(\&udp_daemon, 8088, $t);
+$t->run_daemon(\&udp_daemon, port(4), $t);
+$t->run_daemon(\&udp_daemon, port(5), $t);
 $t->try_run('no stream udp')->plan(4);
 
-$t->waitforfile($t->testdir . '/8087');
-$t->waitforfile($t->testdir . '/8088');
+$t->waitforfile($t->testdir . '/' . port(4));
+$t->waitforfile($t->testdir . '/' . port(5));
 
 ###############################################################################
 
-is(many('.', 30, peer => '127.0.0.1:8081'), '8087: 15, 8088: 15', 'balanced');
-is(many('.', 30, peer => '127.0.0.1:8082'), '8087: 15, 8088: 15', 'failures');
-is(many('.', 30, peer => '127.0.0.1:8083'), '8087: 10, 8088: 20', 'weight');
-is(many('.', 30, peer => '127.0.0.1:8084'), '8087: 30', 'backup');
+my @ports = my ($port4, $port5) = (port(4), port(5));
+
+is(many(30, port(0)), "$port4: 15, $port5: 15", 'balanced');
+is(many(30, port(1)), "$port4: 15, $port5: 15", 'failures');
+is(many(30, port(2)), "$port4: 10, $port5: 20", 'weight');
+is(many(30, port(3)), "$port4: 30", 'backup');
 
 ###############################################################################
 
 sub many {
-	my ($data, $count, %opts) = @_;
-	my (%ports, $peer);
-
-	$peer = $opts{peer};
+	my ($count, $port) = @_;
+	my (%ports);
 
 	for (1 .. $count) {
-		if (dgram($peer)->io($data) =~ /(\d+)/) {
+		if (dgram("127.0.0.1:$port")->io('.') =~ /(\d+)/) {
 			$ports{$1} = 0 unless defined $ports{$1};
 			$ports{$1}++;
 		}
 	}
 
-	return join ', ', map { $_ . ": " . $ports{$_} } sort keys %ports;
+	my @keys = map { my $p = $_; grep { $p == $_ } keys %ports } @ports;
+	return join ', ', map { $_ . ": " . $ports{$_} } @keys;
 }
 
 ###############################################################################