Branch Coverage

lib/Data/Checks.xs
Criterion Covered Total %
branch 52 68 76.4


line true false branch
39 32 1 if(SvROK(checkspec) && SvOBJECT(SvRV(checkspec)))
31 1 if(SvROK(checkspec) && SvOBJECT(SvRV(checkspec)))
41 1 1 else if(SvPOK(checkspec) && (stash = gv_stashsv(checkspec, GV_NOADD_NOINIT)))
0 1 else if(SvPOK(checkspec) && (stash = gv_stashsv(checkspec, GV_NOADD_NOINIT)))
43 1 0 else if(SvROK(checkspec) && !SvOBJECT(SvRV(checkspec)) && SvTYPE(SvRV(checkspec)) == SVt_PVCV) {
1 0 else if(SvROK(checkspec) && !SvOBJECT(SvRV(checkspec)) && SvTYPE(SvRV(checkspec)) == SVt_PVCV) {
46 1 0 checkcv = (CV *)SvREFCNT_inc(SvRV(checkspec));
53 32 1 if(stash && sv_isa(checkspec, "Data::Checks::Constraint")) {
29 3 if(stash && sv_isa(checkspec, "Data::Checks::Constraint")) {
57 3 1 else if(!checkcv) {
59 0 3 if(!(methgv = gv_fetchmeth_pv(stash, "check", -1, 0)))
61 0 3 if(!GvCV(methgv))
80 5 0 if(checker->assertmess)
85 4 1 if(checker->arg0)
93 30 3 if(!constraint || !SvOK(constraint)) {
27 3 if(!constraint || !SvOK(constraint)) {
94 29 1 if(checker->constraint)
96 1 0 else if(checker->arg0) {
114 3 200004 PUSHs(boolSV((*constraint->func)(aTHX_ constraint, value)));
122 5 4 if(checker->constraint) {
128 4 0 if(checker->cv && checker->arg0)
3 1 if(checker->cv && checker->arg0)
130 3 0 return newLISTOPn(OP_ENTERSUB, OPf_WANT_SCALAR|OPf_STACKED,
136 1 0 if(checker->cv)
151 0 9 if(flags)
154 9 0 OP *o = newLOGOP(OP_OR, 0,
161 1 8 if(want_void) {
177 160 12 if(checker->constraint) {
186 0 12 EXTEND(SP, 2);
187 0 12 PUSHMARK(SP);
188 8 4 if(checker->arg0)
201 12 0 FREETMPS;
209 4 4 if(check_value(checker, value))
229 157 196 for(int i = c->n - 1; i >= 0; i--)