Blame t/ip_mreq.t

Packit Service 098c73
use strict;
Packit Service 098c73
use warnings;
Packit Service 098c73
use Test::More;
Packit Service 098c73
Packit Service 098c73
use Socket qw(
Packit Service 098c73
    INADDR_ANY
Packit Service 098c73
    pack_ip_mreq unpack_ip_mreq
Packit Service 098c73
    pack_ip_mreq_source unpack_ip_mreq_source
Packit Service 098c73
);
Packit Service 098c73
Packit Service 098c73
# Check that pack/unpack_ip_mreq either croak with "Not implemented", or
Packit Service 098c73
# roundtrip as identity
Packit Service 098c73
Packit Service 098c73
my $packed;
Packit Service 098c73
eval {
Packit Service 098c73
    $packed = pack_ip_mreq "\xe0\0\0\1", INADDR_ANY;
Packit Service 098c73
};
Packit Service 098c73
if( !defined $packed ) {
Packit Service 098c73
    plan skip_all => "No pack_ip_mreq" if $@ =~ m/ not implemented /;
Packit Service 098c73
    die $@;
Packit Service 098c73
}
Packit Service 098c73
Packit Service 098c73
plan tests => 6;
Packit Service 098c73
Packit Service 098c73
my @unpacked = unpack_ip_mreq $packed;
Packit Service 098c73
Packit Service 098c73
is( $unpacked[0], "\xe0\0\0\1", 'unpack_ip_mreq multiaddr' );
Packit Service 098c73
is( $unpacked[1], INADDR_ANY,   'unpack_ip_mreq interface' );
Packit Service 098c73
Packit Service 098c73
is( (unpack_ip_mreq pack_ip_mreq "\xe0\0\0\1")[1], INADDR_ANY, 'pack_ip_mreq interface defaults to INADDR_ANY' );
Packit Service 098c73
Packit Service 098c73
SKIP: {
Packit Service 098c73
    my $mreq;
Packit Service 098c73
    skip "No pack_ip_mreq_source", 3 unless defined eval { $mreq = pack_ip_mreq_source "\xe0\0\0\2", "\x0a\0\0\1", INADDR_ANY };
Packit Service 098c73
Packit Service 098c73
    @unpacked = unpack_ip_mreq_source $mreq;
Packit Service 098c73
Packit Service 098c73
    is( $unpacked[0], "\xe0\0\0\2", 'unpack_ip_mreq_source multiaddr' );
Packit Service 098c73
    is( $unpacked[1], "\x0a\0\0\1", 'unpack_ip_mreq_source source' );
Packit Service 098c73
    is( $unpacked[2], INADDR_ANY,   'unpack_ip_mreq_source interface' );
Packit Service 098c73
}