1#!/usr/bin/perl 2 3use warnings; 4use strict; 5 6use IO::Socket; 7use IO::Socket::INET; 8use Socket; 9use Test::More; 10 11plan tests => 7; 12 13my $listener = IO::Socket::INET->new(LocalAddr => '127.0.0.1', 14 Proto => 'udp'); 15ok(defined($listener), 'socket created'); 16 17my $p = $listener->protocol(); 18ok(defined($p), 'protocol defined'); 19my $d = $listener->sockdomain(); 20ok(defined($d), 'domain defined'); 21my $s = $listener->socktype(); 22ok(defined($s), 'type defined'); 23 24my $new = IO::Socket::INET->new_from_fd($listener->fileno(), 'r+'); 25 26is($new->sockdomain(), $d, 'domain match'); 27SKIP: { 28 skip "no Socket::SO_PROTOCOL", 1 if !defined(eval { Socket::SO_PROTOCOL }); 29 skip "SO_PROTOCOL defined but not implemented", 1 30 if !defined $new->sockopt(Socket::SO_PROTOCOL); 31 is($new->protocol(), $p, 'protocol match'); 32} 33SKIP: { 34 skip "AIX: getsockopt(SO_TYPE) is badly broken on UDP/UNIX sockets", 1 35 if $^O eq "aix"; 36 skip "no Socket::SO_TYPE", 1 if !defined(eval { Socket::SO_TYPE }); 37 skip "SO_TYPE defined but not implemented", 1 38 if !defined $new->sockopt(Socket::SO_TYPE); 39 is($new->socktype(), $s, 'type match'); 40} 41