Branch Coverage

blib/lib/IO/Socket/Multicast6.pm
Criterion Covered Total %
branch 54 122 44.2


line true false branch
26 1 10 unless @_
44 1 1 if ($sock->sockdomain == 2) { }
1 0 elsif ($sock->sockdomain == 10) { }
49 0 1 unless setsockopt $sock, IPPROTO_IP(), IP_ADD_MEMBERSHIP(), $ip_mreq
56 0 1 unless setsockopt $sock, IPPROTO_IPV6(), IPV6_JOIN_GROUP(), $ipv6_mreq
72 0 0 if ($sock->sockdomain == 2) { }
0 0 elsif ($sock->sockdomain == 10) { }
79 0 0 unless setsockopt $sock, IPPROTO_IP(), IP_ADD_SOURCE_MEMBERSHIP(), $ip_mreq
97 1 1 if ($sock->sockdomain == 2) { }
1 0 elsif ($sock->sockdomain == 10) { }
102 0 1 unless setsockopt $sock, IPPROTO_IP(), IP_DROP_MEMBERSHIP(), $ip_mreq
109 0 1 unless setsockopt $sock, IPPROTO_IPV6(), IPV6_LEAVE_GROUP(), $ipv6_mreq
124 3 3 if ($sock->sockdomain == 2) { }
3 0 elsif ($sock->sockdomain == 10) { }
125 0 3 unless my $packed = getsockopt($sock, IPPROTO_IP(), IP_MULTICAST_TTL())
128 1 2 if (my $ttl = shift())
129 0 1 unless setsockopt $sock, IPPROTO_IP(), IP_MULTICAST_TTL(), pack('I', $ttl)
133 0 3 unless my $packed = getsockopt($sock, IPPROTO_IPV6(), IPV6_MULTICAST_HOPS())
136 1 2 if (my $ttl = shift())
137 0 1 unless setsockopt $sock, IPPROTO_IPV6(), IPV6_MULTICAST_HOPS(), pack('I', $ttl)
152 3 3 if ($sock->sockdomain == 2) { }
3 0 elsif ($sock->sockdomain == 10) { }
153 0 3 unless my $packed = getsockopt($sock, IPPROTO_IP(), IP_MULTICAST_LOOP())
156 1 2 if (my $loopback = shift())
157 0 1 unless setsockopt $sock, IPPROTO_IP(), IP_MULTICAST_LOOP(), pack('I', $loopback)
161 0 3 unless my $packed = getsockopt($sock, IPPROTO_IPV6(), IPV6_MULTICAST_LOOP())
165 1 2 if (my $loopback = shift())
166 0 1 unless setsockopt $sock, IPPROTO_IPV6(), IPV6_MULTICAST_LOOP(), pack('I', $loopback)
181 0 0 if ($sock->sockdomain == 2) { }
0 0 elsif ($sock->sockdomain == 10) { }
182 0 0 unless my $packed = getsockopt($sock, IPPROTO_IP(), IP_MULTICAST_IF())
186 0 0 if (my $interface = shift())
188 0 0 unless setsockopt $sock, IPPROTO_IP(), IP_MULTICAST_IF(), inet_pton(2, $if_addr)
192 0 0 unless my $packed = getsockopt($sock, IPPROTO_IPV6(), IPV6_MULTICAST_IF())
195 0 0 if ($prev == 0) { }
198 0 0 if (my $interface = shift())
200 0 0 unless setsockopt $sock, IPPROTO_IPV6(), IPV6_MULTICAST_IF(), pack('I', $if_index)
216 6 8 if (defined $addr)
217 3 3 if ($sock->sockdomain == 2) { }
3 0 elsif ($sock->sockdomain == 10) { }
218 1 2 if (not defined $port and $addr =~ /^($IPv4):(\d+)$/)
222 2 1 if defined $port
223 0 3 if not defined $addr or length $addr == 0
224 0 3 unless sockaddr_family($addr) == 2
227 1 2 if (not defined $port and $addr =~ /^\[($IPv6)\]:(\d+)$/)
231 2 1 if defined $port
232 0 3 if not defined $addr or length $addr == 0
233 0 3 unless sockaddr_family($addr) == 10
250 0 2 if @_
262 2 0 unless defined $interface
263 0 0 if $interface eq 'any'
264 0 0 if $interface =~ /^$IPv4$/
267 0 0 unless defined $if
268 0 0 unless $if->is_multicast
270 0 0 unless defined $address
280 2 0 unless defined $interface
281 0 0 if $interface =~ /^\d+$/
282 0 0 if $interface =~ /^any$/i
285 0 0 unless defined $if
286 0 0 unless $if->is_multicast
288 0 0 unless defined $index