Branch Coverage

iolayer.c
Criterion Covered Total %
branch 278 356 78.0


line true false branch
386 0 44 if ( inn != BUFCHAIN ) {
398 0 44 if (rc != ieb->length) {
426 369 361 if (ig->destroycb)
429 648 82 if (ig->buffer)
450 1 20074 if (ig->write_ptr)
453 20074 0 if (ig->error || ig->buf_eof)
4 20070 if (ig->error || ig->buf_eof)
456 20004 66 if (!ig->buffered) {
459 20002 2 if (rc > 0) {
462 1 1 else if (rc == 0) {
472 59 7 if (!ig->buffer)
475 5 61 if (!ig->read_ptr || ig->read_ptr == ig->read_end) {
5 0 if (!ig->read_ptr || ig->read_ptr == ig->read_end) {
476 4 62 if (!i_io_read_fill(ig, 1))
498 1 22 if (ig->write_ptr)
501 6 16 if (!ig->buffer)
504 5 17 if (!ig->buffered) {
506 1 4 if (rc > 0) {
511 2 2 else if (rc == 0) {
521 12 5 if (!ig->read_ptr || ig->read_ptr == ig->read_end) {
12 0 if (!ig->read_ptr || ig->read_ptr == ig->read_end) {
522 16 1 if (ig->error || ig->buf_eof)
5 11 if (ig->error || ig->buf_eof)
525 10 1 if (!i_io_read_fill(ig, 1))
558 1 214 if (size == 0) {
565 1 213 if (ig->write_ptr) {
570 202 11 if (!ig->buffer)
573 11 202 if ((!ig->read_ptr || size > ig->read_end - ig->read_ptr)
8 3 if ((!ig->read_ptr || size > ig->read_end - ig->read_ptr)
574 209 1 && !(ig->buf_eof || ig->error)) {
207 2 && !(ig->buf_eof || ig->error)) {
578 211 2 if (ig->read_ptr && ig->read_end != ig->read_ptr) {
209 2 if (ig->read_ptr && ig->read_end != ig->read_ptr) {
579 13 196 if (size > ig->read_end - ig->read_ptr)
582 209 0 if (size)
585 1 3 else if (ig->buf_eof) {
589 3 0 else if (ig->error) {
618 3 9 if (!ig->buffered) {
623 1 2 if (ig->error)
627 1 1 if (write_result != 1) {
637 1 8 if (ig->read_ptr)
640 2 6 if (ig->error)
643 5 1 if (!ig->buffer)
646 1 5 if (ig->write_ptr && ig->write_ptr == ig->write_end) {
1 0 if (ig->write_ptr && ig->write_ptr == ig->write_end) {
647 1 0 if (!i_io_flush(ig))
677 1 630751 if (ig->write_ptr) {
682 150 630601 if (!ig->buffer && ig->buffered)
149 1 if (!ig->buffer && ig->buffered)
685 628032 2719 if (ig->read_ptr && ig->read_ptr < ig->read_end) {
627979 53 if (ig->read_ptr && ig->read_ptr < ig->read_end) {
688 627122 857 if (alloc > size)
698 3392 627359 if (size > 0 && !(ig->error || ig->buf_eof)) {
3392 0 if (size > 0 && !(ig->error || ig->buf_eof)) {
3388 4 if (size > 0 && !(ig->error || ig->buf_eof)) {
699 3387 1 if (!ig->buffered || size > ig->buf_size) {
4 3383 if (!ig->buffered || size > ig->buf_size) {
702 6 3 while (size > 0 && (rc = i_io_raw_read(ig, pbuf, size)) > 0) {
4 2 while (size > 0 && (rc = i_io_raw_read(ig, pbuf, size)) > 0) {
710 1 4 if (rc < 0)
712 1 3 else if (rc == 0)
715 1 4 if (!read_total)
719 3330 53 if (i_io_read_fill(ig, size)) {
721 3296 34 if (alloc > size)
731 18 35 if (!read_total && ig->error) {
3 15 if (!read_total && ig->error) {
739 19 630728 if (!read_total && ig->error)
0 19 if (!read_total && ig->error)
766 4860 497008 if (!ig->buffered) {
769 1 4859 if (ig->error) {
776 42 4817 if (result != size) {
786 1 497007 if (ig->read_ptr) {
791 1 497006 if (ig->error) {
796 227 496779 if (!ig->buffer)
799 232 496774 if (!ig->write_ptr)
802 497006 0 if (ig->write_ptr && ig->write_ptr + size <= ig->write_end) {
496330 676 if (ig->write_ptr && ig->write_ptr + size <= ig->write_end) {
804 496215 115 if (alloc > size)
813 676 496330 if (size) {
814 1 675 if (!i_io_flush(ig)) {
816 0 1 return write_count ? write_count : -1;
821 103 572 if (size > ig->buf_size) {
823 103 102 while (size > 0 && (rc = i_io_raw_write(ig, pbuf, size)) > 0) {
102 1 while (size > 0 && (rc = i_io_raw_write(ig, pbuf, size)) > 0) {
828 1 102 if (rc <= 0) {
830 1 0 if (!write_count) {
865 8 2576 if (ig->write_ptr && ig->write_ptr != ig->write_end) {
8 0 if (ig->write_ptr && ig->write_ptr != ig->write_end) {
866 1 7 if (!i_io_flush(ig))
870 1 2582 if (whence == SEEK_CUR && ig->read_ptr && ig->read_ptr != ig->read_end)
1 0 if (whence == SEEK_CUR && ig->read_ptr && ig->read_ptr != ig->read_end)
1 0 if (whence == SEEK_CUR && ig->read_ptr && ig->read_ptr != ig->read_end)
879 5 2578 if (new_off < 0)
904 1 911 if (ig->error) {
910 1 910 if (!ig->write_ptr)
914 798 901 while (bufp < ig->write_ptr) {
916 9 789 if (rc <= 0) {
948 2 280 if (ig->error)
951 225 57 if (ig->write_ptr && !i_io_flush(ig))
6 219 if (ig->write_ptr && !i_io_flush(ig))
954 13 269 if (i_io_raw_close(ig))
982 0 7 if (size < 2)
985 35 1 while (size > 0) {
986 32 3 int byte = i_io_getc(ig);
987 1 34 if (byte == EOF)
991 5 29 if (byte == eol)
1061 55 1 if (!buffered && ig->write_ptr) {
0 55 if (!buffered && ig->write_ptr) {
1062 0 0 if (!i_io_flush(ig)) {
1084 0 0 if (flags & I_IO_DUMP_CALLBACKS) {
1091 0 0 if (flags & I_IO_DUMP_BUFFER) {
1094 0 0 if (ig->read_ptr) {
1101 0 0 if (ig->write_ptr) {
1109 0 0 if (flags & I_IO_DUMP_STATUS) {
1137 0 3 if (!result)
1165 3667 0 if (ig->error || ig->buf_eof)
0 3667 if (ig->error || ig->buf_eof)
1168 1 3666 if (needed > ig->buf_size)
1171 683 2984 if (ig->read_ptr && ig->read_ptr < ig->read_end) {
5 678 if (ig->read_ptr && ig->read_ptr < ig->read_end) {
1174 0 5 if (needed < kept) {
1179 1 4 if (ig->read_ptr != ig->buffer)
1193 3714 1 while (work < buf_end && (rc = i_io_raw_read(ig, work, buf_end - work)) > 0) {
3600 114 while (work < buf_end && (rc = i_io_raw_read(ig, work, buf_end - work)) > 0) {
1196 3552 48 if (needed < rc)
1202 8 3659 if (rc < 0) {
1207 106 3553 else if (rc == 0) {
1212 3598 69 if (good) {
1238 0 0 if (start == end) {
1243 0 0 if (count > 15) {
1244 0 0 if (bias) {
1252 0 0 for (p = start; p < end; ++p) {
1257 0 0 for (p = start; p < end; ++p) {
1258 0 0 if (*p < ' ' || *p > '~')
0 0 if (*p < ' ' || *p > '~')
1264 0 0 if (!bias)
1268 0 0 for (p = start; p < end; ++p) {
1272 0 0 for (p = start; p < end; ++p) {
1273 0 0 if (*p < ' ' || *p > '~')
0 0 if (*p < ' ' || *p > '~')
1344 4983 4927 while( count!=bc && (rc = ig->writecb(p,cbuf+bc,count-bc))>0 ) {
4927 56 while( count!=bc && (rc = ig->writecb(p,cbuf+bc,count-bc))>0 ) {
1349 55 4928 return rc < 0 ? rc : bc;
1371 38 0 if (ig->closecb)
1410 129 0 if (ig->destroycb)
1437 775 21033 if ( ig->cpos+count > ig->len ) {
1508 4 1351 off_t reqpos =
3 1 off_t reqpos =
1 0 off_t reqpos =
1511 4 1351 if (reqpos > ig->len) {
1516 0 1351 if (reqpos < 0) {
1534 187 0 if (ig->closecb) {
1587 133 0 if (ieb->cp->next == NULL) {
1616 186 53 while(cp) {
1748 180 45 while( scount ) {
1749 28 152 int clen = (ieb->cp == ieb->tail) ? ieb->tfill : ieb->cp->len;
1750 134 46 if (clen == ieb->cpos) {
1751 1 133 if (ieb->cp == ieb->tail) break; /* EOF */
1754 19 114 clen = (ieb->cp == ieb->tail) ? ieb->tfill : ieb->cp->len;
1799 375 254 while(count) {
1801 133 242 if (ieb->cp->len == ieb->cpos) {
1810 374 1 if (ieb->cp == ieb->tail) {
1813 374 0 if (extend > 0) {
1867 3 46 off_t scount = calc_seek_offset(ieb->gpos, ieb->length, offset, whence);
2 1 off_t scount = calc_seek_offset(ieb->gpos, ieb->length, offset, whence);
1 0 off_t scount = calc_seek_offset(ieb->gpos, ieb->length, offset, whence);
1873 0 49 if (scount < 0) {
1882 4 49 while( scount ) {
1883 3 1 int clen = (ieb->cp == ieb->tail) ? ieb->tfill : ieb->cp->len;
1884 0 4 if (clen == ieb->cpos) {
1885 0 0 if (ieb->cp == ieb->tail) break; /* EOF */
1888 0 0 clen = (ieb->cp == ieb->tail) ? ieb->tfill : ieb->cp->len;
1901 0 49 if (wrlen > 0) {
1911 0 0 while(wrlen > 0) {
1915 0 0 if (rc != wl) im_fatal(aIMCTX, 0, "bufchain_seek: Unable to extend file\n");
1954 1 1778 if (result < 0) {
1974 1 531 if (result <= 0) {
1991 1 1223 if (result == (off_t)-1) {