File: 30-pack-ip-mreq-source.t

package info (click to toggle)
libsocket-multicast6-perl 0.04-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 120 kB
  • ctags: 4
  • sloc: perl: 64; makefile: 2
file content (28 lines) | stat: -rw-r--r-- 632 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

use Socket;
use Test::More;
use Socket::Multicast6 qw/:ipv4/;

unless (defined eval("IP_ADD_SOURCE_MEMBERSHIP")) {
	plan skip_all => "Source Specific Multicast isn't available on this system.";
} else {
	plan tests => 100;
}


foreach (1..100) {
	my $multiaddr = inet_aton( rand_ip() );
	my $sourceaddr = inet_aton( rand_ip() );
	my $interface = inet_aton( rand_ip() );

	my $pack_ip_mreq = pack_ip_mreq_source( $multiaddr, $sourceaddr, $interface );

	my $manual = $multiaddr . $interface . $sourceaddr;

	is( $pack_ip_mreq, $manual, "Packed structures match" );
}


sub rand_ip {
	return join '.', map { int rand 255 } (1..4);
}