Skip the udp ping tests if testing on Vista. Also, switched
Steve Peters [Tue, 20 Nov 2007 17:51:05 +0000 (17:51 +0000)]
the getservbyname() call to check for a udp echo port.

p4raw-id: //depot/perl@32428

lib/Net/Ping/t/510_ping_udp.t

index 35f44fd..ce55a7d 100644 (file)
@@ -1,12 +1,24 @@
 # Test to perform udp protocol testing.
 
+sub isWindowsVista {
+   return unless $^O eq 'MSWin32' or $^O eq "cygwin";
+   return unless eval { require Win32 };
+   return unless defined &Win32::GetOSName;
+   return Win32::GetOSName() eq "WinVista";
+}
+
 BEGIN {
   unless (eval "require Socket") {
     print "1..0 \# Skip: no Socket\n";
     exit;
   }
-  unless (getservbyname('echo', 'tcp')) {
-    print "1..0 \# Skip: no echo port\n";
+  unless (getservbyname('echo', 'udp')) {
+    print "1..0 \# Skip: no udp echo port\n";
+    exit;
+  }
+
+  if(isWindowsVista()) {
+    print "1..0 \# Skip: udp ping blocked by Vista's default settings\n";
     exit;
   }
 }