Mercurial > hg > nginx-tests
diff lib/Test/Nginx/Stream.pm @ 868:d2cb9ed7412e
Tests: stream udp tests.
author | Andrey Zelenkov <zelenkov@nginx.com> |
---|---|
date | Tue, 15 Mar 2016 16:20:29 +0300 |
parents | 77359b849cd5 |
children | c380b4b7e2e4 |
line wrap: on
line diff
--- a/lib/Test/Nginx/Stream.pm +++ b/lib/Test/Nginx/Stream.pm @@ -11,7 +11,7 @@ use warnings; use strict; use base qw/ Exporter /; -our @EXPORT_OK = qw/ stream /; +our @EXPORT_OK = qw/ stream dgram /; use Test::More qw//; use IO::Select; @@ -23,6 +23,16 @@ sub stream { return Test::Nginx::Stream->new(@_); } +sub dgram { + unshift(@_, "PeerAddr") if @_ == 1; + + return Test::Nginx::Stream->new( + Proto => "udp", + PeerAddr => '127.0.0.1:8080', + @_ + ); +} + sub new { my $self = {}; bless $self, shift @_; @@ -88,11 +98,17 @@ sub io { my ($data, %extra) = @_; my $length = $extra{length}; + my $read = $extra{read}; + + $read = 1 if !defined $read + && $self->{_socket}->socktype() == &SOCK_DGRAM; $self->write($data); $data = ''; while (1) { + last if defined $read && --$read < 0; + my $buf = $self->read(); last unless length($buf);