Branch Coverage

Framework.xs
Criterion Covered Total %
branch 60 104 57.6


line true false branch
23 2 0 sv.payload_detach(Sv::default_marker());
2 0 sv.payload_detach(Sv::default_marker());
24 2 0 sv.payload_attach(payload, Sv::default_marker());
2 0 sv.payload_attach(payload, Sv::default_marker());
28 5 0 RETVAL = sv.payload_exists(Sv::default_marker());
32 3 0 SV* ret = sv.payload(Sv::default_marker()).obj;
33 0 3 if (!ret) XSRETURN_UNDEF;
39 1 0 RETVAL = sv.payload_detach(Sv::default_marker());
1 0 RETVAL = sv.payload_detach(Sv::default_marker());
43 0 2 if (!rv) throw "argument is not a reference";
44 2 0 rv.value().payload_detach(Sv::default_marker());
2 0 rv.value().payload_detach(Sv::default_marker());
45 2 0 rv.value().payload_attach(payload, Sv::default_marker());
2 0 rv.value().payload_attach(payload, Sv::default_marker());
49 0 5 if (!rv) throw "argument is not a reference";
50 5 0 RETVAL = rv.value().payload_exists(Sv::default_marker());
54 0 3 if (!rv) throw "argument is not a reference";
55 3 0 SV* ret = rv.value().payload(Sv::default_marker()).obj;
56 0 3 if (!ret) XSRETURN_UNDEF;
62 0 1 if (!rv) throw "argument is not a reference";
63 1 0 RETVAL = rv.value().payload_detach(Sv::default_marker());
1 0 RETVAL = rv.value().payload_detach(Sv::default_marker());
67 2 2 if (sv.is_ref()) sv = Ref(sv).value();
2 0 if (sv.is_ref()) sv = Ref(sv).value();
68 4 0 sv.payload_detach(Sv::default_marker());
4 0 sv.payload_detach(Sv::default_marker());
69 4 0 sv.payload_attach(payload, Sv::default_marker());
4 0 sv.payload_attach(payload, Sv::default_marker());
73 5 5 if (sv.is_ref()) sv = Ref(sv).value();
5 0 if (sv.is_ref()) sv = Ref(sv).value();
74 10 0 RETVAL = sv.payload_exists(Sv::default_marker());
78 2 1 if (sv.is_ref()) sv = Ref(sv).value();
2 0 if (sv.is_ref()) sv = Ref(sv).value();
79 3 0 SV* ret = sv.payload(Sv::default_marker()).obj;
80 0 3 if (!ret) XSRETURN_UNDEF;
82 0 3 XSRETURN(1);
86 1 1 if (sv.is_ref()) sv = Ref(sv).value();
1 0 if (sv.is_ref()) sv = Ref(sv).value();
87 2 0 RETVAL = sv.payload_detach(Sv::default_marker());
2 0 RETVAL = sv.payload_detach(Sv::default_marker());
91 0 6 if (!rv) throw "argument is not a reference";
93 4 2 if (SvOK(sv)) throw "only references to undefs can be upgraded";
4 0 if (SvOK(sv)) throw "only references to undefs can be upgraded";
0 4 if (SvOK(sv)) throw "only references to undefs can be upgraded";
2 4 if (SvOK(sv)) throw "only references to undefs can be upgraded";
94 4 0 sv.upgrade(SVt_PVHV);
98 0 2 if (!rv) throw "argument is not a reference";
100 1 1 if (SvOK(sv)) throw "only references to undefs can be upgraded";
1 0 if (SvOK(sv)) throw "only references to undefs can be upgraded";
0 1 if (SvOK(sv)) throw "only references to undefs can be upgraded";
1 1 if (SvOK(sv)) throw "only references to undefs can be upgraded";
101 1 0 sv.upgrade(SVt_PVAV);