Branch Coverage

Zlib.xs
Criterion Covered Total %
branch 200 500 40.0


line true false branch
449 0 343 if (error_no == Z_ERRNO) {
483 0 0 while (a && b)
0 0 while (a && b)
484 0 0 if (a > b) {
486 0 0 while (a - c >= c)
492 0 0 while (b - c >= c)
515 0 0 if (len < 2) return;
516 0 0 if (rot >= len) rot %= len;
517 0 0 if (rot == 0) return;
523 0 0 if (rot == 1) {
531 0 0 if (rot == len - 1) {
546 0 0 if (from > last) from -= len; /* (pointer better not wrap) */
547 0 0 if (from == start) break; /* all but one shifted */
551 0 0 } while (--cycles);
567 0 0 for (i = 0; i < length; ++i) {
591 0 0 if (message)
595 0 0 if (!s) {
604 0 0 if (s->stream.msg)
609 0 0 if (s->stream.next_in){
616 0 0 if (s->stream.next_out){
638 0 0 printf(" APPEND %s\n", EnDis(FLAG_APPEND));
639 0 0 printf(" CRC32 %s\n", EnDis(FLAG_CRC32));
640 0 0 printf(" ADLER32 %s\n", EnDis(FLAG_ADLER32));
641 0 0 printf(" CONSUME %s\n", EnDis(FLAG_CONSUME_INPUT));
642 0 0 printf(" LIMIT %s\n", EnDis(FLAG_LIMIT_OUTPUT));
708 0 78 if (flags & FLAG_CRC32)
710 0 78 if (flags & FLAG_ADLER32)
725 6 50963 SvGETMAGIC(sv);
0 6 SvGETMAGIC(sv);
727 0 50969 if (SvROK(sv)) {
729 0 0 SvGETMAGIC(sv);
0 0 SvGETMAGIC(sv);
730 0 0 switch(SvTYPE(sv)) {
738 0 0 if (SvROK(sv))
742 0 50969 if (!SvOK(sv))
761 228 50598 SvGETMAGIC(sv);
0 228 SvGETMAGIC(sv);
764 134 50692 if (SvROK(sv)) {
766 0 134 SvGETMAGIC(sv);
0 0 SvGETMAGIC(sv);
769 0 134 switch(SvTYPE(sv)) {
777 0 134 if (SvROK(sv))
781 0 50826 if (SvREADONLY(sv) && PL_curcop != &PL_compiling)
0 0 if (SvREADONLY(sv) && PL_curcop != &PL_compiling)
784 45 50781 SvUPGRADE(sv, SVt_PV);
786 51 50775 if (wipe)
859 1 3 if (output)
871 0 4 if (ret == Z_STREAM_ERROR)
878 0 4 } while (ret == Z_BUF_ERROR) ;
880 0 4 if(ret == Z_STREAM_ERROR)
904 0 6 if (CRZ_zlibVersion()[0] != '1')
947 0 12 RETVAL = ZLIB_VERNUM ;
995 0 3 if (DO_UTF8(sv) && !sv_utf8_downgrade(sv, 1))
0 0 if (DO_UTF8(sv) && !sv_utf8_downgrade(sv, 1))
0 0 if (DO_UTF8(sv) && !sv_utf8_downgrade(sv, 1))
1000 3 0 if (items < 2)
1002 0 0 else if (SvOK(ST(1)))
1022 0 5 if (DO_UTF8(sv) && !sv_utf8_downgrade(sv, 1))
0 0 if (DO_UTF8(sv) && !sv_utf8_downgrade(sv, 1))
0 0 if (DO_UTF8(sv) && !sv_utf8_downgrade(sv, 1))
1027 1 4 if (offset > len)
1030 3 1 if (items < 2)
1032 1 0 else if (SvOK(ST(1)))
1088 33 0 if ((s = InitStream() )) {
1105 0 33 SvGETMAGIC(dictionary);
0 0 SvGETMAGIC(dictionary);
1106 33 0 if (err == Z_OK && SvPOK(dictionary) && SvCUR(dictionary)) {
32 1 if (err == Z_OK && SvPOK(dictionary) && SvCUR(dictionary)) {
1 31 if (err == Z_OK && SvPOK(dictionary) && SvCUR(dictionary)) {
1108 0 1 if (DO_UTF8(dictionary) && !sv_utf8_downgrade(dictionary, 1))
0 0 if (DO_UTF8(dictionary) && !sv_utf8_downgrade(dictionary, 1))
0 0 if (DO_UTF8(dictionary) && !sv_utf8_downgrade(dictionary, 1))
1117 0 33 if (err != Z_OK) {
1131 0 33 XPUSHs(obj);
1133 22 11 if (GIMME_V == G_ARRAY) {
1135 0 22 setDUALstatus(sv, err);
1136 0 22 XPUSHs(sv) ;
1158 45 0 if ((s = InitStream() )) {
1163 0 45 if (err != Z_OK) {
1167 2 43 else if (sv_len(dictionary)) {
1170 0 2 if (s->WindowBits < 0) {
1175 0 0 if (err != Z_OK) {
1185 45 0 if (s) {
1188 1 44 if (ix == 1)
1199 1 44 SV* obj = sv_setref_pv(sv_newmortal(),
1204 0 45 XPUSHs(obj);
1206 31 14 if (GIMME_V == G_ARRAY) {
1208 0 31 setDUALstatus(sv, err);
1209 0 31 XPUSHs(sv) ;
1226 0 0 if (RETVAL == Z_OK) {
1260 0 243 if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
0 0 if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
0 0 if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
1276 0 243 if (s->flags & FLAG_CRC32)
1279 0 243 if (s->flags & FLAG_ADLER32)
1285 0 243 if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
0 0 if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
0 0 if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
1289 163 80 if((s->flags & FLAG_APPEND) == FLAG_APPEND) {
1290 1 162 SvOOK_off(output);
1308 3 240 if (s->deflateParams_out_length) {
1311 3 0 if (s->stream.avail_out < plen) {
1331 248 243 while (s->stream.avail_in != 0) {
1333 5 243 if (s->stream.avail_out == 0) {
1364 0 248 if (RETVAL != Z_OK)
1372 243 0 if (RETVAL == Z_OK) {
1375 96 147 SvSETMAGIC(output);
1388 0 33 if (s->dictionary)
1391 0 33 if (s->deflateParams_out_buffer)
1415 0 36 if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
0 0 if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
0 0 if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
1418 22 14 if((s->flags & FLAG_APPEND) == FLAG_APPEND) {
1419 1 21 SvOOK_off(output);
1437 0 36 if (s->deflateParams_out_length) {
1440 0 0 if (s->stream.avail_out < plen) {
1461 58 36 if (s->stream.avail_out == 0) {
1496 2 92 if (availableout == s->stream.avail_out && RETVAL == Z_BUF_ERROR)
2 0 if (availableout == s->stream.avail_out && RETVAL == Z_BUF_ERROR)
1502 58 36 if (s->stream.avail_out != 0 || RETVAL != Z_OK )
58 0 if (s->stream.avail_out != 0 || RETVAL != Z_OK )
1506 6 30 RETVAL = (RETVAL == Z_STREAM_END ? Z_OK : RETVAL) ;
1511 36 0 if (RETVAL == Z_OK) {
1514 4 32 SvSETMAGIC(output);
1531 3 1 if (flags & 1 && level != s->Level) {
3 0 if (flags & 1 && level != s->Level) {
1535 3 1 if (flags & 2 && strategy != s->Strategy) {
3 0 if (flags & 2 && strategy != s->Strategy) {
1539 2 2 if (flags & 4)
1541 4 0 if (changed) {
1565 0 6 RETVAL = s->Level ;
1573 0 6 RETVAL = s->Strategy ;
1582 0 0 RETVAL = s->bufsize ;
1591 0 0 RETVAL = s->last_error ;
1599 0 0 RETVAL = s->crc32 ;
1607 0 2 RETVAL = s->dict_adler ;
1615 0 0 RETVAL = s->adler32 ;
1623 0 0 RETVAL = s->compressedBytes;
1631 0 0 RETVAL = s->uncompressedBytes;
1639 0 4 RETVAL = s->stream.total_in ;
1647 0 4 RETVAL = s->stream.total_out ;
1690 0 0 if (RETVAL == Z_OK) {
1709 50548 0 bool out_utf8 = FALSE;
1717 50540 8 if (s->flags & FLAG_CONSUME_INPUT) {
1718 1 50539 if (SvREADONLY(buf))
1723 0 50547 if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
0 0 if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
0 0 if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
1734 0 50547 if (DO_UTF8(output))
0 0 if (DO_UTF8(output))
1736 0 50547 if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
0 0 if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
0 0 if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
1739 50414 133 if((s->flags & FLAG_APPEND) == FLAG_APPEND) {
1740 1 50413 SvOOK_off(output);
1749 50547 0 if (SvLEN(output)) {
1752 140 50407 if (s->flags & FLAG_LIMIT_OUTPUT && SvLEN(output) - cur_length - 1 < bufinc)
136 4 if (s->flags & FLAG_LIMIT_OUTPUT && SvLEN(output) - cur_length - 1 < bufinc)
1760 50547 0 if (SvLEN(output) > cur_length + 1)
1773 100947 0 while (RETVAL == Z_OK) {
1774 58 100889 if (s->stream.avail_out == 0) {
1793 1 100946 if (RETVAL == Z_NEED_DICT && s->dictionary) {
1 0 if (RETVAL == Z_NEED_DICT && s->dictionary) {
1799 1 0 if (RETVAL == Z_OK)
1803 140 100806 if (s->flags & FLAG_LIMIT_OUTPUT &&
7 133 if (s->flags & FLAG_LIMIT_OUTPUT &&
1804 0 7 (RETVAL == Z_OK || RETVAL == Z_BUF_ERROR )) {
1805 133 0 if (s->stream.avail_out == 0)
1809 7 100806 if (s->flags & FLAG_LIMIT_OUTPUT &&
7 0 if (s->flags & FLAG_LIMIT_OUTPUT &&
1810 7 0 (RETVAL == Z_OK || RETVAL == Z_BUF_ERROR ))
1813 100813 0 if (RETVAL == Z_STREAM_ERROR || RETVAL == Z_MEM_ERROR ||
100813 0 if (RETVAL == Z_STREAM_ERROR || RETVAL == Z_MEM_ERROR ||
100810 3 if (RETVAL == Z_STREAM_ERROR || RETVAL == Z_MEM_ERROR ||
1814 100771 39 RETVAL == Z_DATA_ERROR || RETVAL == Z_STREAM_END )
1817 50372 50399 if (RETVAL == Z_BUF_ERROR) {
1818 0 50372 if (s->stream.avail_out == 0)
1820 50372 0 if (s->stream.avail_in == 0) {
1850 175 50372 if (RETVAL == Z_OK || RETVAL == Z_STREAM_END || RETVAL == Z_BUF_ERROR || RETVAL == Z_DATA_ERROR) {
136 39 if (RETVAL == Z_OK || RETVAL == Z_STREAM_END || RETVAL == Z_BUF_ERROR || RETVAL == Z_DATA_ERROR) {
3 133 if (RETVAL == Z_OK || RETVAL == Z_STREAM_END || RETVAL == Z_BUF_ERROR || RETVAL == Z_DATA_ERROR) {
3 0 if (RETVAL == Z_OK || RETVAL == Z_STREAM_END || RETVAL == Z_BUF_ERROR || RETVAL == Z_DATA_ERROR) {
1861 0 50547 if (out_utf8)
1864 128 50419 SvSETMAGIC(output);
1866 0 50547 if (s->flags & FLAG_CRC32 )
1871 0 50547 if (s->flags & FLAG_ADLER32)
1877 8 50539 if (s->flags & FLAG_CONSUME_INPUT || s->flags & FLAG_LIMIT_OUTPUT) {
0 8 if (s->flags & FLAG_CONSUME_INPUT || s->flags & FLAG_LIMIT_OUTPUT) {
1880 139 50400 if (in)
1883 3 50536 SvSETMAGIC(buf);
1894 0 0 RETVAL = s->bytesInflated;
1902 0 0 RETVAL = s->compressedBytes;
1910 0 0 RETVAL = s->uncompressedBytes;
1924 0 170 if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
0 0 if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
0 0 if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
1943 1 169 if (in)
1946 0 170 SvSETMAGIC(buf);
1956 2 42 if (s->dictionary)
1959 0 44 if (s->deflateParams_out_buffer)
1963 0 44 if (s->window)
1973 0 0 RETVAL = s->last_error ;
1981 0 0 RETVAL = s->crc32 ;
1989 0 2 RETVAL = s->dict_adler ;
1997 10 6 RETVAL = s->stream.total_in ;
2005 0 0 RETVAL = s->adler32 ;
2013 10 12 RETVAL = s->stream.total_out ;
2030 0 0 RETVAL = s->bufsize ;
2040 0 0 if (mode)
2054 0 1 if (s->dictionary)
2057 0 1 if (s->deflateParams_out_buffer)
2061 1 0 if (s->window)
2076 0 0 if (RETVAL == Z_OK) {
2100 0 0 if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
0 0 if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
0 0 if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
2110 0 0 if (s->stream.avail_in == 0) {
2124 0 0 if (start_len > 1 && ! eof_mode)
0 0 if (start_len > 1 && ! eof_mode)
2127 0 0 if (RETVAL == Z_STREAM_ERROR || RETVAL == Z_MEM_ERROR ||
0 0 if (RETVAL == Z_STREAM_ERROR || RETVAL == Z_MEM_ERROR ||
0 0 if (RETVAL == Z_STREAM_ERROR || RETVAL == Z_MEM_ERROR ||
2131 0 0 if (s->flags & FLAG_CRC32 )
2135 0 0 if (s->flags & FLAG_ADLER32)
2142 0 0 if (s->stream.avail_out)
2150 0 0 if (s->stream.data_type & 128) {
2151 0 0 if (s->stream.data_type & 64) {
2160 0 0 } while (RETVAL != Z_STREAM_END);
2166 0 0 if (RETVAL == Z_STREAM_END)
2173 0 0 if (s->window_left)
2179 0 0 if (s->window_full) {
2188 0 0 if (in)
2191 0 0 SvSETMAGIC(buf);
2206 0 0 RETVAL = s->window_endOffset;
2218 0 0 RETVAL = s->bytesInflated;
2227 0 0 RETVAL = s->compressedBytes;
2235 0 0 RETVAL = s->uncompressedBytes;
2247 0 0 RETVAL = s->lastBlockOffset - (s->window_lastbit != 0);
2259 0 0 RETVAL = s->window_lastoff;
2272 0 1 if (byte != NULL)
2305 0 0 if ((s = InitStream() )) {
2316 0 0 if (err == Z_OK) {
2321 0 0 if (err != Z_OK) {
2332 0 0 if (inf_s->window_left) {
2341 0 0 XPUSHs(sv_setref_pv(sv_newmortal(),
2343 0 0 if (GIMME_V == G_ARRAY) {
2345 0 0 setDUALstatus(sv, err);
2346 0 0 XPUSHs(sv) ;
2363 0 0 RETVAL = s->crc32 ;
2372 0 0 RETVAL = s->adler32 ;