Mercurial > hg > nginx-tests
diff stream_upstream_least_conn.t @ 816:77359b849cd5
Tests: stream package.
author | Andrey Zelenkov <zelenkov@nginx.com> |
---|---|
date | Mon, 20 Jul 2015 15:06:09 +0300 |
parents | b8db75ef1f00 |
children | e9064d691790 |
line wrap: on
line diff
--- a/stream_upstream_least_conn.t Mon Dec 21 16:30:03 2015 +0300 +++ b/stream_upstream_least_conn.t Mon Jul 20 15:06:09 2015 +0300 @@ -18,6 +18,7 @@ use lib 'lib'; use Test::Nginx; +use Test::Nginx::Stream qw/ stream /; ############################################################################### @@ -62,8 +63,8 @@ my @sockets; for (1 .. 2) { - my $s = stream_connect(); - stream_write($s, 'w'); + my $s = stream(); + $s->write('w'); push @sockets, $s; } @@ -75,12 +76,10 @@ sub many { my ($data, $count, %opts) = @_; - my (%ports, $peer); - - $peer = $opts{peer}; + my (%ports); for (1 .. $count) { - if (stream_get($data, $peer) =~ /(\d+)/) { + if (stream()->io($data) =~ /(\d+)/) { $ports{$1} = 0 unless defined $ports{$1}; $ports{$1}++; } @@ -89,61 +88,6 @@ return join ', ', map { $_ . ": " . $ports{$_} } sort keys %ports; } -sub stream_get { - my ($data, $peer) = @_; - - my $s = stream_connect($peer); - stream_write($s, $data); - - $data = ''; - while (my $buf = stream_read($s)) { - $data .= $buf; - } - return $data; -} - -sub stream_connect { - my $peer = shift; - my $s = IO::Socket::INET->new( - Proto => 'tcp', - PeerAddr => $peer || '127.0.0.1:8080' - ) - or die "Can't connect to nginx: $!\n"; - - return $s; -} - -sub stream_write { - my ($s, $message) = @_; - - local $SIG{PIPE} = 'IGNORE'; - - $s->blocking(0); - while (IO::Select->new($s)->can_write(1.5)) { - my $n = $s->syswrite($message); - last unless $n; - $message = substr($message, $n); - last unless length $message; - } - - if (length $message) { - $s->close(); - } -} - -sub stream_read { - my ($s) = @_; - my ($buf); - - $s->blocking(0); - if (IO::Select->new($s)->can_read(5)) { - $s->sysread($buf, 1024); - }; - - log_in($buf); - return $buf; -} - ############################################################################### sub stream_daemon {