Skip Menu |

This queue is for tickets about the IO-Socket-IP CPAN distribution.

Report information
The Basics
Id: 74663
Status: resolved
Priority: 0/
Queue: IO-Socket-IP

People
Owner: Nobody in particular
Requestors: RURBAN [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in: 0.08
Fixed in: 0.09



Subject: fix failing cygwin tests
Fixed some windows tests. Only tested ok on cygwin so far. -- Reini Urban
Subject: windows.patch
difforig diff -u ./t/04local-client-v6.t.orig --- ./t/04local-client-v6.t.orig 2012-01-10 11:10:49.000000000 -0600 +++ ./t/04local-client-v6.t 2012-02-03 10:48:19.149047100 -0600 @@ -44,12 +44,18 @@ ok( defined $testclient, "accepted test $socktype client" ); - is_deeply( [ Socket::unpack_sockaddr_in6( $socket->sockname ) ], - [ Socket::unpack_sockaddr_in6( $testclient->peername ) ], + # ignore flowinfo, which is broken on windows + sub sockaddr_arr { + my @addr = Socket::unpack_sockaddr_in6( shift ); + return $^O =~ /MSWin32|cygwin|msys/ ? @addr[0,1] : @addr; + } + + is_deeply( [ sockaddr_arr( $socket->sockname ) ], + [ sockaddr_arr( $testclient->peername ) ], "\$socket->sockname for $socktype" ); - is_deeply( [ Socket::unpack_sockaddr_in6( $socket->peername ) ], - [ Socket::unpack_sockaddr_in6( $testclient->sockname ) ], + is_deeply( [ sockaddr_arr( $socket->peername ) ], + [ sockaddr_arr( $testclient->sockname ) ], "\$socket->peername for $socktype" ); is( $socket->peerhost, "::1", "\$socket->peerhost for $socktype" ); diff -u ./t/05local-server-v6.t.orig --- ./t/05local-server-v6.t.orig 2012-01-10 11:10:49.000000000 -0600 +++ ./t/05local-server-v6.t 2012-02-03 10:50:14.156009844 -0600 @@ -46,12 +46,18 @@ is( $testclient->sockdomain, $AF_INET6, "\$testclient->sockdomain for $socktype" ); is( $testclient->socktype, Socket->$socktype, "\$testclient->socktype for $socktype" ); - is_deeply( [ Socket::unpack_sockaddr_in6( $socket->sockname ) ], - [ Socket::unpack_sockaddr_in6( $testclient->peername ) ], + # ignore flowinfo, which is broken on windows + sub sockaddr_arr { + my @addr = Socket::unpack_sockaddr_in6( shift ); + return $^O =~ /MSWin32|cygwin|msys/ ? @addr[0,1] : @addr; + } + + is_deeply( [ sockaddr_arr( $socket->sockname ) ], + [ sockaddr_arr( $testclient->peername ) ], "\$socket->sockname for $socktype" ); - is_deeply( [ Socket::unpack_sockaddr_in6( $socket->peername ) ], - [ Socket::unpack_sockaddr_in6( $testclient->sockname ) ], + is_deeply( [ sockaddr_arr( $socket->peername ) ], + [ sockaddr_arr( $testclient->sockname ) ], "\$socket->peername for $socktype" ); my $peerport = ( Socket::unpack_sockaddr_in6 $socket->peername )[0]; diff -u ./t/06local-cross-v6.t.orig --- ./t/06local-cross-v6.t.orig 2012-01-10 11:10:49.000000000 -0600 +++ ./t/06local-cross-v6.t 2012-02-03 10:54:52.937488303 -0600 @@ -36,6 +36,9 @@ $socket->write( "Request\n" ); is( $testclient->getline, "Request\n", "\$socket to \$testclient for $socktype" ); - $testclient->write( "Response\n" ); - is( $socket->getline, "Response\n", "\$testclient to \$socket for $socktype" ); + SKIP: { + skip "local DGRAM response fails on windows", 1 if $socktype eq 'SOCK_DGRAM' and $^O =~ /MSWin32|cygwin|msys/; + $testclient->write( "Response\n" ); + is( $socket->getline, "Response\n", "\$testclient to \$socket for $socktype" ); + } }
On Fri Feb 03 11:58:33 2012, RURBAN wrote: Show quoted text
> Fixed some windows tests. Only tested ok on cygwin so far.
Cool, thanks. Applied with some rewording to bzr source. Will be in 0.08_002. -- Paul Evans
Released as 0.09. (actually quite a while ago but I forgot to close). -- Paul Evans