X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2Fio_udp.t;h=88cb4b66292e5fb2401eb5f536255cbd4a30357a;hb=cf7fe8a27ac6ee8776974a7c83e80425f2ec0ff8;hp=014e12dc58dcbd1d69933a4d0950a37921ec766b;hpb=49460fe6d299521eb33c31ef95793c8ca16e93d2;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/lib/io_udp.t b/t/lib/io_udp.t index 014e12d..88cb4b6 100755 --- a/t/lib/io_udp.t +++ b/t/lib/io_udp.t @@ -21,8 +21,16 @@ BEGIN { } } +sub compare_addr { + my $a = shift; + my $b = shift; + my @a = unpack_sockaddr_in($a); + my @b = unpack_sockaddr_in($b); + "$a[0]$a[1]" eq "$b[0]$b[1]"; +} + $| = 1; -print "1..3\n"; +print "1..7\n"; use Socket; use IO::Socket qw(AF_INET SOCK_DGRAM INADDR_ANY); @@ -35,14 +43,33 @@ use IO::Socket qw(AF_INET SOCK_DGRAM INADDR_ANY); $udpa = IO::Socket::INET->new(Proto => 'udp', LocalAddr => 'localhost') or die "$! (maybe your system does not have the 'localhost' address defined)"; + +print "ok 1\n"; + $udpb = IO::Socket::INET->new(Proto => 'udp', LocalAddr => 'localhost') or die "$! (maybe your system does not have the 'localhost' address defined)"; -print "ok 1\n"; +print "ok 2\n"; + +$udpa->send("ok 4\n",0,$udpb->sockname); -$udpa->send("ok 2\n",0,$udpb->sockname); -$udpb->recv($buf="",5); +print "not " unless compare_addr($udpa->peername,$udpb->sockname); +print "ok 3\n"; + +my $where = $udpb->recv($buf="",5); print $buf; -$udpb->send("ok 3\n"); + +my @xtra = (); + +unless(compare_addr($where,$udpa->sockname)) { + print "not "; + @xtra = (0,$udpa->sockname); +} +print "ok 5\n"; + +$udpb->send("ok 6\n",@xtra); $udpa->recv($buf="",5); print $buf; + +print "not " if $udpa->connected; +print "ok 7\n";