Subject: Re: Net::Ping 2.23 failure on Irix Subject: Re: FAIL Net-Ping-2.23 IP30-irix-thread-multi-64int-ld 6.5 Subject: Re: FAIL Net-Ping-2.23 sun4-solaris 2.8
cpan testing: Ugh, you're killing me. There exist such boxes that won't bind to 127.1.1.1 or 127.2.2.2??? (ie., Irix and Solaris) It worked perfectly for me under Linux and EVEN UNDER WINDOWS! So I assumed it worked everywhere. Bad assumption. :-/ Version 2.22 and 2.23 both had this bug. I've changed the IPs to [127.0.0.1] for version Net-Ping-2.24. Can I always assume THAT can be bind()ed to? It's in cvs: cvs -z3 -q -d :pserver:[EMAIL PROTECTED]:/usr/local/cvsroot/freeware checkout Net-Ping cd Net-Ping perl Makefile.PL make perl -Iblib t/450_service.t make test Please let me know if this breaks before I waste another version burning it up to CPAN. I do not have a Irix nor Solaris nor a PowerBook G4 box to test it on. Also thanks to Dan the Man for the most helpful feedback. Rob Brown CPANID: BBB ---------- Forwarded message ---------- Date: Mon, 21 Oct 2002 20:57:29 +0900 From: Dan Kogai <[EMAIL PROTECTED]> To: Rob Brown <[EMAIL PROTECTED]> Cc: Perl 5 Porters <[EMAIL PROTECTED]> Subject: Net::Ping 2.23 t/450_service.t On Monday, Oct 21, 2002, at 20:32 Asia/Tokyo, Dan Kogai wrote: > I think the choice of IP addresses (127.2.2.2) causes the problem. I > think things like > > t/450_service.t >> # Start listening on another ephemeral port >> my $sock2 = new IO::Socket::INET >> LocalAddr => "127.2.2.2", >> Proto => "tcp", >> Listen => 8, >> Reuse => 1, >> Type => SOCK_STREAM, >> ; > > won't work on too many platforms (I think virtually all *BSD will > refuse to run this test successfully). Just because 127.0.0.1 is > ifconfig'ed with /8 does not neccessarily mean you can listen to > anything on 127.0.0.0/8. I strongly suggests you rename this script to t/450_service.pl or something so that it won't run on usual 'make test' sequence. What IP address you can listen() is too hard to generalize. Or even better, mark it skipped unless you give two valid IP addresses you can listen() to. Here is the result of the modified version of t/450_service (.t -> .pl) that uses IP Addresses fed via @ARGV. This time it worked. Tested on PowerBook G4 w/ AirPort. > # perl -Mblib t/450_service.pl 172.16.X.X 10.0.X.X > 1..37 > # Running under perl version 5.008 for darwin > # Current time local: Mon Oct 21 11:50:59 2002 > # Current time GMT: Mon Oct 21 20:50:59 2002 > # Using Test.pm version 1.22 > ok 1 > ok 2 > ok 3 > [snip] > ok 37 And here is what happens when you use 127/8. > # perl -Mblib t/450_service.pl 127.1.1.1 127.2.2.2 > 1..37 > # Running under perl version 5.008 for darwin > # Current time local: Mon Oct 21 11:56:10 2002 > # Current time GMT: Mon Oct 21 20:56:10 2002 > # Using Test.pm version 1.22 > ok 1 > not ok 2 > # Failed test 2 in t/450_service.pl at line 44 > # t/450_service.pl line 44 is: ok !!$sock1; > not ok 3 > # Failed test 3 in t/450_service.pl at line 58 > # t/450_service.pl line 58 is: ok !!$sock2; > Can't call method "sockport" on an undefined value at t/450_service.pl > line 60. Dan the Man with Too Many Open Ports Already
