Branch Coverage

XS.xs
Criterion Covered Total %
branch 42 84 50.0


line true false branch
7 0 0 throw Simple::format("Export::XS: context package '%" SVf "' doesn't exist", SVfARG(name.get()));
14 16 0 Stash caller_stash = CopSTASH(PL_curcop);
17 16 0 panda::string_view ctx_clname = ctx_class;
18 16 0 if (ctx_clname == "Export::XS") create = true;
8 8 if (ctx_clname == "Export::XS") create = true;
19 8 0 else if (ctx_clname == "Export::XS::Auto") {
2 6 else if (ctx_clname == "Export::XS::Auto") {
21 2 0 autoexport(caller_stash);
2 0 autoexport(caller_stash);
24 10 6 if (create) {
25 3 7 if (items < 2) XSRETURN_EMPTY;
26 7 0 if (Sv(ST(1)).is_hash_ref()) create_constants(caller_stash, ST(1));
3 4 if (Sv(ST(1)).is_hash_ref()) create_constants(caller_stash, ST(1));
3 0 if (Sv(ST(1)).is_hash_ref()) create_constants(caller_stash, ST(1));
3 0 if (Sv(ST(1)).is_hash_ref()) create_constants(caller_stash, ST(1));
2 1 if (Sv(ST(1)).is_hash_ref()) create_constants(caller_stash, ST(1));
27 4 0 else create_constants(caller_stash, &ST(1), items-1);
3 1 else create_constants(caller_stash, &ST(1), items-1);
30 6 0 auto ctx_stash = Stash::from_name(ctx_class);
31 0 6 if (!ctx_stash) throw_nopackage(ctx_class);
0 0 if (!ctx_stash) throw_nopackage(ctx_class);
32 4 2 if (items > 1) {
33 9 3 for (I32 i = 1; i < items; ++i) {
34 9 0 panda::string_view name = Simple(ST(i));
9 0 panda::string_view name = Simple(ST(i));
35 9 0 if (name == ":const") export_constants(ctx_stash, caller_stash);
1 8 if (name == ":const") export_constants(ctx_stash, caller_stash);
1 0 if (name == ":const") export_constants(ctx_stash, caller_stash);
1 0 if (name == ":const") export_constants(ctx_stash, caller_stash);
36 8 0 else export_sub(ctx_stash, caller_stash, name);
7 1 else export_sub(ctx_stash, caller_stash, name);
39 2 0 else export_constants(ctx_stash, caller_stash);
2 0 else export_constants(ctx_stash, caller_stash);
44 0 0 auto ctx_stash = Stash::from_name(ctx_class);
0 0 auto ctx_stash = Stash::from_name(ctx_class);
45 0 0 if (!ctx_stash) throw_nopackage(ctx_class);
0 0 if (!ctx_stash) throw_nopackage(ctx_class);
46 0 0 RETVAL = constants_list(ctx_stash);
50 0 0 auto ctx_stash = Stash::from_name(ctx_class);
51 0 0 auto trg_stash = Stash::from_name(trg_class);
53 0 0 export_constants(ctx_stash, trg_stash);
0 0 export_constants(ctx_stash, trg_stash);