Branch Coverage

AsyncAwait.h
Criterion Covered Total %
branch 12 40 30.0


line true false branch
32 0 1 if(!register_future_asyncawait_hook_func)
43 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)) {
50 0 7 if(svp)
66 1 0 SV *versv = ver ? newSVnv(ver) : NULL;
71 0 1 if(!svp)
73 1 0 int abi_ver = SvIV(*svp);
74 0 1 if(abi_ver > FUTURE_ASYNCAWAIT_ABI_VERSION)
79 1 0 abi_ver = SvIV(*svp);
80 0 1 if(abi_ver < FUTURE_ASYNCAWAIT_ABI_VERSION)
84 0 1 register_future_asyncawait_hook_func = INT2PTR(void (*)(pTHX_ const struct AsyncAwaitHookFuncs *, void *),
149 0 0 if(*oldhookp)
158 0 0 if(!*oldhookp) {
160 0 0 if(hookp && SvOK(*hookp))
0 0 if(hookp && SvOK(*hookp))
0 0 if(hookp && SvOK(*hookp))
0 0 if(hookp && SvOK(*hookp))
161 0 0 *oldhookp = INT2PTR(SuspendHookFunc *, SvUV(*hookp));