Branch Coverage

Decoder.xs
Criterion Covered Total %
branch 86 154 55.8


line true false branch
74 3378 682418 bool need_retvalue = GIMME_V != G_VOID;
84 0 685796 : expect_false(opopt & OPOPT_DO_HEADER) ? sv_newmortal() : NULL;
162480 523316 : expect_false(opopt & OPOPT_DO_HEADER) ? sv_newmortal() : NULL;
87 69 685727 : expect_true(opopt & OPOPT_DO_BODY) ? sv_newmortal() : NULL;
523247 162480 : expect_true(opopt & OPOPT_DO_BODY) ? sv_newmortal() : NULL;
89 95 685701 offset = expect_false(opopt & OPOPT_OFFSET) ? SvUVx(POPs) : 0;
0 95 offset = expect_false(opopt & OPOPT_OFFSET) ? SvUVx(POPs) : 0;
94 685796 0 if (!expect_true(
685796 0 if (!expect_true(
685796 0 if (!expect_true(
685796 0 if (!expect_true(
685796 0 if (!expect_true(
685796 0 if (!expect_true(
0 685796 if (!expect_true(
0 0 if (!expect_true(
685796 0 if (!expect_true(
0 685796 if (!expect_true(
685796 0 if (!expect_true(
685796 0 if (!expect_true(
0 685796 if (!expect_true(
106 685796 0 decoder = (srl_decoder_t *)SvIV(decoder_sv);
107 523316 162480 if (expect_true(opopt & OPOPT_DO_BODY)) {
108 0 523316 if (opopt & OPOPT_DO_HEADER) {
118 685766 20 if (expect_true(need_retvalue)) {
120 523286 162480 if (expect_true(opopt & OPOPT_DO_BODY)) {
121 0 523286 if (opopt & OPOPT_DO_HEADER) {
135 0 685766 XPUSHs(retvalue);
148 5 10116 if ( SvOK(data) ) {
5 0 if ( SvOK(data) ) {
0 5 if ( SvOK(data) ) {
150 10106 10 char *strdata= SvPV(data, len);
152 85 10031 if ( ret < 0 ) {
197 73 0 if ( ! OpHAS_SIBLING(pushop) )
199 73 0 firstargop = OpSIBLING(pushop);
201 144 0 for (cvop = firstargop; OpHAS_SIBLING(cvop); cvop = OpSIBLING(cvop)) ;
144 73 for (cvop = firstargop; OpHAS_SIBLING(cvop); cvop = OpSIBLING(cvop)) ;
204 144 73 for (
207 144 0 lastargop = argop, argop = OpSIBLING(argop)
212 73 0 if (expect_false(arity < min_arity || arity > max_arity))
0 73 if (expect_false(arity < min_arity || arity > max_arity))
0 73 if (expect_false(arity < min_arity || arity > max_arity))
218 0 73 if (arity > min_arity && (opopt & OPOPT_DO_BODY)) {
0 0 if (arity > min_arity && (opopt & OPOPT_DO_BODY)) {
223 0 73 if (arity > min_arity)
246 2 71 newop->op_ppaddr = opopt & OPOPT_LOOKS_LIKE ? THX_pp_looks_like_sereal : THX_pp_sereal_decode;
272 507067 0 if (arity < min_arity || arity > max_arity)
0 507067 if (arity < min_arity || arity > max_arity)
274 69 506998 if (arity > min_arity && (opopt & OPOPT_DO_BODY)) {
69 0 if (arity > min_arity && (opopt & OPOPT_DO_BODY)) {
278 0 507067 if (arity > min_arity)
293 10098 0 if (arity < 1 || arity > max_arity)
0 10098 if (arity < 1 || arity > max_arity)
294 0 0 croak_xs_usage(cv, max_arity == 1 ? "data" : "[invocant,] data");
295 44 10054 if(arity == 2) {
357 438 73 for (i = sizeof(funcs_to_install)/sizeof(*fti); i--; ) {
397 219 219 if (opopt & OPOPT_OFFSET) {
402 292 146 if (opopt & OPOPT_DO_BODY) {
406 292 146 if (opopt & OPOPT_DO_HEADER) {
475 4 179344 if (SvROK(src))
478 179296 48 if (opt != NULL) {
479 0 179296 SvGETMAGIC(opt);
0 0 SvGETMAGIC(opt);
480 44 179252 if (!SvOK(opt))
44 0 if (!SvOK(opt))
44 0 if (!SvOK(opt))
482 179252 0 else if (SvROK(opt) && SvTYPE(SvRV(opt)) == SVt_PVHV)
179252 0 else if (SvROK(opt) && SvTYPE(SvRV(opt)) == SVt_PVHV)
502 0 0 if (opt != NULL) {
503 0 0 SvGETMAGIC(opt);
0 0 SvGETMAGIC(opt);
504 0 0 if (!SvOK(opt))
0 0 if (!SvOK(opt))
0 0 if (!SvOK(opt))
506 0 0 else if (SvROK(opt) && SvTYPE(SvRV(opt)) == SVt_PVHV)
0 0 else if (SvROK(opt) && SvTYPE(SvRV(opt)) == SVt_PVHV)
512 0 0 if (body_into == NULL)
514 0 0 if (header_into == NULL)