Mercurial > hg > nginx-tests
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; } ###############################################################################