Branch Coverage

FDpassData.xs
Criterion Covered Total %
branch 40 60 66.6


line true false branch
47 3 2 if (fd >= 0) {
51 3 0 cmsg = CMSG_FIRSTHDR(&msg);
75 5 0 if (fd) {
97 0 5 if (size < 0) {
103 3 2 cmsg = CMSG_FIRSTHDR(&msg);
104 3 2 if (cmsg && cmsg->cmsg_len == CMSG_LEN(sizeof(int))) {
3 0 if (cmsg && cmsg->cmsg_len == CMSG_LEN(sizeof(int))) {
105 0 3 if (cmsg->cmsg_level != SOL_SOCKET) {
109 0 3 else if (cmsg->cmsg_type != SCM_RIGHTS) {
138 1 4 if (SvOK(b) && SvPOK(b)) {
1 0 if (SvOK(b) && SvPOK(b)) {
0 1 if (SvOK(b) && SvPOK(b)) {
4 0 if (SvOK(b) && SvPOK(b)) {
139 4 0 buf = (unsigned char *) SvPV(b,len);
140 1 3 if (len == 0) // zero length string "\0"
143 4 1 if (items == 3 && SvOK(ST(2)) && SvIOK(ST(2))) {
1 3 if (items == 3 && SvOK(ST(2)) && SvIOK(ST(2))) {
1 0 if (items == 3 && SvOK(ST(2)) && SvIOK(ST(2))) {
0 1 if (items == 3 && SvOK(ST(2)) && SvIOK(ST(2))) {
3 0 if (items == 3 && SvOK(ST(2)) && SvIOK(ST(2))) {
144 3 0 fd = (int)SvIV(ST(2));
162 0 5 if (size < 0) { // ERROR
166 2 3 if (size == 1 && buf[0] == 0x0) {
2 0 if (size == 1 && buf[0] == 0x0) {
169 0 5 XPUSHs(sv_2mortal(newSViv(size)));
170 2 3 if (size == 0) {
171 0 2 XPUSHs(sv_2mortal(newSVpvn(buf,0)));
173 0 3 XPUSHs(sv_2mortal(newSVpvn(buf,size)));
176 2 3 if (fd < 0) {
179 0 3 XPUSHs(sv_2mortal(newSViv(fd)));