Branch Coverage

Bzip2.xs
Criterion Covered Total %
branch 129 240 53.7


line true false branch
151 0 0 for (i = 0; i < length; ++i) {
175 0 0 if (message)
179 0 0 if (!s) {
187 0 0 if (s->stream.next_in){
194 0 0 if (s->stream.next_out){
208 0 0 printf(" APPEND %s\n", EnDis(FLAG_APPEND_OUTPUT));
209 0 0 printf(" CONSUME %s\n", EnDis(FLAG_CONSUME_INPUT));
210 0 0 printf(" LIMIT %s\n", EnDis(FLAG_LIMIT_OUTPUT));
257 6 51325 SvGETMAGIC(sv);
0 6 SvGETMAGIC(sv);
259 0 51331 if (SvROK(sv)) {
261 0 0 SvGETMAGIC(sv);
0 0 SvGETMAGIC(sv);
262 0 0 switch(SvTYPE(sv)) {
270 0 0 if (SvROK(sv))
274 0 51331 if (!SvOK(sv))
0 0 if (!SvOK(sv))
0 0 if (!SvOK(sv))
293 356 50997 SvGETMAGIC(sv);
0 356 SvGETMAGIC(sv);
294 30 51323 wipe = ! SvOK(sv) ;
30 0 wipe = ! SvOK(sv) ;
30 0 wipe = ! SvOK(sv) ;
296 18 51335 if (SvROK(sv)) {
298 0 18 SvGETMAGIC(sv);
0 0 SvGETMAGIC(sv);
299 0 18 wipe = ! SvOK(sv) ;
0 0 wipe = ! SvOK(sv) ;
0 0 wipe = ! SvOK(sv) ;
301 0 18 switch(SvTYPE(sv)) {
309 0 18 if (SvROK(sv))
313 0 51353 if (SvREADONLY(sv) && PL_curcop != &PL_compiling)
0 0 if (SvREADONLY(sv) && PL_curcop != &PL_compiling)
316 24 51329 SvUPGRADE(sv, SVt_PV);
318 30 51323 if (wipe)
321 50953 370 (void)SvPVbyte_force(sv, na) ;
338 0 3 if (BZ2_bzlibVersion()[0] != '1')
364 21 0 if ((s = InitStream() )) {
371 0 21 if (err != BZ_OK) {
377 14 7 if (appendOut)
387 0 21 XPUSHs(obj);
394 21 0 if (GIMME_V == G_ARRAY) {
13 8 if (GIMME_V == G_ARRAY) {
396 0 13 setDUALstatus(sv, err);
397 0 13 XPUSHs(sv) ;
420 30 0 if ((s = InitStream() )) {
423 0 30 if (err != BZ_OK) {
427 30 0 if (s) {
429 23 7 if (appendOut)
431 16 14 if (consume)
433 7 23 if (limitOutput)
443 0 30 XPUSHs(obj);
450 30 0 if (GIMME_V == G_ARRAY) {
19 11 if (GIMME_V == G_ARRAY) {
452 0 19 setDUALstatus(sv, err);
453 0 19 XPUSHs(sv) ;
484 0 205 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))
487 201 4 s->stream.next_in = (char*)SvPV_nomg(buf, origlen) ;
493 0 205 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))
497 129 76 if((s->flags & FLAG_APPEND_OUTPUT) == FLAG_APPEND_OUTPUT) {
498 1 128 SvOOK_off(output);
506 205 205 while (s->stream.avail_in != 0) {
508 0 205 if (s->stream.avail_out == 0) {
519 0 205 if (RETVAL != BZ_RUN_OK)
527 205 0 if (RETVAL == BZ_RUN_OK) {
530 96 109 SvSETMAGIC(output);
559 0 21 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))
562 14 7 if((s->flags & FLAG_APPEND_OUTPUT) == FLAG_APPEND_OUTPUT) {
563 1 13 SvOOK_off(output);
573 18 21 if (s->stream.avail_out == 0) {
588 18 21 if (RETVAL == BZ_STREAM_END || RETVAL < 0 )
18 0 if (RETVAL == BZ_STREAM_END || RETVAL < 0 )
597 21 0 if (RETVAL == BZ_STREAM_END) {
600 4 17 SvSETMAGIC(output);
621 0 2 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))
624 0 2 if((s->flags & FLAG_APPEND_OUTPUT) == FLAG_APPEND_OUTPUT) {
625 0 0 SvOOK_off(output);
635 2 2 if (s->stream.avail_out == 0) {
646 2 2 if (RETVAL == BZ_RUN_OK || RETVAL < 0)
2 0 if (RETVAL == BZ_RUN_OK || RETVAL < 0)
661 2 0 if (RETVAL == BZ_RUN_OK) {
664 0 2 SvSETMAGIC(output);
729 93 51033 if (s->flags & FLAG_CONSUME_INPUT) {
730 1 92 if (SvREADONLY(buf))
732 87 5 SvPV_force(buf, na);
735 0 51125 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))
740 51121 4 s->stream.next_in = (char*)SvPV_nomg(buf, origlen) ;
746 0 51125 if (DO_UTF8(output))
0 0 if (DO_UTF8(output))
748 0 51125 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))
751 51054 71 if((s->flags & FLAG_APPEND_OUTPUT) == FLAG_APPEND_OUTPUT) {
752 1 51053 SvOOK_off(output);
760 51125 0 if (SvLEN(output)) {
763 20 51105 if (s->flags & FLAG_LIMIT_OUTPUT && SvLEN(output) - cur_length - 1 < bufinc)
20 0 if (s->flags & FLAG_LIMIT_OUTPUT && SvLEN(output) - cur_length - 1 < bufinc)
771 51125 0 if (SvLEN(output) > cur_length + 1)
785 21 51125 if (s->stream.avail_out == 0) {
802 51117 29 if (RETVAL != BZ_OK || s->flags & FLAG_LIMIT_OUTPUT)
51104 13 if (RETVAL != BZ_OK || s->flags & FLAG_LIMIT_OUTPUT)
805 21 51083 if (s->stream.avail_out == 0)
808 51083 0 if (s->stream.avail_in == 0) {
816 29 51096 if (RETVAL == BZ_OK || RETVAL == BZ_STREAM_END) {
29 0 if (RETVAL == BZ_OK || RETVAL == BZ_STREAM_END) {
827 0 51125 if (out_utf8)
830 256 50869 SvSETMAGIC(output);
833 92 51033 if (s->flags & FLAG_CONSUME_INPUT) {
836 17 75 if (in)
839 3 89 SvSETMAGIC(buf);