is($new->sockdomain(), $d, 'domain match');
SKIP: {
skip "no Socket::SO_PROTOCOL", 1 if !defined(eval { Socket::SO_PROTOCOL });
+ skip "SO_PROTOCOL defined but not implemented", 1
+ if !defined $new->sockopt(Socket::SO_PROTOCOL);
is($new->protocol(), $p, 'protocol match');
}
SKIP: {
skip "no Socket::SO_TYPE", 1 if !defined(eval { Socket::SO_TYPE });
+ skip "SO_TYPE defined but not implemented", 1
+ if !defined $new->sockopt(Socket::SO_TYPE);
is($new->socktype(), $s, 'type match');
}
}
undef $TODO;
-# now test datagram sockets:
-$listener = IO::Socket::UNIX->new(Type => SOCK_DGRAM,
- Local => $socketpath);
-ok(defined($listener), 'datagram socket created');
-
-$p = $listener->protocol();
-ok(defined($p), 'protocol defined');
-$d = $listener->sockdomain();
-ok(defined($d), 'domain defined');
-$s = $listener->socktype();
-ok(defined($s), 'type defined');
-
-my $new = IO::Socket::UNIX->new_from_fd($listener->fileno(), 'r+');
-
-is($new->sockdomain(), $d, 'domain match');
-SKIP: {
- skip "no Socket::SO_PROTOCOL", 1 if !defined(eval { Socket::SO_PROTOCOL });
- is($new->protocol(), $p, 'protocol match');
-}
SKIP: {
- skip "no Socket::SO_TYPE", 1 if !defined(eval { Socket::SO_TYPE });
- is($new->socktype(), $s, 'type match');
+ skip "datagram unix sockets not supported on $^O", 7
+ if $^O eq "haiku";
+ # now test datagram sockets:
+ $listener = IO::Socket::UNIX->new(Type => SOCK_DGRAM,
+ Local => $socketpath);
+ ok(defined($listener), 'datagram socket created');
+
+ $p = $listener->protocol();
+ ok(defined($p), 'protocol defined');
+ $d = $listener->sockdomain();
+ ok(defined($d), 'domain defined');
+ $s = $listener->socktype();
+ ok(defined($s), 'type defined');
+
+ my $new = IO::Socket::UNIX->new_from_fd($listener->fileno(), 'r+');
+
+ is($new->sockdomain(), $d, 'domain match');
+ SKIP: {
+ skip "no Socket::SO_PROTOCOL", 1 if !defined(eval { Socket::SO_PROTOCOL });
+ is($new->protocol(), $p, 'protocol match');
+ }
+ SKIP: {
+ skip "no Socket::SO_TYPE", 1 if !defined(eval { Socket::SO_TYPE });
+ is($new->socktype(), $s, 'type match');
+ }
}
unlink($socketpath);