Branch Coverage

lib/Basic/Types/XS.xs
Criterion Covered Total %
branch 301 522 57.6


line true false branch
19 31 3 for (i = 0; i < retlen; i++) {
20 7 24 if (!isdigit(str[i])) {
21 3 4 if ( !dec && str[i] == '.' ) {
2 1 if ( !dec && str[i] == '.' ) {
34 7 10 if (SvROK(param)) {
39 3 14 if (type >= SVt_PVAV) {
43 2 12 if (!SvOK(param)) {
47 5 7 if (type == SVt_IV) {
49 3 2 if (i == 0 || i == 1) {
2 1 if (i == 0 || i == 1) {
52 6 1 } else if (type == SVt_PV) {
55 4 2 if (!retlen || i[0] == 0 || i[0] == 1) {
4 0 if (!retlen || i[0] == 0 || i[0] == 1) {
0 4 if (!retlen || i[0] == 0 || i[0] == 1) {
65 20 0 char *callr = HvNAME((HV*)CopSTASH(PL_curcop));
20 0 char *callr = HvNAME((HV*)CopSTASH(PL_curcop));
0 20 char *callr = HvNAME((HV*)CopSTASH(PL_curcop));
0 0 char *callr = HvNAME((HV*)CopSTASH(PL_curcop));
20 0 char *callr = HvNAME((HV*)CopSTASH(PL_curcop));
0 20 char *callr = HvNAME((HV*)CopSTASH(PL_curcop));
72 10 115 if (sv) {
75 10 0 if (retlen > 0) {
87 20 200 if (!SvOK(param) && hv_exists((HV*)SvRV(self), "default", 7)) {
5 15 if (!SvOK(param) && hv_exists((HV*)SvRV(self), "default", 7)) {
89 5 0 if (SvOK(*def)) {
91 0 5 PUSHMARK(SP);
104 16 204 if (hv_exists((HV*)SvRV(self), "coerce", 6)) {
106 16 0 if (SvOK(*coe)) {
108 0 16 PUSHMARK(SP);
109 0 16 XPUSHs(newSVsv(param));
125 7 0 if (!pattern_sv || !SvROK(*pattern_sv)) {
0 7 if (!pattern_sv || !SvROK(*pattern_sv)) {
126 0 0 char *pattern = (pattern_sv && SvOK(*pattern_sv)) ? SvPV_nolen(*pattern_sv) : "\\s+";
0 0 char *pattern = (pattern_sv && SvOK(*pattern_sv)) ? SvPV_nolen(*pattern_sv) : "\\s+";
131 7 0 } else if (SvTYPE(SvRV(*pattern_sv)) == SVt_REGEXP) {
135 0 7 if (!rx) {
141 5 2 if (nmatch > 0) {
155 14 0 if (!self || !SvOK(self)) {
0 14 if (!self || !SvOK(self)) {
159 13 1 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
163 1 13 if (items < 1 ) {
182 0 14 if (items % 2 != 0) {
186 0 14 for (i = 0; i < items; i += 2) {
189 0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
192 0 0 if (!SvOK(value)) {
206 13 0 if (!self || !SvOK(self)) {
0 13 if (!self || !SvOK(self)) {
210 13 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
214 1 12 if (!SvOK(param)) {
233 0 13 if (items % 2 != 0) {
237 0 13 for (i = 0; i < items; i += 2) {
240 0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
243 0 0 if (!SvOK(value)) {
257 13 0 if (!self || !SvOK(self)) {
0 13 if (!self || !SvOK(self)) {
261 13 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
265 6 7 if (!SvROK(param) || !SvOK(param)) {
0 6 if (!SvROK(param) || !SvOK(param)) {
284 0 13 if (items % 2 != 0) {
288 0 13 for (i = 0; i < items; i += 2) {
291 0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
294 0 0 if (!SvOK(value)) {
308 13 0 if (!self || !SvOK(self)) {
0 13 if (!self || !SvOK(self)) {
312 13 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
316 6 7 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) >= SVt_PVAV)) {
6 0 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) >= SVt_PVAV)) {
4 2 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) >= SVt_PVAV)) {
335 0 13 if (items % 2 != 0) {
339 0 13 for (i = 0; i < items; i += 2) {
342 0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
345 0 0 if (!SvOK(value)) {
359 13 0 if (!self || !SvOK(self)) {
0 13 if (!self || !SvOK(self)) {
363 13 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
367 6 7 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_PVAV)) {
6 0 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_PVAV)) {
2 4 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_PVAV)) {
386 0 12 if (items % 2 != 0) {
390 0 12 for (i = 0; i < items; i += 2) {
393 0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
396 0 0 if (!SvOK(value)) {
410 17 0 if (!self || !SvOK(self)) {
0 17 if (!self || !SvOK(self)) {
414 17 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
418 9 8 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_PVHV)) {
9 0 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_PVHV)) {
2 7 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_PVHV)) {
437 0 13 if (items % 2 != 0) {
441 3 13 for (i = 0; i < items; i += 2) {
444 3 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 3 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
447 0 3 if (!SvOK(value)) {
461 11 0 if (!self || !SvOK(self)) {
0 11 if (!self || !SvOK(self)) {
465 11 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
469 4 7 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_PVCV)) {
4 0 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_PVCV)) {
3 1 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_PVCV)) {
488 0 11 if (items % 2 != 0) {
492 0 11 for (i = 0; i < items; i += 2) {
495 0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
498 0 0 if (!SvOK(value)) {
512 12 0 if (!self || !SvOK(self)) {
0 12 if (!self || !SvOK(self)) {
516 12 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
520 5 7 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_REGEXP)) {
5 0 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_REGEXP)) {
4 1 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_REGEXP)) {
539 0 12 if (items % 2 != 0) {
543 0 12 for (i = 0; i < items; i += 2) {
546 0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
549 0 0 if (!SvOK(value)) {
563 13 0 if (!self || !SvOK(self)) {
0 13 if (!self || !SvOK(self)) {
567 13 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
571 6 7 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_PVGV)) {
6 0 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_PVGV)) {
5 1 if (!SvROK(param) || !SvOK(param) || (SvTYPE(SvRV(param)) != SVt_PVGV)) {
590 0 13 if (items % 2 != 0) {
594 0 13 for (i = 0; i < items; i += 2) {
597 0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
600 0 0 if (!SvOK(value)) {
614 19 0 if (!self || !SvOK(self)) {
0 19 if (!self || !SvOK(self)) {
619 18 1 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
625 12 7 if (SvROK(param) || !SvOK(param) || (type > SVt_PV)) {
11 1 if (SvROK(param) || !SvOK(param) || (type > SVt_PV)) {
0 11 if (SvROK(param) || !SvOK(param) || (type > SVt_PV)) {
644 0 13 if (items % 2 != 0) {
648 3 13 for (i = 0; i < items; i += 2) {
651 3 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 3 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
654 0 3 if (!SvOK(value)) {
669 7 0 if (!self || !SvOK(self)) {
0 7 if (!self || !SvOK(self)) {
673 7 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
679 7 0 if (SvTYPE(param) != SVt_PV || !regex_match(param, pattern_sv)) {
2 5 if (SvTYPE(param) != SVt_PV || !regex_match(param, pattern_sv)) {
698 0 5 if (items % 2 != 0) {
702 6 5 for (i = 0; i < items; i += 2) {
705 6 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 6 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
708 0 6 if (!SvOK(value)) {
723 16 0 if (!self || !SvOK(self)) {
0 16 if (!self || !SvOK(self)) {
727 16 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
732 12 4 if (SvROK(param) || !SvOK(param) || (type != SVt_IV && type != SVt_NV)) {
11 1 if (SvROK(param) || !SvOK(param) || (type != SVt_IV && type != SVt_NV)) {
7 4 if (SvROK(param) || !SvOK(param) || (type != SVt_IV && type != SVt_NV)) {
4 3 if (SvROK(param) || !SvOK(param) || (type != SVt_IV && type != SVt_NV)) {
733 4 5 if ( type != SVt_PV || ! _sv_contains_numbers(param, 0) ) {
2 2 if ( type != SVt_PV || ! _sv_contains_numbers(param, 0) ) {
753 0 12 if (items % 2 != 0) {
757 3 12 for (i = 0; i < items; i += 2) {
760 3 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 3 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
763 0 3 if (!SvOK(value)) {
777 12 0 if (!self || !SvOK(self)) {
0 12 if (!self || !SvOK(self)) {
781 12 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
786 9 3 if (SvROK(param) || !SvOK(param) || (type != SVt_IV)) {
8 1 if (SvROK(param) || !SvOK(param) || (type != SVt_IV)) {
5 3 if (SvROK(param) || !SvOK(param) || (type != SVt_IV)) {
787 4 5 if ( type != SVt_PV || ! _sv_contains_numbers(param, 1) ) {
3 1 if ( type != SVt_PV || ! _sv_contains_numbers(param, 1) ) {
807 0 11 if (items % 2 != 0) {
811 0 11 for (i = 0; i < items; i += 2) {
814 0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
817 0 0 if (!SvOK(value)) {
831 17 0 if (!self || !SvOK(self)) {
0 17 if (!self || !SvOK(self)) {
835 17 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
839 9 8 if (!_sv_isa_bool(param)) {
858 0 17 if (items % 2 != 0) {
862 0 17 for (i = 0; i < items; i += 2) {
865 0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
868 0 0 if (!SvOK(value)) {
882 10 0 if (!self || !SvOK(self)) {
0 10 if (!self || !SvOK(self)) {
886 10 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
890 4 6 if (!SvROK(param) || !SvOK(param) || !SvSTASH(SvRV(param))) {
4 0 if (!SvROK(param) || !SvOK(param) || !SvSTASH(SvRV(param))) {
0 4 if (!SvROK(param) || !SvOK(param) || !SvSTASH(SvRV(param))) {
909 0 10 if (items % 2 != 0) {
913 0 10 for (i = 0; i < items; i += 2) {
916 0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
919 0 0 if (!SvOK(value)) {
933 12 0 if (!self || !SvOK(self)) {
0 12 if (!self || !SvOK(self)) {
937 12 0 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
941 12 0 if (!SvOK(param) || SvROK(param) || SvTYPE(param) != SVt_PV) {
11 1 if (!SvOK(param) || SvROK(param) || SvTYPE(param) != SVt_PV) {
2 9 if (!SvOK(param) || SvROK(param) || SvTYPE(param) != SVt_PV) {
949 4 5 if (!stash) {
968 0 12 if (items % 2 != 0) {
972 0 12 for (i = 0; i < items; i += 2) {
975 0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
978 0 0 if (!SvOK(value)) {
992 8 0 if (!self || !SvOK(self)) {
0 8 if (!self || !SvOK(self)) {
996 7 1 SV * param = items >= 1 ? newSVsv(ST(0)) : &PL_sv_undef;
1000 7 1 if (!SvOK(param) || SvTYPE(param) != SVt_PV) {
2 5 if (!SvOK(param) || SvTYPE(param) != SVt_PV) {
1005 0 5 if (!hv_exists(self_hv, "validate", 8)) {
1010 5 0 if (!SvROK(validate) || SvTYPE(SvRV(validate)) != SVt_PVAV) {
0 5 if (!SvROK(validate) || SvTYPE(SvRV(validate)) != SVt_PVAV) {
1019 11 3 for (i = 0; i <= len; i++) {
1021 11 0 if (SvOK(val) && SvTYPE(val) == SVt_PV ) {
11 0 if (SvOK(val) && SvTYPE(val) == SVt_PV ) {
1023 2 9 if (strcmp(val_str, param_str) == 0) {
1030 3 2 if (found == 0) {
1050 0 2 if (items % 2 != 0) {
1054 3 2 for (i = 0; i < items; i += 2) {
1057 3 0 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
0 3 if (!SvOK(key) || SvTYPE(key) != SVt_PV) {
1060 0 3 if (!SvOK(value)) {
1079 1 0 if (!self || !SvROK(self)) {
0 1 if (!self || !SvROK(self)) {
1082 1 0 if (!SvROK(value) || SvTYPE(SvRV(value)) != SVt_PVCV) {
0 1 if (!SvROK(value) || SvTYPE(SvRV(value)) != SVt_PVCV) {
1097 1 0 if (!self || !SvROK(self)) {
0 1 if (!self || !SvROK(self)) {
1100 1 0 if (!SvROK(value) || SvTYPE(SvRV(value)) != SVt_PVCV) {
0 1 if (!SvROK(value) || SvTYPE(SvRV(value)) != SVt_PVCV) {
1115 2 0 if (!self || !SvROK(self)) {
0 2 if (!self || !SvROK(self)) {
1131 0 0 if (!self || !SvROK(self)) {
0 0 if (!self || !SvROK(self)) {
1146 221 0 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVHV) {
0 221 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVHV) {
1161 24 20 for (i = 1; i < items; i++) {
1165 1 23 if (strcmp(ex, "Any") == 0) {
1167 1 22 } else if (strcmp(ex, "Defined") == 0) {
1169 3 19 } else if (strcmp(ex, "Str") == 0) {
1171 2 17 } else if (strcmp(ex, "Num") == 0) {
1173 2 15 } else if (strcmp(ex, "Int") == 0) {
1175 1 14 } else if (strcmp(ex, "Ref") == 0) {
1177 1 13 } else if (strcmp(ex, "ScalarRef") == 0) {
1179 2 11 } else if (strcmp(ex, "ArrayRef") == 0) {
1181 2 9 } else if (strcmp(ex, "HashRef") == 0) {
1183 1 8 } else if (strcmp(ex, "CodeRef") == 0) {
1185 1 7 } else if (strcmp(ex, "RegexpRef") == 0) {
1187 1 6 } else if (strcmp(ex, "GlobRef") == 0) {
1189 1 5 } else if (strcmp(ex, "Bool") == 0) {
1191 1 4 } else if (strcmp(ex, "Object") == 0) {
1193 1 3 } else if (strcmp(ex, "ClassName") == 0) {
1195 2 1 } else if (strcmp(ex, "StrMatch") == 0) {
1197 1 0 } else if (strcmp(ex, "Enum") == 0) {