Branch Coverage

XSConstructor.xs
Criterion Covered Total %
branch 68 148 45.9


line true false branch
20 14 23 if(items == 1){
22 14 0 if(!IsHashRef(args_ref)){
14 0 if(!IsHashRef(args_ref)){
0 14 if(!IsHashRef(args_ref)){
31 0 23 if( (items % 2) != 0 ){
36 71 23 for(i = 0; i < items; i += 2){
59 0 37 if(mg_find((SV*)args, PERL_MAGIC_tied)){
82 173 33 for (i = 0; i < HAS_len; i++) {
86 173 0 keyname = SvPV(attr, keylen);
88 74 99 if (hv_exists(args, keyname, keylen)) {
93 8 66 if (hv_exists(ISA_attrs, keyname, keylen)) {
102 0 8 PUSHMARK(SP);
103 0 8 EXTEND(SP, 1);
109 8 0 if (!SvTRUE(result)) {
0 8 if (!SvTRUE(result)) {
0 0 if (!SvTRUE(result)) {
0 8 if (!SvTRUE(result)) {
0 0 if (!SvTRUE(result)) {
0 0 if (!SvTRUE(result)) {
8 0 if (!SvTRUE(result)) {
8 0 if (!SvTRUE(result)) {
8 0 if (!SvTRUE(result)) {
4 4 if (!SvTRUE(result)) {
0 4 if (!SvTRUE(result)) {
4 4 if (!SvTRUE(result)) {
0 0 if (!SvTRUE(result)) {
0 0 if (!SvTRUE(result)) {
0 0 if (!SvTRUE(result)) {
0 0 if (!SvTRUE(result)) {
0 0 if (!SvTRUE(result)) {
0 0 if (!SvTRUE(result)) {
0 0 if (!SvTRUE(result)) {
110 4 0 croak("Value '%s' failed type constraint for '%s'", SvPV_nolen(val2), keyname);
114 4 0 FREETMPS;
128 60 21 for (i = 0; i < REQ_len; i++) {
132 60 0 keyname = SvPV(attr, keylen);
134 12 48 if (!hv_exists((HV *)SvRV(object), keyname, keylen)) {
156 4 17 if (!SvOK(buildall)) {
4 0 if (!SvOK(buildall)) {
4 0 if (!SvOK(buildall)) {
161 0 4 PUSHMARK(SP);
162 0 4 EXTEND(SP, 1);
167 0 4 FREETMPS;
173 0 21 if (!SvOK(buildall)) {
0 0 if (!SvOK(buildall)) {
0 0 if (!SvOK(buildall)) {
177 18 3 if (!SvROK(buildall)) {
181 2 1 if (hv_exists((HV *)SvRV(args), "__no_BUILD__", 12)) {
183 0 2 if (SvOK(*val) && SvTRUE(*val)) {
0 0 if (SvOK(*val) && SvTRUE(*val)) {
0 0 if (SvOK(*val) && SvTRUE(*val)) {
2 0 if (SvOK(*val) && SvTRUE(*val)) {
0 2 if (SvOK(*val) && SvTRUE(*val)) {
0 2 if (SvOK(*val) && SvTRUE(*val)) {
0 0 if (SvOK(*val) && SvTRUE(*val)) {
0 0 if (SvOK(*val) && SvTRUE(*val)) {
0 2 if (SvOK(*val) && SvTRUE(*val)) {
0 0 if (SvOK(*val) && SvTRUE(*val)) {
0 0 if (SvOK(*val) && SvTRUE(*val)) {
0 0 if (SvOK(*val) && SvTRUE(*val)) {
0 0 if (SvOK(*val) && SvTRUE(*val)) {
2 0 if (SvOK(*val) && SvTRUE(*val)) {
2 0 if (SvOK(*val) && SvTRUE(*val)) {
1 1 if (SvOK(*val) && SvTRUE(*val)) {
0 1 if (SvOK(*val) && SvTRUE(*val)) {
0 0 if (SvOK(*val) && SvTRUE(*val)) {
1 1 if (SvOK(*val) && SvTRUE(*val)) {
194 4 2 for (i = 0; i < len; i++) {
203 0 4 PUSHMARK(SP);
204 0 4 EXTEND(SP, 2);
210 0 4 FREETMPS;
225 0 37 klassname = SvROK(klass) ? sv_reftype(SvRV(klass), 1) : SvPV_nolen_const(klass);
37 0 klassname = SvROK(klass) ? sv_reftype(SvRV(klass), 1) : SvPV_nolen_const(klass);
239 0 8 if (newXS(name, XS_Class__XSConstructor_new_object, (char*)__FILE__) == NULL)