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 51306 SvGETMAGIC(sv);
0 6 SvGETMAGIC(sv);
259 0 51312 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 51312 if (!SvOK(sv))
0 0 if (!SvOK(sv))
0 0 if (!SvOK(sv))
293 356 50978 SvGETMAGIC(sv);
0 356 SvGETMAGIC(sv);
294 30 51304 wipe = ! SvOK(sv) ;
30 0 wipe = ! SvOK(sv) ;
30 0 wipe = ! SvOK(sv) ;
296 18 51316 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 51334 if (SvREADONLY(sv) && PL_curcop != &PL_compiling)
0 0 if (SvREADONLY(sv) && PL_curcop != &PL_compiling)
316 24 51310 SvUPGRADE(sv, SVt_PV);
318 30 51304 if (wipe)
321 50934 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 51014 if (s->flags & FLAG_CONSUME_INPUT) {
730 1 92 if (SvREADONLY(buf))
732 87 5 SvPV_force(buf, na);
735 0 51106 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 51102 4 s->stream.next_in = (char*)SvPV_nomg(buf, origlen) ;
746 0 51106 if (DO_UTF8(output))
0 0 if (DO_UTF8(output))
748 0 51106 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 51035 71 if((s->flags & FLAG_APPEND_OUTPUT) == FLAG_APPEND_OUTPUT) {
752 1 51034 SvOOK_off(output);
760 51106 0 if (SvLEN(output)) {
763 20 51086 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 51106 0 if (SvLEN(output) > cur_length + 1)
785 21 51106 if (s->stream.avail_out == 0) {
802 51098 29 if (RETVAL != BZ_OK || s->flags & FLAG_LIMIT_OUTPUT)
51085 13 if (RETVAL != BZ_OK || s->flags & FLAG_LIMIT_OUTPUT)
805 21 51064 if (s->stream.avail_out == 0)
808 51064 0 if (s->stream.avail_in == 0) {
816 29 51077 if (RETVAL == BZ_OK || RETVAL == BZ_STREAM_END) {
29 0 if (RETVAL == BZ_OK || RETVAL == BZ_STREAM_END) {
827 0 51106 if (out_utf8)
830 256 50850 SvSETMAGIC(output);
833 92 51014 if (s->flags & FLAG_CONSUME_INPUT) {
836 17 75 if (in)
839 3 89 SvSETMAGIC(buf);