Branch Coverage

AsyncAwait.h
Criterion Covered Total %
branch 14 48 29.1


line true false branch
34 0 1 if(!register_future_asyncawait_hook_func)
45 1 7 if((svp = hv_fetchs(PL_modglobal, "Future::AsyncAwait/loaded", FALSE)) && SvOK(*svp)) {
0 1 if((svp = hv_fetchs(PL_modglobal, "Future::AsyncAwait/loaded", FALSE)) && SvOK(*svp)) {
0 0 if((svp = hv_fetchs(PL_modglobal, "Future::AsyncAwait/loaded", FALSE)) && SvOK(*svp)) {
0 0 if((svp = hv_fetchs(PL_modglobal, "Future::AsyncAwait/loaded", FALSE)) && SvOK(*svp)) {
52 0 7 if(svp)
74 0 0 if(!future_asyncawait_get_modhookdata_func)
84 0 0 if(!future_asyncawait_make_precreate_padix_func)
94 1 0 SV *versv = ver ? newSVnv(ver) : NULL;
99 0 1 if(!svp)
101 1 0 int abi_ver = SvIV(*svp);
102 0 1 if(abi_ver > FUTURE_ASYNCAWAIT_ABI_VERSION)
107 1 0 abi_ver = SvIV(*svp);
108 0 1 if(abi_ver < FUTURE_ASYNCAWAIT_ABI_VERSION)
112 0 1 register_future_asyncawait_hook_func = INT2PTR(void (*)(pTHX_ const struct AsyncAwaitHookFuncs *, void *),
115 0 1 future_asyncawait_get_modhookdata_func = INT2PTR(HV *(*)(pTHX_ CV *, U32, PADOFFSET),
118 0 1 future_asyncawait_make_precreate_padix_func = INT2PTR(PADOFFSET (*)(pTHX),
183 0 0 if(*oldhookp)
194 0 0 if(!*oldhookp) {
196 0 0 if(hookp && SvOK(*hookp))
0 0 if(hookp && SvOK(*hookp))
0 0 if(hookp && SvOK(*hookp))
0 0 if(hookp && SvOK(*hookp))
197 0 0 *oldhookp = INT2PTR(SuspendHookFunc *, SvUV(*hookp));