portability to Haiku-OS for the cachepropagate-*.t tests
[perl.git] / dist / IO / t / cachepropagate-udp.t
1 #!/usr/bin/perl
2
3 use warnings;
4 use strict;
5
6 use IO::Socket;
7 use IO::Socket::INET;
8 use Socket;
9 use Test::More;
10
11 plan tests => 7;
12
13 my $listener = IO::Socket::INET->new(LocalAddr => '127.0.0.1',
14                                      Proto => 'udp');
15 ok(defined($listener), 'socket created');
16
17 my $p = $listener->protocol();
18 ok(defined($p), 'protocol defined');
19 my $d = $listener->sockdomain();
20 ok(defined($d), 'domain defined');
21 my $s = $listener->socktype();
22 ok(defined($s), 'type defined');
23
24 my $new = IO::Socket::INET->new_from_fd($listener->fileno(), 'r+');
25
26 is($new->sockdomain(), $d, 'domain match');
27 SKIP: {
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 }
33 SKIP: {
34     skip "no Socket::SO_TYPE", 1 if !defined(eval { Socket::SO_TYPE });
35     skip "SO_TYPE defined but not implemented", 1
36         if !defined $new->sockopt(Socket::SO_TYPE);
37     is($new->socktype(), $s, 'type match');
38 }