Branch Coverage

Safe.xs
Criterion Covered Total %
branch 109 186 58.6


line true false branch
20 4 0 SV* version = gv ? GvSV(gv) : NULL;
21 0 4 if (!version)
23 1 3 if (SvNOK(version))
25 0 3 if (SvIOK(version))
27 3 0 if (SvPOK(version)) {
39 4 2 if (stashgv && strEQ(SvPVX(name), "JSON::PP")) {
4 0 if (stashgv && strEQ(SvPVX(name), "JSON::PP")) {
42 4 0 char* file = GvFILE(stashgv);
43 4 0 if (file) {
56 4 2 if (!stashgv || badver) {
0 4 if (!stashgv || badver) {
96 51 145 if (items >= 2 &&
46 5 if (items >= 2 &&
97 42 4 SvROK(ST(0)) &&
105 144 10 else if ((items == 1 && ix < 8) || /* no self needed */
0 144 else if ((items == 1 && ix < 8) || /* no self needed */
10 0 else if ((items == 1 && ix < 8) || /* no self needed */
106 10 0 (ix >= 3 && ix <= 4)) { /* and Dump, DumpFile can have more args */
117 0 101 case 1: if (err)
124 0 5 case 2: if (err)
131 0 80 case 3: if (err)
138 0 4 case 4: if (err)
145 0 3 case 9: if (err)
152 0 0 case 10: if (err)
159 0 3 case 11: if (err)
171 0 0 case 12: if (err)
180 7 181 if (old_safe) self->flags |= F_SAFEMODE;
182 0 188 if (!ret)
256 24 11 if (enable)
277 14 16 RETVAL = boolSV (self->flags & ix);
283 1 2 if (self->boolean == YAML_BOOLEAN_JSONPP)
285 1 1 else if (self->boolean == YAML_BOOLEAN_BOOLEAN)
295 12 3 if (SvPOK(value)) {
297 4 8 if (strEQ(SvPVX(value), "JSON::PP")) {
303 2 6 else if (strEQ(SvPVX(value), "boolean")) {
309 5 1 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
5 0 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
0 5 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
0 0 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
0 5 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
0 0 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
0 0 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
5 0 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
5 0 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
3 2 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
2 1 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
1 1 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
2 3 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
0 0 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
0 0 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
0 0 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
0 0 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
0 0 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
0 0 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
0 0 if (strEQ(SvPVX(value), "false") || !SvTRUE(value)) {
315 3 0 } else if (!SvTRUE(value)) {
0 3 } else if (!SvTRUE(value)) {
0 0 } else if (!SvTRUE(value)) {
1 2 } else if (!SvTRUE(value)) {
1 0 } else if (!SvTRUE(value)) {
0 1 } else if (!SvTRUE(value)) {
0 2 } else if (!SvTRUE(value)) {
0 0 } else if (!SvTRUE(value)) {
0 0 } else if (!SvTRUE(value)) {
0 0 } else if (!SvTRUE(value)) {
0 0 } else if (!SvTRUE(value)) {
0 0 } else if (!SvTRUE(value)) {
2 0 } else if (!SvTRUE(value)) {
2 0 } else if (!SvTRUE(value)) {
1 1 } else if (!SvTRUE(value)) {
0 1 } else if (!SvTRUE(value)) {
0 0 } else if (!SvTRUE(value)) {
1 1 } else if (!SvTRUE(value)) {
0 0 } else if (!SvTRUE(value)) {
339 1 4 if (strEQ(value, "any")) {
342 1 3 else if (strEQ(value, "utf8")) {
345 1 2 else if (strEQ(value, "utf16le")) {
348 1 1 else if (strEQ(value, "utf16be")) {
372 1 4 if (strEQ(value, "any")) {
375 1 3 else if (strEQ(value, "cr")) {
378 1 2 else if (strEQ(value, "ln")) {
381 1 1 else if (strEQ(value, "crln")) {
396 2 2 RETVAL = ix == 1 ? self->indent
2 0 RETVAL = ix == 1 ? self->indent
408 0 6 if (!SvIOK(ST(1)))
410 4 2 if (ix == 1) {
411 3 1 if (iv < 1 || iv >= 10)
0 3 if (iv < 1 || iv >= 10)
415 2 0 else if (ix == 2) {
416 1 1 if (iv < 1 || iv >= 0xffff)
0 1 if (iv < 1 || iv >= 0xffff)
430 1 0 if (!self->safeclasses)
432 1 1 for (i=1; i