diff stream_upstream_hash.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 77359b849cd5
children 882267679006
line wrap: on
line diff
--- a/stream_upstream_hash.t
+++ b/stream_upstream_hash.t
@@ -39,57 +39,58 @@ events {
 stream {
     upstream hash {
         hash $remote_addr;
-        server 127.0.0.1:8087;
-        server 127.0.0.1:8088;
+        server 127.0.0.1:%%PORT_2%%;
+        server 127.0.0.1:%%PORT_3%%;
     }
 
     upstream cons {
         hash $remote_addr consistent;
-        server 127.0.0.1:8087;
-        server 127.0.0.1:8088;
+        server 127.0.0.1:%%PORT_2%%;
+        server 127.0.0.1:%%PORT_3%%;
     }
 
     server {
-        listen      127.0.0.1:8081;
+        listen      127.0.0.1:%%PORT_0%%;
         proxy_pass  hash;
     }
 
     server {
-        listen      127.0.0.1:8082;
+        listen      127.0.0.1:%%PORT_1%%;
         proxy_pass  cons;
     }
 }
 
 EOF
 
-$t->run_daemon(\&stream_daemon, 8087);
-$t->run_daemon(\&stream_daemon, 8088);
+$t->run_daemon(\&stream_daemon, port(2));
+$t->run_daemon(\&stream_daemon, port(3));
 $t->run();
 
-$t->waitforsocket('127.0.0.1:8087');
-$t->waitforsocket('127.0.0.1:8088');
+$t->waitforsocket('127.0.0.1:' . port(2));
+$t->waitforsocket('127.0.0.1:' . port(3));
 
 ###############################################################################
 
-is(many('.', 10, peer => '127.0.0.1:8081'), '8088: 10', 'hash');
-is(many('.', 10, peer => '127.0.0.1:8082'), '8088: 10', 'hash consistent');
+my @ports = my ($port2, $port3) = (port(2), port(3));
+
+is(many(10, port(0)), "$port3: 10", 'hash');
+like(many(10, port(1)), qr/($port2|$port3): 10/, 'hash consistent');
 
 ###############################################################################
 
 sub many {
-	my ($data, $count, %opts) = @_;
-	my (%ports, $peer);
-
-	$peer = $opts{peer};
+	my ($count, $port) = @_;
+	my (%ports);
 
 	for (1 .. $count) {
-		if (stream($peer)->io($data) =~ /(\d+)/) {
+		if (stream("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;
 }
 
 ###############################################################################