Branch Coverage

lib/Socket/Packet.xs
Criterion Covered Total %
branch 23 90 25.5


line true false branch
86 0 0 if(mg)
170 0 4 if (DO_UTF8(addr) && !sv_utf8_downgrade(addr, 1))
0 0 if (DO_UTF8(addr) && !sv_utf8_downgrade(addr, 1))
0 0 if (DO_UTF8(addr) && !sv_utf8_downgrade(addr, 1))
175 0 4 if(addrlen > sll_maxaddr)
178 0 4 sll.sll_family = AF_PACKET;
184 0 4 sll.sll_halen = addrlen;
188 0 4 EXTEND(SP, 1);
203 0 10 if(sa_len < sll_min)
205 0 10 if(sa_len > sll_max)
210 0 10 if(sa_len < sll_min + sll.sll_halen)
213 0 10 if(sll.sll_family != AF_PACKET)
216 0 10 EXTEND(SP, 5);
235 0 0 if (DO_UTF8(addr) && !sv_utf8_downgrade(addr, 1))
0 0 if (DO_UTF8(addr) && !sv_utf8_downgrade(addr, 1))
0 0 if (DO_UTF8(addr) && !sv_utf8_downgrade(addr, 1))
240 0 0 if(addr_len > sizeof(mreq.mr_address))
246 0 0 mreq.mr_alen = addr_len;
250 0 0 EXTEND(SP, 1);
264 0 0 if(data_len != sizeof(mreq))
269 0 0 if(mreq.mr_alen > sizeof(mreq.mr_address))
272 0 0 EXTEND(SP, 3);
288 0 1 if(stats_len != sizeof(statsbuf))
293 0 1 EXTEND(SP, 5);
309 3 0 if(ioctl(fd, SIOCGSTAMP, &tv) == -1) {
310 3 0 if(GIMME_V == G_ARRAY)
316 0 0 if(GIMME_V == G_ARRAY) {
317 0 0 EXTEND(SP, 2);
338 0 0 if(ioctl(fd, SIOCGSTAMPNS, &ts) == -1) {
339 0 0 if(GIMME_V == G_ARRAY)
345 0 0 if(GIMME_V == G_ARRAY) {
346 0 0 EXTEND(SP, 2);
371 0 3 if(ioctl(fd, SIOCGIFINDEX, &req) == -1)
392 2 5 if(ioctl(fd, SIOCGIFNAME, &req) == -1)
416 1 0 if(!SvOK(buffer))
419 1 0 bufferp = SvGROW(buffer, (STRLEN)(maxlen+1));
0 1 bufferp = SvGROW(buffer, (STRLEN)(maxlen+1));
423 1 0 len = recvfrom(fd, bufferp, maxlen, flags, (struct sockaddr *)&addr, &addrlen);
425 0 1 if(len < 0)
428 1 0 if(len > maxlen)
458 0 0 if(setsockopt(fd, SOL_PACKET, PACKET_VERSION, &version, sizeof version) != 0)
468 0 0 if(setsockopt(fd, SOL_PACKET, PACKET_RX_RING, &req, sizeof req) != 0)
475 0 0 if(addr == MAP_FAILED)
536 0 0 if((hdr->tp_status & 1) != 1)
575 0 0 SvUPGRADE(buffer, SVt_PV);