Branch Coverage

t/svapi/stash.cc
Criterion Covered Total %
branch 1907 4254 44.8


line true false branch
7 147 0 perlvars vars;
8 147 0 Stash my(vars.stash);
9 147 0 Hash h_valid(vars.stash), h_invalid(vars.hv);
147 0 Hash h_valid(vars.stash), h_invalid(vars.hv);
11 147 0 my.erase("test");
13 147 0 SECTION("ctor") {
147 0 SECTION("ctor") {
147 0 SECTION("ctor") {
147 0 SECTION("ctor") {
40 107 SECTION("ctor") {
14 40 0 SECTION("empty") {
40 0 SECTION("empty") {
40 0 SECTION("empty") {
40 0 SECTION("empty") {
1 39 SECTION("empty") {
16 1 0 REQUIRE(!o);
1 0 REQUIRE(!o);
1 0 REQUIRE(!o);
1 0 REQUIRE(!o);
0 0 REQUIRE(!o);
0 0 REQUIRE(!o);
18 40 0 SECTION("SV") {
40 0 SECTION("SV") {
40 0 SECTION("SV") {
40 0 SECTION("SV") {
22 18 SECTION("SV") {
19 22 0 SECTION("undef SV") { Test::ctor(vars.undef, behaviour_t::EMPTY); }
22 0 SECTION("undef SV") { Test::ctor(vars.undef, behaviour_t::EMPTY); }
22 0 SECTION("undef SV") { Test::ctor(vars.undef, behaviour_t::EMPTY); }
22 0 SECTION("undef SV") { Test::ctor(vars.undef, behaviour_t::EMPTY); }
2 20 SECTION("undef SV") { Test::ctor(vars.undef, behaviour_t::EMPTY); }
2 0 SECTION("undef SV") { Test::ctor(vars.undef, behaviour_t::EMPTY); }
20 22 0 SECTION("number SV") { Test::ctor(vars.iv, behaviour_t::THROWS); }
22 0 SECTION("number SV") { Test::ctor(vars.iv, behaviour_t::THROWS); }
22 0 SECTION("number SV") { Test::ctor(vars.iv, behaviour_t::THROWS); }
22 0 SECTION("number SV") { Test::ctor(vars.iv, behaviour_t::THROWS); }
2 20 SECTION("number SV") { Test::ctor(vars.iv, behaviour_t::THROWS); }
2 0 SECTION("number SV") { Test::ctor(vars.iv, behaviour_t::THROWS); }
21 22 0 SECTION("string SV") { Test::ctor(vars.pv, behaviour_t::THROWS); }
22 0 SECTION("string SV") { Test::ctor(vars.pv, behaviour_t::THROWS); }
22 0 SECTION("string SV") { Test::ctor(vars.pv, behaviour_t::THROWS); }
22 0 SECTION("string SV") { Test::ctor(vars.pv, behaviour_t::THROWS); }
2 20 SECTION("string SV") { Test::ctor(vars.pv, behaviour_t::THROWS); }
2 0 SECTION("string SV") { Test::ctor(vars.pv, behaviour_t::THROWS); }
22 22 0 SECTION("RV") { Test::ctor(vars.rv, behaviour_t::THROWS); }
22 0 SECTION("RV") { Test::ctor(vars.rv, behaviour_t::THROWS); }
22 0 SECTION("RV") { Test::ctor(vars.rv, behaviour_t::THROWS); }
22 0 SECTION("RV") { Test::ctor(vars.rv, behaviour_t::THROWS); }
2 20 SECTION("RV") { Test::ctor(vars.rv, behaviour_t::THROWS); }
2 0 SECTION("RV") { Test::ctor(vars.rv, behaviour_t::THROWS); }
23 22 0 SECTION("AV") { Test::ctor((SV*)vars.av, behaviour_t::THROWS); }
22 0 SECTION("AV") { Test::ctor((SV*)vars.av, behaviour_t::THROWS); }
22 0 SECTION("AV") { Test::ctor((SV*)vars.av, behaviour_t::THROWS); }
22 0 SECTION("AV") { Test::ctor((SV*)vars.av, behaviour_t::THROWS); }
2 20 SECTION("AV") { Test::ctor((SV*)vars.av, behaviour_t::THROWS); }
2 0 SECTION("AV") { Test::ctor((SV*)vars.av, behaviour_t::THROWS); }
24 22 0 SECTION("HV") { Test::ctor((SV*)vars.hv, behaviour_t::THROWS); }
22 0 SECTION("HV") { Test::ctor((SV*)vars.hv, behaviour_t::THROWS); }
22 0 SECTION("HV") { Test::ctor((SV*)vars.hv, behaviour_t::THROWS); }
22 0 SECTION("HV") { Test::ctor((SV*)vars.hv, behaviour_t::THROWS); }
2 20 SECTION("HV") { Test::ctor((SV*)vars.hv, behaviour_t::THROWS); }
2 0 SECTION("HV") { Test::ctor((SV*)vars.hv, behaviour_t::THROWS); }
25 22 0 SECTION("OHV") { Test::ctor((SV*)vars.ohv, behaviour_t::THROWS); }
22 0 SECTION("OHV") { Test::ctor((SV*)vars.ohv, behaviour_t::THROWS); }
22 0 SECTION("OHV") { Test::ctor((SV*)vars.ohv, behaviour_t::THROWS); }
22 0 SECTION("OHV") { Test::ctor((SV*)vars.ohv, behaviour_t::THROWS); }
2 20 SECTION("OHV") { Test::ctor((SV*)vars.ohv, behaviour_t::THROWS); }
2 0 SECTION("OHV") { Test::ctor((SV*)vars.ohv, behaviour_t::THROWS); }
26 22 0 SECTION("SHV") { Test::ctor((SV*)vars.stash, behaviour_t::VALID); }
22 0 SECTION("SHV") { Test::ctor((SV*)vars.stash, behaviour_t::VALID); }
22 0 SECTION("SHV") { Test::ctor((SV*)vars.stash, behaviour_t::VALID); }
22 0 SECTION("SHV") { Test::ctor((SV*)vars.stash, behaviour_t::VALID); }
2 20 SECTION("SHV") { Test::ctor((SV*)vars.stash, behaviour_t::VALID); }
2 0 SECTION("SHV") { Test::ctor((SV*)vars.stash, behaviour_t::VALID); }
27 22 0 SECTION("CV") { Test::ctor((SV*)vars.cv, behaviour_t::THROWS); }
22 0 SECTION("CV") { Test::ctor((SV*)vars.cv, behaviour_t::THROWS); }
22 0 SECTION("CV") { Test::ctor((SV*)vars.cv, behaviour_t::THROWS); }
22 0 SECTION("CV") { Test::ctor((SV*)vars.cv, behaviour_t::THROWS); }
2 20 SECTION("CV") { Test::ctor((SV*)vars.cv, behaviour_t::THROWS); }
2 0 SECTION("CV") { Test::ctor((SV*)vars.cv, behaviour_t::THROWS); }
28 22 0 SECTION("GV") { Test::ctor((SV*)vars.gv, behaviour_t::THROWS); }
22 0 SECTION("GV") { Test::ctor((SV*)vars.gv, behaviour_t::THROWS); }
22 0 SECTION("GV") { Test::ctor((SV*)vars.gv, behaviour_t::THROWS); }
22 0 SECTION("GV") { Test::ctor((SV*)vars.gv, behaviour_t::THROWS); }
2 20 SECTION("GV") { Test::ctor((SV*)vars.gv, behaviour_t::THROWS); }
2 0 SECTION("GV") { Test::ctor((SV*)vars.gv, behaviour_t::THROWS); }
29 22 0 SECTION("IO") { Test::ctor((SV*)vars.io, behaviour_t::THROWS); }
22 0 SECTION("IO") { Test::ctor((SV*)vars.io, behaviour_t::THROWS); }
22 0 SECTION("IO") { Test::ctor((SV*)vars.io, behaviour_t::THROWS); }
22 0 SECTION("IO") { Test::ctor((SV*)vars.io, behaviour_t::THROWS); }
2 20 SECTION("IO") { Test::ctor((SV*)vars.io, behaviour_t::THROWS); }
2 0 SECTION("IO") { Test::ctor((SV*)vars.io, behaviour_t::THROWS); }
31 40 0 SECTION("HV") { Test::ctor(vars.hv, behaviour_t::THROWS); }
40 0 SECTION("HV") { Test::ctor(vars.hv, behaviour_t::THROWS); }
40 0 SECTION("HV") { Test::ctor(vars.hv, behaviour_t::THROWS); }
40 0 SECTION("HV") { Test::ctor(vars.hv, behaviour_t::THROWS); }
2 38 SECTION("HV") { Test::ctor(vars.hv, behaviour_t::THROWS); }
2 0 SECTION("HV") { Test::ctor(vars.hv, behaviour_t::THROWS); }
32 40 0 SECTION("OHV") { Test::ctor(vars.ohv, behaviour_t::THROWS); }
40 0 SECTION("OHV") { Test::ctor(vars.ohv, behaviour_t::THROWS); }
40 0 SECTION("OHV") { Test::ctor(vars.ohv, behaviour_t::THROWS); }
40 0 SECTION("OHV") { Test::ctor(vars.ohv, behaviour_t::THROWS); }
2 38 SECTION("OHV") { Test::ctor(vars.ohv, behaviour_t::THROWS); }
2 0 SECTION("OHV") { Test::ctor(vars.ohv, behaviour_t::THROWS); }
33 40 0 SECTION("SHV") { Test::ctor(vars.stash, behaviour_t::VALID); }
40 0 SECTION("SHV") { Test::ctor(vars.stash, behaviour_t::VALID); }
40 0 SECTION("SHV") { Test::ctor(vars.stash, behaviour_t::VALID); }
40 0 SECTION("SHV") { Test::ctor(vars.stash, behaviour_t::VALID); }
2 38 SECTION("SHV") { Test::ctor(vars.stash, behaviour_t::VALID); }
2 0 SECTION("SHV") { Test::ctor(vars.stash, behaviour_t::VALID); }
34 40 0 SECTION("string") {
40 0 SECTION("string") {
40 0 SECTION("string") {
40 0 SECTION("string") {
1 39 SECTION("string") {
35 1 0 Stash o("MyTest");
36 1 0 REQUIRE(o);
1 0 REQUIRE(o);
1 0 REQUIRE(o);
1 0 REQUIRE(o);
0 0 REQUIRE(o);
0 0 REQUIRE(o);
37 1 0 REQUIRE(o == gv_stashpvs("MyTest", 0));
1 0 REQUIRE(o == gv_stashpvs("MyTest", 0));
1 0 REQUIRE(o == gv_stashpvs("MyTest", 0));
1 0 REQUIRE(o == gv_stashpvs("MyTest", 0));
1 0 REQUIRE(o == gv_stashpvs("MyTest", 0));
1 0 REQUIRE(o == gv_stashpvs("MyTest", 0));
0 0 REQUIRE(o == gv_stashpvs("MyTest", 0));
0 0 REQUIRE(o == gv_stashpvs("MyTest", 0));
40 40 0 SECTION("Stash") { Test::ctor(my, behaviour_t::VALID); }
40 0 SECTION("Stash") { Test::ctor(my, behaviour_t::VALID); }
40 0 SECTION("Stash") { Test::ctor(my, behaviour_t::VALID); }
40 0 SECTION("Stash") { Test::ctor(my, behaviour_t::VALID); }
2 38 SECTION("Stash") { Test::ctor(my, behaviour_t::VALID); }
2 0 SECTION("Stash") { Test::ctor(my, behaviour_t::VALID); }
41 40 0 SECTION("valid Hash") { Test::ctor(h_valid, behaviour_t::VALID); }
40 0 SECTION("valid Hash") { Test::ctor(h_valid, behaviour_t::VALID); }
40 0 SECTION("valid Hash") { Test::ctor(h_valid, behaviour_t::VALID); }
40 0 SECTION("valid Hash") { Test::ctor(h_valid, behaviour_t::VALID); }
2 38 SECTION("valid Hash") { Test::ctor(h_valid, behaviour_t::VALID); }
2 0 SECTION("valid Hash") { Test::ctor(h_valid, behaviour_t::VALID); }
42 40 0 SECTION("invalid Hash") { Test::ctor(h_invalid, behaviour_t::THROWS); }
40 0 SECTION("invalid Hash") { Test::ctor(h_invalid, behaviour_t::THROWS); }
40 0 SECTION("invalid Hash") { Test::ctor(h_invalid, behaviour_t::THROWS); }
40 0 SECTION("invalid Hash") { Test::ctor(h_invalid, behaviour_t::THROWS); }
2 38 SECTION("invalid Hash") { Test::ctor(h_invalid, behaviour_t::THROWS); }
2 0 SECTION("invalid Hash") { Test::ctor(h_invalid, behaviour_t::THROWS); }
43 40 0 SECTION("valid Sv") { Test::ctor(oth_valid, behaviour_t::VALID); }
40 0 SECTION("valid Sv") { Test::ctor(oth_valid, behaviour_t::VALID); }
40 0 SECTION("valid Sv") { Test::ctor(oth_valid, behaviour_t::VALID); }
40 0 SECTION("valid Sv") { Test::ctor(oth_valid, behaviour_t::VALID); }
2 38 SECTION("valid Sv") { Test::ctor(oth_valid, behaviour_t::VALID); }
2 0 SECTION("valid Sv") { Test::ctor(oth_valid, behaviour_t::VALID); }
44 40 0 SECTION("invalid Sv") { Test::ctor(oth_invalid, behaviour_t::THROWS); }
40 0 SECTION("invalid Sv") { Test::ctor(oth_invalid, behaviour_t::THROWS); }
40 0 SECTION("invalid Sv") { Test::ctor(oth_invalid, behaviour_t::THROWS); }
40 0 SECTION("invalid Sv") { Test::ctor(oth_invalid, behaviour_t::THROWS); }
2 38 SECTION("invalid Sv") { Test::ctor(oth_invalid, behaviour_t::THROWS); }
2 0 SECTION("invalid Sv") { Test::ctor(oth_invalid, behaviour_t::THROWS); }
47 147 0 SECTION("operator=") {
147 0 SECTION("operator=") {
147 0 SECTION("operator=") {
147 0 SECTION("operator=") {
48 99 SECTION("operator=") {
48 48 0 Stash o(gv_stashpvs("MyTest::__Dummy", GV_ADD));
48 0 Stash o(gv_stashpvs("MyTest::__Dummy", GV_ADD));
49 48 0 SECTION("SV") {
48 0 SECTION("SV") {
48 0 SECTION("SV") {
48 0 SECTION("SV") {
22 26 SECTION("SV") {
50 22 0 SECTION("undef SV") { Test::assign(o, vars.undef, behaviour_t::EMPTY); }
22 0 SECTION("undef SV") { Test::assign(o, vars.undef, behaviour_t::EMPTY); }
22 0 SECTION("undef SV") { Test::assign(o, vars.undef, behaviour_t::EMPTY); }
22 0 SECTION("undef SV") { Test::assign(o, vars.undef, behaviour_t::EMPTY); }
2 20 SECTION("undef SV") { Test::assign(o, vars.undef, behaviour_t::EMPTY); }
2 0 SECTION("undef SV") { Test::assign(o, vars.undef, behaviour_t::EMPTY); }
51 22 0 SECTION("number SV") { Test::assign(o, vars.iv, behaviour_t::THROWS); }
22 0 SECTION("number SV") { Test::assign(o, vars.iv, behaviour_t::THROWS); }
22 0 SECTION("number SV") { Test::assign(o, vars.iv, behaviour_t::THROWS); }
22 0 SECTION("number SV") { Test::assign(o, vars.iv, behaviour_t::THROWS); }
2 20 SECTION("number SV") { Test::assign(o, vars.iv, behaviour_t::THROWS); }
2 0 SECTION("number SV") { Test::assign(o, vars.iv, behaviour_t::THROWS); }
52 22 0 SECTION("string SV") { Test::assign(o, vars.pv, behaviour_t::THROWS); }
22 0 SECTION("string SV") { Test::assign(o, vars.pv, behaviour_t::THROWS); }
22 0 SECTION("string SV") { Test::assign(o, vars.pv, behaviour_t::THROWS); }
22 0 SECTION("string SV") { Test::assign(o, vars.pv, behaviour_t::THROWS); }
2 20 SECTION("string SV") { Test::assign(o, vars.pv, behaviour_t::THROWS); }
2 0 SECTION("string SV") { Test::assign(o, vars.pv, behaviour_t::THROWS); }
53 22 0 SECTION("RV") { Test::assign(o, vars.rv, behaviour_t::THROWS); }
22 0 SECTION("RV") { Test::assign(o, vars.rv, behaviour_t::THROWS); }
22 0 SECTION("RV") { Test::assign(o, vars.rv, behaviour_t::THROWS); }
22 0 SECTION("RV") { Test::assign(o, vars.rv, behaviour_t::THROWS); }
2 20 SECTION("RV") { Test::assign(o, vars.rv, behaviour_t::THROWS); }
2 0 SECTION("RV") { Test::assign(o, vars.rv, behaviour_t::THROWS); }
54 22 0 SECTION("AV") { Test::assign(o, (SV*)vars.av, behaviour_t::THROWS); }
22 0 SECTION("AV") { Test::assign(o, (SV*)vars.av, behaviour_t::THROWS); }
22 0 SECTION("AV") { Test::assign(o, (SV*)vars.av, behaviour_t::THROWS); }
22 0 SECTION("AV") { Test::assign(o, (SV*)vars.av, behaviour_t::THROWS); }
2 20 SECTION("AV") { Test::assign(o, (SV*)vars.av, behaviour_t::THROWS); }
2 0 SECTION("AV") { Test::assign(o, (SV*)vars.av, behaviour_t::THROWS); }
55 22 0 SECTION("HV") { Test::assign(o, (SV*)vars.hv, behaviour_t::THROWS); }
22 0 SECTION("HV") { Test::assign(o, (SV*)vars.hv, behaviour_t::THROWS); }
22 0 SECTION("HV") { Test::assign(o, (SV*)vars.hv, behaviour_t::THROWS); }
22 0 SECTION("HV") { Test::assign(o, (SV*)vars.hv, behaviour_t::THROWS); }
2 20 SECTION("HV") { Test::assign(o, (SV*)vars.hv, behaviour_t::THROWS); }
2 0 SECTION("HV") { Test::assign(o, (SV*)vars.hv, behaviour_t::THROWS); }
56 22 0 SECTION("OHV") { Test::assign(o, (SV*)vars.ohv, behaviour_t::THROWS); }
22 0 SECTION("OHV") { Test::assign(o, (SV*)vars.ohv, behaviour_t::THROWS); }
22 0 SECTION("OHV") { Test::assign(o, (SV*)vars.ohv, behaviour_t::THROWS); }
22 0 SECTION("OHV") { Test::assign(o, (SV*)vars.ohv, behaviour_t::THROWS); }
2 20 SECTION("OHV") { Test::assign(o, (SV*)vars.ohv, behaviour_t::THROWS); }
2 0 SECTION("OHV") { Test::assign(o, (SV*)vars.ohv, behaviour_t::THROWS); }
57 22 0 SECTION("SHV") { Test::assign(o, (SV*)vars.stash, behaviour_t::VALID); }
22 0 SECTION("SHV") { Test::assign(o, (SV*)vars.stash, behaviour_t::VALID); }
22 0 SECTION("SHV") { Test::assign(o, (SV*)vars.stash, behaviour_t::VALID); }
22 0 SECTION("SHV") { Test::assign(o, (SV*)vars.stash, behaviour_t::VALID); }
2 20 SECTION("SHV") { Test::assign(o, (SV*)vars.stash, behaviour_t::VALID); }
2 0 SECTION("SHV") { Test::assign(o, (SV*)vars.stash, behaviour_t::VALID); }
58 22 0 SECTION("CV") { Test::assign(o, (SV*)vars.cv, behaviour_t::THROWS); }
22 0 SECTION("CV") { Test::assign(o, (SV*)vars.cv, behaviour_t::THROWS); }
22 0 SECTION("CV") { Test::assign(o, (SV*)vars.cv, behaviour_t::THROWS); }
22 0 SECTION("CV") { Test::assign(o, (SV*)vars.cv, behaviour_t::THROWS); }
2 20 SECTION("CV") { Test::assign(o, (SV*)vars.cv, behaviour_t::THROWS); }
2 0 SECTION("CV") { Test::assign(o, (SV*)vars.cv, behaviour_t::THROWS); }
59 22 0 SECTION("GV") { Test::assign(o, (SV*)vars.gv, behaviour_t::THROWS); }
22 0 SECTION("GV") { Test::assign(o, (SV*)vars.gv, behaviour_t::THROWS); }
22 0 SECTION("GV") { Test::assign(o, (SV*)vars.gv, behaviour_t::THROWS); }
22 0 SECTION("GV") { Test::assign(o, (SV*)vars.gv, behaviour_t::THROWS); }
2 20 SECTION("GV") { Test::assign(o, (SV*)vars.gv, behaviour_t::THROWS); }
2 0 SECTION("GV") { Test::assign(o, (SV*)vars.gv, behaviour_t::THROWS); }
60 22 0 SECTION("IO") { Test::assign(o, (SV*)vars.io, behaviour_t::THROWS); }
22 0 SECTION("IO") { Test::assign(o, (SV*)vars.io, behaviour_t::THROWS); }
22 0 SECTION("IO") { Test::assign(o, (SV*)vars.io, behaviour_t::THROWS); }
22 0 SECTION("IO") { Test::assign(o, (SV*)vars.io, behaviour_t::THROWS); }
2 20 SECTION("IO") { Test::assign(o, (SV*)vars.io, behaviour_t::THROWS); }
2 0 SECTION("IO") { Test::assign(o, (SV*)vars.io, behaviour_t::THROWS); }
62 48 0 SECTION("HV") { Test::assign(o, vars.hv, behaviour_t::THROWS); }
48 0 SECTION("HV") { Test::assign(o, vars.hv, behaviour_t::THROWS); }
48 0 SECTION("HV") { Test::assign(o, vars.hv, behaviour_t::THROWS); }
48 0 SECTION("HV") { Test::assign(o, vars.hv, behaviour_t::THROWS); }
2 46 SECTION("HV") { Test::assign(o, vars.hv, behaviour_t::THROWS); }
2 0 SECTION("HV") { Test::assign(o, vars.hv, behaviour_t::THROWS); }
63 48 0 SECTION("OHV") { Test::assign(o, vars.ohv, behaviour_t::THROWS); }
48 0 SECTION("OHV") { Test::assign(o, vars.ohv, behaviour_t::THROWS); }
48 0 SECTION("OHV") { Test::assign(o, vars.ohv, behaviour_t::THROWS); }
48 0 SECTION("OHV") { Test::assign(o, vars.ohv, behaviour_t::THROWS); }
2 46 SECTION("OHV") { Test::assign(o, vars.ohv, behaviour_t::THROWS); }
2 0 SECTION("OHV") { Test::assign(o, vars.ohv, behaviour_t::THROWS); }
64 48 0 SECTION("SHV") { Test::assign(o, vars.stash, behaviour_t::VALID); }
48 0 SECTION("SHV") { Test::assign(o, vars.stash, behaviour_t::VALID); }
48 0 SECTION("SHV") { Test::assign(o, vars.stash, behaviour_t::VALID); }
48 0 SECTION("SHV") { Test::assign(o, vars.stash, behaviour_t::VALID); }
2 46 SECTION("SHV") { Test::assign(o, vars.stash, behaviour_t::VALID); }
2 0 SECTION("SHV") { Test::assign(o, vars.stash, behaviour_t::VALID); }
65 48 0 SECTION("Stash") { Test::assign(o, my, behaviour_t::VALID); }
48 0 SECTION("Stash") { Test::assign(o, my, behaviour_t::VALID); }
48 0 SECTION("Stash") { Test::assign(o, my, behaviour_t::VALID); }
48 0 SECTION("Stash") { Test::assign(o, my, behaviour_t::VALID); }
4 44 SECTION("Stash") { Test::assign(o, my, behaviour_t::VALID); }
4 0 SECTION("Stash") { Test::assign(o, my, behaviour_t::VALID); }
66 48 0 SECTION("valid Hash") { Test::assign(o, h_valid, behaviour_t::VALID); }
48 0 SECTION("valid Hash") { Test::assign(o, h_valid, behaviour_t::VALID); }
48 0 SECTION("valid Hash") { Test::assign(o, h_valid, behaviour_t::VALID); }
48 0 SECTION("valid Hash") { Test::assign(o, h_valid, behaviour_t::VALID); }
4 44 SECTION("valid Hash") { Test::assign(o, h_valid, behaviour_t::VALID); }
4 0 SECTION("valid Hash") { Test::assign(o, h_valid, behaviour_t::VALID); }
67 48 0 SECTION("invalid Hash") { Test::assign(o, h_invalid, behaviour_t::THROWS); }
48 0 SECTION("invalid Hash") { Test::assign(o, h_invalid, behaviour_t::THROWS); }
48 0 SECTION("invalid Hash") { Test::assign(o, h_invalid, behaviour_t::THROWS); }
48 0 SECTION("invalid Hash") { Test::assign(o, h_invalid, behaviour_t::THROWS); }
4 44 SECTION("invalid Hash") { Test::assign(o, h_invalid, behaviour_t::THROWS); }
4 0 SECTION("invalid Hash") { Test::assign(o, h_invalid, behaviour_t::THROWS); }
68 48 0 SECTION("valid Sv") { Test::assign(o, oth_valid, behaviour_t::VALID); }
48 0 SECTION("valid Sv") { Test::assign(o, oth_valid, behaviour_t::VALID); }
48 0 SECTION("valid Sv") { Test::assign(o, oth_valid, behaviour_t::VALID); }
48 0 SECTION("valid Sv") { Test::assign(o, oth_valid, behaviour_t::VALID); }
4 44 SECTION("valid Sv") { Test::assign(o, oth_valid, behaviour_t::VALID); }
4 0 SECTION("valid Sv") { Test::assign(o, oth_valid, behaviour_t::VALID); }
69 48 0 SECTION("invalid Sv") { Test::assign(o, oth_invalid, behaviour_t::THROWS); }
48 0 SECTION("invalid Sv") { Test::assign(o, oth_invalid, behaviour_t::THROWS); }
48 0 SECTION("invalid Sv") { Test::assign(o, oth_invalid, behaviour_t::THROWS); }
48 0 SECTION("invalid Sv") { Test::assign(o, oth_invalid, behaviour_t::THROWS); }
4 44 SECTION("invalid Sv") { Test::assign(o, oth_invalid, behaviour_t::THROWS); }
4 0 SECTION("invalid Sv") { Test::assign(o, oth_invalid, behaviour_t::THROWS); }
72 147 0 SECTION("set") {
147 0 SECTION("set") {
147 0 SECTION("set") {
147 0 SECTION("set") {
2 145 SECTION("set") {
74 2 0 SECTION("SV") {
2 0 SECTION("SV") {
2 0 SECTION("SV") {
2 0 SECTION("SV") {
1 1 SECTION("SV") {
76 1 0 o.set(vars.iv); // no checks
77 1 0 REQUIRE(o);
1 0 REQUIRE(o);
1 0 REQUIRE(o);
1 0 REQUIRE(o);
0 0 REQUIRE(o);
0 0 REQUIRE(o);
78 1 0 REQUIRE(SvREFCNT(vars.iv) == cnt+1);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt+1);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt+1);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt+1);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt+1);
0 0 REQUIRE(SvREFCNT(vars.iv) == cnt+1);
0 0 REQUIRE(SvREFCNT(vars.iv) == cnt+1);
79 1 0 REQUIRE(o.get() == vars.iv);
1 0 REQUIRE(o.get() == vars.iv);
1 0 REQUIRE(o.get() == vars.iv);
1 0 REQUIRE(o.get() == vars.iv);
1 0 REQUIRE(o.get() == vars.iv);
0 0 REQUIRE(o.get() == vars.iv);
0 0 REQUIRE(o.get() == vars.iv);
81 2 0 SECTION("HV") {
2 0 SECTION("HV") {
2 0 SECTION("HV") {
2 0 SECTION("HV") {
1 1 SECTION("HV") {
83 1 0 o.set(vars.hv); // no checks
84 1 0 REQUIRE(o);
1 0 REQUIRE(o);
1 0 REQUIRE(o);
1 0 REQUIRE(o);
0 0 REQUIRE(o);
0 0 REQUIRE(o);
85 1 0 REQUIRE(SvREFCNT(vars.hv) == cnt+1);
1 0 REQUIRE(SvREFCNT(vars.hv) == cnt+1);
1 0 REQUIRE(SvREFCNT(vars.hv) == cnt+1);
1 0 REQUIRE(SvREFCNT(vars.hv) == cnt+1);
1 0 REQUIRE(SvREFCNT(vars.hv) == cnt+1);
0 0 REQUIRE(SvREFCNT(vars.hv) == cnt+1);
0 0 REQUIRE(SvREFCNT(vars.hv) == cnt+1);
86 1 0 REQUIRE(o.get() == vars.hv);
1 0 REQUIRE(o.get() == vars.hv);
1 0 REQUIRE(o.get() == vars.hv);
1 0 REQUIRE(o.get() == vars.hv);
1 0 REQUIRE(o.get() == vars.hv);
0 0 REQUIRE(o.get() == vars.hv);
0 0 REQUIRE(o.get() == vars.hv);
90 147 0 SECTION("cast") {
147 0 SECTION("cast") {
147 0 SECTION("cast") {
147 0 SECTION("cast") {
2 145 SECTION("cast") {
91 2 0 Stash o(vars.stash);
93 2 0 SECTION("to SV") {
2 0 SECTION("to SV") {
2 0 SECTION("to SV") {
2 0 SECTION("to SV") {
1 1 SECTION("to SV") {
95 1 0 REQUIRE(sv == (SV*)vars.stash);
1 0 REQUIRE(sv == (SV*)vars.stash);
1 0 REQUIRE(sv == (SV*)vars.stash);
1 0 REQUIRE(sv == (SV*)vars.stash);
1 0 REQUIRE(sv == (SV*)vars.stash);
0 0 REQUIRE(sv == (SV*)vars.stash);
0 0 REQUIRE(sv == (SV*)vars.stash);
96 1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
0 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
0 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
98 2 0 SECTION("to HV") {
2 0 SECTION("to HV") {
2 0 SECTION("to HV") {
2 0 SECTION("to HV") {
1 1 SECTION("to HV") {
100 1 0 REQUIRE(sv == vars.stash);
1 0 REQUIRE(sv == vars.stash);
1 0 REQUIRE(sv == vars.stash);
1 0 REQUIRE(sv == vars.stash);
1 0 REQUIRE(sv == vars.stash);
0 0 REQUIRE(sv == vars.stash);
0 0 REQUIRE(sv == vars.stash);
101 1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
0 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
0 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
105 147 0 SECTION("get") {
147 0 SECTION("get") {
147 0 SECTION("get") {
147 0 SECTION("get") {
1 146 SECTION("get") {
106 1 0 Stash o(vars.stash);
108 1 0 REQUIRE(o.get<>() == (SV*)vars.stash);
1 0 REQUIRE(o.get<>() == (SV*)vars.stash);
1 0 REQUIRE(o.get<>() == (SV*)vars.stash);
1 0 REQUIRE(o.get<>() == (SV*)vars.stash);
1 0 REQUIRE(o.get<>() == (SV*)vars.stash);
0 0 REQUIRE(o.get<>() == (SV*)vars.stash);
0 0 REQUIRE(o.get<>() == (SV*)vars.stash);
109 1 0 REQUIRE(o.get() == (SV*)vars.stash);
1 0 REQUIRE(o.get() == (SV*)vars.stash);
1 0 REQUIRE(o.get() == (SV*)vars.stash);
1 0 REQUIRE(o.get() == (SV*)vars.stash);
1 0 REQUIRE(o.get() == (SV*)vars.stash);
0 0 REQUIRE(o.get() == (SV*)vars.stash);
0 0 REQUIRE(o.get() == (SV*)vars.stash);
110 1 0 REQUIRE(o.get() == vars.stash);
1 0 REQUIRE(o.get() == vars.stash);
1 0 REQUIRE(o.get() == vars.stash);
1 0 REQUIRE(o.get() == vars.stash);
1 0 REQUIRE(o.get() == vars.stash);
0 0 REQUIRE(o.get() == vars.stash);
0 0 REQUIRE(o.get() == vars.stash);
111 1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
1 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
0 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
0 0 REQUIRE(SvREFCNT(vars.stash) == rcnt);
114 147 0 SECTION("name/effective_name") {
147 0 SECTION("name/effective_name") {
147 0 SECTION("name/effective_name") {
147 0 SECTION("name/effective_name") {
1 146 SECTION("name/effective_name") {
115 1 0 REQUIRE(my.name() == "M1");
1 0 REQUIRE(my.name() == "M1");
1 0 REQUIRE(my.name() == "M1");
1 0 REQUIRE(my.name() == "M1");
1 0 REQUIRE(my.name() == "M1");
0 0 REQUIRE(my.name() == "M1");
0 0 REQUIRE(my.name() == "M1");
116 1 0 REQUIRE(my.effective_name() == "M1");
1 0 REQUIRE(my.effective_name() == "M1");
1 0 REQUIRE(my.effective_name() == "M1");
1 0 REQUIRE(my.effective_name() == "M1");
1 0 REQUIRE(my.effective_name() == "M1");
0 0 REQUIRE(my.effective_name() == "M1");
0 0 REQUIRE(my.effective_name() == "M1");
119 147 0 SECTION("fetch") {
147 0 SECTION("fetch") {
147 0 SECTION("fetch") {
147 0 SECTION("fetch") {
1 146 SECTION("fetch") {
120 1 0 auto glob = my.fetch("method");
121 1 0 REQUIRE(glob);
1 0 REQUIRE(glob);
1 0 REQUIRE(glob);
1 0 REQUIRE(glob);
0 0 REQUIRE(glob);
0 0 REQUIRE(glob);
122 1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
0 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
0 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
125 147 0 SECTION("[]const") {
147 0 SECTION("[]const") {
147 0 SECTION("[]const") {
147 0 SECTION("[]const") {
1 146 SECTION("[]const") {
127 1 0 auto glob = o["method"];
128 1 0 REQUIRE(glob);
1 0 REQUIRE(glob);
1 0 REQUIRE(glob);
1 0 REQUIRE(glob);
0 0 REQUIRE(glob);
0 0 REQUIRE(glob);
129 1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
0 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
0 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
132 147 0 SECTION("at") {
147 0 SECTION("at") {
147 0 SECTION("at") {
147 0 SECTION("at") {
1 146 SECTION("at") {
133 1 0 auto glob = my.at("method");
134 1 0 REQUIRE(glob);
1 0 REQUIRE(glob);
1 0 REQUIRE(glob);
1 0 REQUIRE(glob);
0 0 REQUIRE(glob);
0 0 REQUIRE(glob);
135 1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
1 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
0 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
0 0 REQUIRE(glob.sub() == get_cv("M1::method", 0));
136 1 0 REQUIRE_THROWS(my.at("jopa"));
1 0 REQUIRE_THROWS(my.at("jopa"));
1 0 REQUIRE_THROWS(my.at("jopa"));
0 1 REQUIRE_THROWS(my.at("jopa"));
0 0 REQUIRE_THROWS(my.at("jopa"));
0 0 REQUIRE_THROWS(my.at("jopa"));
1 0 REQUIRE_THROWS(my.at("jopa"));
1 0 REQUIRE_THROWS(my.at("jopa"));
1 0 REQUIRE_THROWS(my.at("jopa"));
139 147 0 SECTION("[]=") {
147 0 SECTION("[]=") {
147 0 SECTION("[]=") {
147 0 SECTION("[]=") {
24 123 SECTION("[]=") {
140 24 0 SECTION("nullptr") {
24 0 SECTION("nullptr") {
24 0 SECTION("nullptr") {
24 0 SECTION("nullptr") {
1 23 SECTION("nullptr") {
141 1 0 my["test"].scalar(Simple(10));
1 0 my["test"].scalar(Simple(10));
1 0 my["test"].scalar(Simple(10));
142 1 0 REQUIRE(my.fetch("test").scalar());
1 0 REQUIRE(my.fetch("test").scalar());
1 0 REQUIRE(my.fetch("test").scalar());
1 0 REQUIRE(my.fetch("test").scalar());
1 0 REQUIRE(my.fetch("test").scalar());
1 0 REQUIRE(my.fetch("test").scalar());
0 0 REQUIRE(my.fetch("test").scalar());
0 0 REQUIRE(my.fetch("test").scalar());
143 1 0 my["test"] = nullptr;
1 0 my["test"] = nullptr;
144 1 0 REQUIRE(!my.fetch("test").scalar());
1 0 REQUIRE(!my.fetch("test").scalar());
1 0 REQUIRE(!my.fetch("test").scalar());
1 0 REQUIRE(!my.fetch("test").scalar());
1 0 REQUIRE(!my.fetch("test").scalar());
1 0 REQUIRE(!my.fetch("test").scalar());
0 0 REQUIRE(!my.fetch("test").scalar());
0 0 REQUIRE(!my.fetch("test").scalar());
146 24 0 SECTION("SV") {
24 0 SECTION("SV") {
24 0 SECTION("SV") {
24 0 SECTION("SV") {
7 17 SECTION("SV") {
147 7 0 SECTION("undef") {
7 0 SECTION("undef") {
7 0 SECTION("undef") {
7 0 SECTION("undef") {
1 6 SECTION("undef") {
148 1 0 auto v = Sv::create();
149 1 0 my["test"] = v.get();
1 0 my["test"] = v.get();
150 1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
152 7 0 SECTION("simple") {
7 0 SECTION("simple") {
7 0 SECTION("simple") {
7 0 SECTION("simple") {
1 6 SECTION("simple") {
153 1 0 Simple v(100);
154 1 0 my["test"] = v.get();
1 0 my["test"] = v.get();
155 1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
157 7 0 SECTION("AV") {
7 0 SECTION("AV") {
7 0 SECTION("AV") {
7 0 SECTION("AV") {
1 6 SECTION("AV") {
158 1 0 auto v = Array::create();
159 1 0 my["test"] = v.get();
1 0 my["test"] = v.get();
160 1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
0 0 REQUIRE(my["test"].array() == v);
0 0 REQUIRE(my["test"].array() == v);
162 7 0 SECTION("HV") {
7 0 SECTION("HV") {
7 0 SECTION("HV") {
7 0 SECTION("HV") {
1 6 SECTION("HV") {
163 1 0 auto v = Hash::create();
164 1 0 my["test"] = v.get();
1 0 my["test"] = v.get();
165 1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
0 0 REQUIRE(my["test"].hash() == v);
0 0 REQUIRE(my["test"].hash() == v);
167 7 0 SECTION("CV") {
7 0 SECTION("CV") {
7 0 SECTION("CV") {
7 0 SECTION("CV") {
1 6 SECTION("CV") {
168 1 0 Sub v(vars.cv);
169 1 0 my["test"] = v.get();
1 0 my["test"] = v.get();
170 1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
0 0 REQUIRE(my["test"].sub() == v);
0 0 REQUIRE(my["test"].sub() == v);
172 7 0 SECTION("GV") {
7 0 SECTION("GV") {
7 0 SECTION("GV") {
7 0 SECTION("GV") {
1 6 SECTION("GV") {
173 1 0 auto v = my["method"];
174 1 0 my["test"] = v.get();
1 0 my["test"] = v.get();
175 1 0 REQUIRE(my["test"] == v);
1 0 REQUIRE(my["test"] == v);
1 0 REQUIRE(my["test"] == v);
1 0 REQUIRE(my["test"] == v);
1 0 REQUIRE(my["test"] == v);
1 0 REQUIRE(my["test"] == v);
0 0 REQUIRE(my["test"] == v);
0 0 REQUIRE(my["test"] == v);
177 7 0 SECTION("IO") {
7 0 SECTION("IO") {
7 0 SECTION("IO") {
7 0 SECTION("IO") {
1 6 SECTION("IO") {
178 1 0 Io v(vars.io);
179 1 0 my["test"] = v.get();
1 0 my["test"] = v.get();
180 1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
0 0 REQUIRE(my["test"].io() == v);
0 0 REQUIRE(my["test"].io() == v);
183 24 0 SECTION("AV") {
24 0 SECTION("AV") {
24 0 SECTION("AV") {
24 0 SECTION("AV") {
1 23 SECTION("AV") {
184 1 0 auto v = Array::create();
185 1 0 my["test"] = v.get();
1 0 my["test"] = v.get();
186 1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
0 0 REQUIRE(my["test"].array() == v);
0 0 REQUIRE(my["test"].array() == v);
188 24 0 SECTION("HV") {
24 0 SECTION("HV") {
24 0 SECTION("HV") {
24 0 SECTION("HV") {
1 23 SECTION("HV") {
189 1 0 auto v = Hash::create();
190 1 0 my["test"] = v.get();
1 0 my["test"] = v.get();
191 1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
0 0 REQUIRE(my["test"].hash() == v);
0 0 REQUIRE(my["test"].hash() == v);
193 24 0 SECTION("CV") {
24 0 SECTION("CV") {
24 0 SECTION("CV") {
24 0 SECTION("CV") {
1 23 SECTION("CV") {
194 1 0 Sub v(vars.cv);
195 1 0 my["test"] = v.get();
1 0 my["test"] = v.get();
196 1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
0 0 REQUIRE(my["test"].sub() == v);
0 0 REQUIRE(my["test"].sub() == v);
198 24 0 SECTION("GV") {
24 0 SECTION("GV") {
24 0 SECTION("GV") {
24 0 SECTION("GV") {
1 23 SECTION("GV") {
199 1 0 auto v = my["method"];
200 1 0 my["test"] = v.get();
1 0 my["test"] = v.get();
201 1 0 REQUIRE(my["test"] == v);
1 0 REQUIRE(my["test"] == v);
1 0 REQUIRE(my["test"] == v);
1 0 REQUIRE(my["test"] == v);
1 0 REQUIRE(my["test"] == v);
1 0 REQUIRE(my["test"] == v);
0 0 REQUIRE(my["test"] == v);
0 0 REQUIRE(my["test"] == v);
203 1 0 my.erase("test");
204 1 0 auto o = my["test"];
205 1 0 o.scalar(Simple(100));
1 0 o.scalar(Simple(100));
206 1 0 o.array(Array::create());
1 0 o.array(Array::create());
207 1 0 o.hash(Hash::create());
1 0 o.hash(Hash::create());
208 1 0 o.sub(Sub(vars.cv));
1 0 o.sub(Sub(vars.cv));
209 1 0 my["test"] = (GV*)NULL;
1 0 my["test"] = (GV*)NULL;
210 1 0 REQUIRE(!my["test"].scalar());
1 0 REQUIRE(!my["test"].scalar());
1 0 REQUIRE(!my["test"].scalar());
1 0 REQUIRE(!my["test"].scalar());
1 0 REQUIRE(!my["test"].scalar());
1 0 REQUIRE(!my["test"].scalar());
0 0 REQUIRE(!my["test"].scalar());
0 0 REQUIRE(!my["test"].scalar());
211 1 0 REQUIRE(!my["test"].array());
1 0 REQUIRE(!my["test"].array());
1 0 REQUIRE(!my["test"].array());
1 0 REQUIRE(!my["test"].array());
1 0 REQUIRE(!my["test"].array());
1 0 REQUIRE(!my["test"].array());
0 0 REQUIRE(!my["test"].array());
0 0 REQUIRE(!my["test"].array());
212 1 0 REQUIRE(!my["test"].hash());
1 0 REQUIRE(!my["test"].hash());
1 0 REQUIRE(!my["test"].hash());
1 0 REQUIRE(!my["test"].hash());
1 0 REQUIRE(!my["test"].hash());
1 0 REQUIRE(!my["test"].hash());
0 0 REQUIRE(!my["test"].hash());
0 0 REQUIRE(!my["test"].hash());
213 1 0 REQUIRE(!my["test"].sub());
1 0 REQUIRE(!my["test"].sub());
1 0 REQUIRE(!my["test"].sub());
1 0 REQUIRE(!my["test"].sub());
1 0 REQUIRE(!my["test"].sub());
1 0 REQUIRE(!my["test"].sub());
0 0 REQUIRE(!my["test"].sub());
0 0 REQUIRE(!my["test"].sub());
215 24 0 SECTION("IO") {
24 0 SECTION("IO") {
24 0 SECTION("IO") {
24 0 SECTION("IO") {
1 23 SECTION("IO") {
216 1 0 Io v(vars.io);
217 1 0 my["test"] = v.get();
1 0 my["test"] = v.get();
218 1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
0 0 REQUIRE(my["test"].io() == v);
0 0 REQUIRE(my["test"].io() == v);
220 24 0 SECTION("Sv") {
24 0 SECTION("Sv") {
24 0 SECTION("Sv") {
24 0 SECTION("Sv") {
1 23 SECTION("Sv") {
221 1 0 Sv v = Simple(100);
222 1 0 my["test"] = v;
1 0 my["test"] = v;
223 1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
224 1 0 v = Array::create();
225 1 0 my["test"] = v;
1 0 my["test"] = v;
226 1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
0 0 REQUIRE(my["test"].array() == v);
0 0 REQUIRE(my["test"].array() == v);
228 24 0 SECTION("Scalar") {
24 0 SECTION("Scalar") {
24 0 SECTION("Scalar") {
24 0 SECTION("Scalar") {
1 23 SECTION("Scalar") {
229 1 0 Scalar v = Simple(222);
230 1 0 my["test"] = v;
1 0 my["test"] = v;
231 1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
233 24 0 SECTION("Ref") {
24 0 SECTION("Ref") {
24 0 SECTION("Ref") {
24 0 SECTION("Ref") {
1 23 SECTION("Ref") {
234 1 0 Ref v = Ref::create(Simple(100));
1 0 Ref v = Ref::create(Simple(100));
235 1 0 my["test"] = v;
1 0 my["test"] = v;
236 1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
238 24 0 SECTION("Simple") {
24 0 SECTION("Simple") {
24 0 SECTION("Simple") {
24 0 SECTION("Simple") {
1 23 SECTION("Simple") {
239 1 0 Simple v(222);
240 1 0 my["test"] = v;
1 0 my["test"] = v;
241 1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
243 24 0 SECTION("Array") {
24 0 SECTION("Array") {
24 0 SECTION("Array") {
24 0 SECTION("Array") {
1 23 SECTION("Array") {
244 1 0 auto v = Array::create();
245 1 0 my["test"] = v;
1 0 my["test"] = v;
246 1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
0 0 REQUIRE(my["test"].array() == v);
0 0 REQUIRE(my["test"].array() == v);
248 24 0 SECTION("Hash") {
24 0 SECTION("Hash") {
24 0 SECTION("Hash") {
24 0 SECTION("Hash") {
1 23 SECTION("Hash") {
249 1 0 auto v = Hash::create();
250 1 0 my["test"] = v;
1 0 my["test"] = v;
251 1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
0 0 REQUIRE(my["test"].hash() == v);
0 0 REQUIRE(my["test"].hash() == v);
253 24 0 SECTION("Stash") {
24 0 SECTION("Stash") {
24 0 SECTION("Stash") {
24 0 SECTION("Stash") {
1 23 SECTION("Stash") {
254 1 0 auto v = Stash(vars.stash);
255 1 0 my["test"] = v;
1 0 my["test"] = v;
256 1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
0 0 REQUIRE(my["test"].hash() == v);
0 0 REQUIRE(my["test"].hash() == v);
258 24 0 SECTION("Sub") {
24 0 SECTION("Sub") {
24 0 SECTION("Sub") {
24 0 SECTION("Sub") {
1 23 SECTION("Sub") {
259 1 0 Sub v(vars.cv);
260 1 0 my["test"] = v;
1 0 my["test"] = v;
261 1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
0 0 REQUIRE(my["test"].sub() == v);
0 0 REQUIRE(my["test"].sub() == v);
263 24 0 SECTION("Object") {
24 0 SECTION("Object") {
24 0 SECTION("Object") {
24 0 SECTION("Object") {
1 23 SECTION("Object") {
264 1 0 Object v(vars.ov);
265 1 0 my["test"] = v;
1 0 my["test"] = v;
266 1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
267 1 0 v = vars.oav;
268 1 0 my["test"] = v;
1 0 my["test"] = v;
269 1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
0 0 REQUIRE(my["test"].array() == v);
0 0 REQUIRE(my["test"].array() == v);
271 24 0 SECTION("Glob") {
24 0 SECTION("Glob") {
24 0 SECTION("Glob") {
24 0 SECTION("Glob") {
1 23 SECTION("Glob") {
272 1 0 my["test"] = my["method"];
1 0 my["test"] = my["method"];
1 0 my["test"] = my["method"];
273 1 0 REQUIRE(my["test"] == my.fetch("method"));
1 0 REQUIRE(my["test"] == my.fetch("method"));
1 0 REQUIRE(my["test"] == my.fetch("method"));
1 0 REQUIRE(my["test"] == my.fetch("method"));
1 0 REQUIRE(my["test"] == my.fetch("method"));
1 0 REQUIRE(my["test"] == my.fetch("method"));
1 0 REQUIRE(my["test"] == my.fetch("method"));
0 0 REQUIRE(my["test"] == my.fetch("method"));
0 0 REQUIRE(my["test"] == my.fetch("method"));
274 1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
0 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
0 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
276 1 0 my.erase("test");
277 1 0 auto o = my["test"];
278 1 0 o.scalar(Simple(100));
1 0 o.scalar(Simple(100));
279 1 0 o.array(Array::create());
1 0 o.array(Array::create());
280 1 0 o.hash(Hash::create());
1 0 o.hash(Hash::create());
281 1 0 o.sub(Sub(vars.cv));
1 0 o.sub(Sub(vars.cv));
282 1 0 my["test"] = Glob();
1 0 my["test"] = Glob();
283 1 0 REQUIRE(!my["test"].scalar());
1 0 REQUIRE(!my["test"].scalar());
1 0 REQUIRE(!my["test"].scalar());
1 0 REQUIRE(!my["test"].scalar());
1 0 REQUIRE(!my["test"].scalar());
1 0 REQUIRE(!my["test"].scalar());
0 0 REQUIRE(!my["test"].scalar());
0 0 REQUIRE(!my["test"].scalar());
284 1 0 REQUIRE(!my["test"].array());
1 0 REQUIRE(!my["test"].array());
1 0 REQUIRE(!my["test"].array());
1 0 REQUIRE(!my["test"].array());
1 0 REQUIRE(!my["test"].array());
1 0 REQUIRE(!my["test"].array());
0 0 REQUIRE(!my["test"].array());
0 0 REQUIRE(!my["test"].array());
285 1 0 REQUIRE(!my["test"].hash());
1 0 REQUIRE(!my["test"].hash());
1 0 REQUIRE(!my["test"].hash());
1 0 REQUIRE(!my["test"].hash());
1 0 REQUIRE(!my["test"].hash());
1 0 REQUIRE(!my["test"].hash());
0 0 REQUIRE(!my["test"].hash());
0 0 REQUIRE(!my["test"].hash());
286 1 0 REQUIRE(!my["test"].sub());
1 0 REQUIRE(!my["test"].sub());
1 0 REQUIRE(!my["test"].sub());
1 0 REQUIRE(!my["test"].sub());
1 0 REQUIRE(!my["test"].sub());
1 0 REQUIRE(!my["test"].sub());
0 0 REQUIRE(!my["test"].sub());
0 0 REQUIRE(!my["test"].sub());
288 24 0 SECTION("Io") {
24 0 SECTION("Io") {
24 0 SECTION("Io") {
24 0 SECTION("Io") {
1 23 SECTION("Io") {
289 1 0 Io v(vars.io);
290 1 0 my["test"] = v;
1 0 my["test"] = v;
291 1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
0 0 REQUIRE(my["test"].io() == v);
0 0 REQUIRE(my["test"].io() == v);
295 147 0 SECTION("store") {
147 0 SECTION("store") {
147 0 SECTION("store") {
147 0 SECTION("store") {
1 146 SECTION("store") {
296 1 0 my.store("test", my["method"]);
1 0 my.store("test", my["method"]);
297 1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
0 0 REQUIRE(my.fetch("test"));
0 0 REQUIRE(my.fetch("test"));
298 1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
0 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
0 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::method", 0));
299 1 0 my.erase("test");
300 1 0 my.store("test", vars.iv);
301 1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
0 0 REQUIRE(my.fetch("test"));
0 0 REQUIRE(my.fetch("test"));
302 1 0 REQUIRE(my.fetch("test").scalar() == vars.iv);
1 0 REQUIRE(my.fetch("test").scalar() == vars.iv);
1 0 REQUIRE(my.fetch("test").scalar() == vars.iv);
1 0 REQUIRE(my.fetch("test").scalar() == vars.iv);
1 0 REQUIRE(my.fetch("test").scalar() == vars.iv);
1 0 REQUIRE(my.fetch("test").scalar() == vars.iv);
1 0 REQUIRE(my.fetch("test").scalar() == vars.iv);
0 0 REQUIRE(my.fetch("test").scalar() == vars.iv);
0 0 REQUIRE(my.fetch("test").scalar() == vars.iv);
305 147 0 SECTION("const sub promote") {
147 0 SECTION("const sub promote") {
147 0 SECTION("const sub promote") {
147 0 SECTION("const sub promote") {
1 146 SECTION("const sub promote") {
306 1 0 Hash(my).store("test", Ref::create(Simple(1)));
1 0 Hash(my).store("test", Ref::create(Simple(1)));
1 0 Hash(my).store("test", Ref::create(Simple(1)));
1 0 Hash(my).store("test", Ref::create(Simple(1)));
307 1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
0 0 REQUIRE(my.fetch("test"));
0 0 REQUIRE(my.fetch("test"));
308 1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
0 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
0 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
312 147 0 SECTION("sub promote") {
147 0 SECTION("sub promote") {
147 0 SECTION("sub promote") {
147 0 SECTION("sub promote") {
1 146 SECTION("sub promote") {
313 1 0 Hash(my).store("test", get_sv("M1::anon", 0));
1 0 Hash(my).store("test", get_sv("M1::anon", 0));
1 0 Hash(my).store("test", get_sv("M1::anon", 0));
314 1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
1 0 REQUIRE(my.fetch("test"));
0 0 REQUIRE(my.fetch("test"));
0 0 REQUIRE(my.fetch("test"));
315 1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
1 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
0 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
0 0 REQUIRE(my.fetch("test").sub() == get_cv("M1::test", 0));
319 147 0 SECTION("scalar") {
147 0 SECTION("scalar") {
147 0 SECTION("scalar") {
147 0 SECTION("scalar") {
1 146 SECTION("scalar") {
320 1 0 REQUIRE(!my.scalar("jopa"));
1 0 REQUIRE(!my.scalar("jopa"));
1 0 REQUIRE(!my.scalar("jopa"));
1 0 REQUIRE(!my.scalar("jopa"));
1 0 REQUIRE(!my.scalar("jopa"));
0 0 REQUIRE(!my.scalar("jopa"));
0 0 REQUIRE(!my.scalar("jopa"));
321 1 0 auto v = Simple(333);
322 1 0 my.scalar("test", v);
323 1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
1 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
0 0 REQUIRE(my["test"].scalar() == v);
324 1 0 REQUIRE(my.scalar("test") == v);
1 0 REQUIRE(my.scalar("test") == v);
1 0 REQUIRE(my.scalar("test") == v);
1 0 REQUIRE(my.scalar("test") == v);
1 0 REQUIRE(my.scalar("test") == v);
1 0 REQUIRE(my.scalar("test") == v);
0 0 REQUIRE(my.scalar("test") == v);
0 0 REQUIRE(my.scalar("test") == v);
327 147 0 SECTION("array") {
147 0 SECTION("array") {
147 0 SECTION("array") {
147 0 SECTION("array") {
1 146 SECTION("array") {
328 1 0 REQUIRE(!my.array("jopa"));
1 0 REQUIRE(!my.array("jopa"));
1 0 REQUIRE(!my.array("jopa"));
1 0 REQUIRE(!my.array("jopa"));
1 0 REQUIRE(!my.array("jopa"));
0 0 REQUIRE(!my.array("jopa"));
0 0 REQUIRE(!my.array("jopa"));
329 1 0 auto v = Array::create();
330 1 0 my.array("test", v);
331 1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
1 0 REQUIRE(my["test"].array() == v);
0 0 REQUIRE(my["test"].array() == v);
0 0 REQUIRE(my["test"].array() == v);
332 1 0 REQUIRE(my.array("test") == v);
1 0 REQUIRE(my.array("test") == v);
1 0 REQUIRE(my.array("test") == v);
1 0 REQUIRE(my.array("test") == v);
1 0 REQUIRE(my.array("test") == v);
1 0 REQUIRE(my.array("test") == v);
0 0 REQUIRE(my.array("test") == v);
0 0 REQUIRE(my.array("test") == v);
335 147 0 SECTION("hash") {
147 0 SECTION("hash") {
147 0 SECTION("hash") {
147 0 SECTION("hash") {
1 146 SECTION("hash") {
336 1 0 REQUIRE(!my.hash("jopa"));
1 0 REQUIRE(!my.hash("jopa"));
1 0 REQUIRE(!my.hash("jopa"));
1 0 REQUIRE(!my.hash("jopa"));
1 0 REQUIRE(!my.hash("jopa"));
0 0 REQUIRE(!my.hash("jopa"));
0 0 REQUIRE(!my.hash("jopa"));
337 1 0 auto v = Hash::create();
338 1 0 my.hash("test", v);
339 1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
1 0 REQUIRE(my["test"].hash() == v);
0 0 REQUIRE(my["test"].hash() == v);
0 0 REQUIRE(my["test"].hash() == v);
340 1 0 REQUIRE(my.hash("test") == v);
1 0 REQUIRE(my.hash("test") == v);
1 0 REQUIRE(my.hash("test") == v);
1 0 REQUIRE(my.hash("test") == v);
1 0 REQUIRE(my.hash("test") == v);
1 0 REQUIRE(my.hash("test") == v);
0 0 REQUIRE(my.hash("test") == v);
0 0 REQUIRE(my.hash("test") == v);
343 147 0 SECTION("sub") {
147 0 SECTION("sub") {
147 0 SECTION("sub") {
147 0 SECTION("sub") {
1 146 SECTION("sub") {
344 1 0 REQUIRE(!my.sub("jopa"));
1 0 REQUIRE(!my.sub("jopa"));
1 0 REQUIRE(!my.sub("jopa"));
1 0 REQUIRE(!my.sub("jopa"));
1 0 REQUIRE(!my.sub("jopa"));
0 0 REQUIRE(!my.sub("jopa"));
0 0 REQUIRE(!my.sub("jopa"));
345 1 0 auto v = Sub(vars.cv);
346 1 0 my.sub("test", v);
347 1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
1 0 REQUIRE(my["test"].sub() == v);
0 0 REQUIRE(my["test"].sub() == v);
0 0 REQUIRE(my["test"].sub() == v);
348 1 0 REQUIRE(my.sub("test") == v);
1 0 REQUIRE(my.sub("test") == v);
1 0 REQUIRE(my.sub("test") == v);
1 0 REQUIRE(my.sub("test") == v);
1 0 REQUIRE(my.sub("test") == v);
1 0 REQUIRE(my.sub("test") == v);
0 0 REQUIRE(my.sub("test") == v);
0 0 REQUIRE(my.sub("test") == v);
351 147 0 SECTION("io") {
147 0 SECTION("io") {
147 0 SECTION("io") {
147 0 SECTION("io") {
1 146 SECTION("io") {
352 1 0 REQUIRE(!my.io("jopa"));
1 0 REQUIRE(!my.io("jopa"));
1 0 REQUIRE(!my.io("jopa"));
1 0 REQUIRE(!my.io("jopa"));
1 0 REQUIRE(!my.io("jopa"));
0 0 REQUIRE(!my.io("jopa"));
0 0 REQUIRE(!my.io("jopa"));
353 1 0 auto v = Io(vars.io);
354 1 0 my.io("test", v);
355 1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
1 0 REQUIRE(my["test"].io() == v);
0 0 REQUIRE(my["test"].io() == v);
0 0 REQUIRE(my["test"].io() == v);
356 1 0 REQUIRE(my.io("test") == v);
1 0 REQUIRE(my.io("test") == v);
1 0 REQUIRE(my.io("test") == v);
1 0 REQUIRE(my.io("test") == v);
1 0 REQUIRE(my.io("test") == v);
1 0 REQUIRE(my.io("test") == v);
0 0 REQUIRE(my.io("test") == v);
0 0 REQUIRE(my.io("test") == v);
359 147 0 SECTION("path") {
147 0 SECTION("path") {
147 0 SECTION("path") {
147 0 SECTION("path") {
1 146 SECTION("path") {
360 1 0 Stash o("AA::BB::CC", GV_ADD);
361 1 0 REQUIRE(o.path() == "AA/BB/CC.pm");
1 0 REQUIRE(o.path() == "AA/BB/CC.pm");
1 0 REQUIRE(o.path() == "AA/BB/CC.pm");
1 0 REQUIRE(o.path() == "AA/BB/CC.pm");
1 0 REQUIRE(o.path() == "AA/BB/CC.pm");
1 0 REQUIRE(o.path() == "AA/BB/CC.pm");
0 0 REQUIRE(o.path() == "AA/BB/CC.pm");
0 0 REQUIRE(o.path() == "AA/BB/CC.pm");
364 147 0 SECTION("mark_as_loaded") {
147 0 SECTION("mark_as_loaded") {
147 0 SECTION("mark_as_loaded") {
147 0 SECTION("mark_as_loaded") {
1 146 SECTION("mark_as_loaded") {
365 1 0 Stash o("M1");
366 1 0 o.mark_as_loaded(Stash("MyTest"));
1 0 o.mark_as_loaded(Stash("MyTest"));
367 1 0 REQUIRE(Stash::root().hash("INC").fetch(o.path()).is_true());
1 0 REQUIRE(Stash::root().hash("INC").fetch(o.path()).is_true());
1 0 REQUIRE(Stash::root().hash("INC").fetch(o.path()).is_true());
1 0 REQUIRE(Stash::root().hash("INC").fetch(o.path()).is_true());
1 0 REQUIRE(Stash::root().hash("INC").fetch(o.path()).is_true());
1 0 REQUIRE(Stash::root().hash("INC").fetch(o.path()).is_true());
1 0 REQUIRE(Stash::root().hash("INC").fetch(o.path()).is_true());
1 0 REQUIRE(Stash::root().hash("INC").fetch(o.path()).is_true());
1 0 REQUIRE(Stash::root().hash("INC").fetch(o.path()).is_true());
0 0 REQUIRE(Stash::root().hash("INC").fetch(o.path()).is_true());
0 0 REQUIRE(Stash::root().hash("INC").fetch(o.path()).is_true());
368 1 0 REQUIRE_THROWS(o.mark_as_loaded(Stash("Nonexistent")));
1 0 REQUIRE_THROWS(o.mark_as_loaded(Stash("Nonexistent")));
1 0 REQUIRE_THROWS(o.mark_as_loaded(Stash("Nonexistent")));
1 0 REQUIRE_THROWS(o.mark_as_loaded(Stash("Nonexistent")));
0 1 REQUIRE_THROWS(o.mark_as_loaded(Stash("Nonexistent")));
0 0 REQUIRE_THROWS(o.mark_as_loaded(Stash("Nonexistent")));
0 0 REQUIRE_THROWS(o.mark_as_loaded(Stash("Nonexistent")));
1 0 REQUIRE_THROWS(o.mark_as_loaded(Stash("Nonexistent")));
1 0 REQUIRE_THROWS(o.mark_as_loaded(Stash("Nonexistent")));
1 0 REQUIRE_THROWS(o.mark_as_loaded(Stash("Nonexistent")));
371 147 0 SECTION("inherit") {
147 0 SECTION("inherit") {
147 0 SECTION("inherit") {
147 0 SECTION("inherit") {
1 146 SECTION("inherit") {
372 1 0 Stash o("M_INH", GV_ADD);
373 1 0 o.mark_as_loaded(Stash("MyTest"));
1 0 o.mark_as_loaded(Stash("MyTest"));
374 1 0 o.inherit(Stash("M1"));
1 0 o.inherit(Stash("M1"));
375 1 0 auto ISA = o.array("ISA");
376 1 0 REQUIRE(ISA.size() == 1);
1 0 REQUIRE(ISA.size() == 1);
1 0 REQUIRE(ISA.size() == 1);
1 0 REQUIRE(ISA.size() == 1);
1 0 REQUIRE(ISA.size() == 1);
1 0 REQUIRE(ISA.size() == 1);
0 0 REQUIRE(ISA.size() == 1);
0 0 REQUIRE(ISA.size() == 1);
377 1 0 REQUIRE(Simple(ISA[0]) == "M1");
1 0 REQUIRE(Simple(ISA[0]) == "M1");
1 0 REQUIRE(Simple(ISA[0]) == "M1");
1 0 REQUIRE(Simple(ISA[0]) == "M1");
1 0 REQUIRE(Simple(ISA[0]) == "M1");
1 0 REQUIRE(Simple(ISA[0]) == "M1");
1 0 REQUIRE(Simple(ISA[0]) == "M1");
0 0 REQUIRE(Simple(ISA[0]) == "M1");
0 0 REQUIRE(Simple(ISA[0]) == "M1");
380 147 0 SECTION("method/method_strict") {
147 0 SECTION("method/method_strict") {
147 0 SECTION("method/method_strict") {
147 0 SECTION("method/method_strict") {
1 146 SECTION("method/method_strict") {
381 1 0 Stash o("M2");
382 1 0 REQUIRE(o.method("child_method"));
1 0 REQUIRE(o.method("child_method"));
1 0 REQUIRE(o.method("child_method"));
1 0 REQUIRE(o.method("child_method"));
1 0 REQUIRE(o.method("child_method"));
0 0 REQUIRE(o.method("child_method"));
0 0 REQUIRE(o.method("child_method"));
383 1 0 REQUIRE(o.method("child_method") == get_cv("M2::child_method", 0));
1 0 REQUIRE(o.method("child_method") == get_cv("M2::child_method", 0));
1 0 REQUIRE(o.method("child_method") == get_cv("M2::child_method", 0));
1 0 REQUIRE(o.method("child_method") == get_cv("M2::child_method", 0));
1 0 REQUIRE(o.method("child_method") == get_cv("M2::child_method", 0));
1 0 REQUIRE(o.method("child_method") == get_cv("M2::child_method", 0));
1 0 REQUIRE(o.method("child_method") == get_cv("M2::child_method", 0));
0 0 REQUIRE(o.method("child_method") == get_cv("M2::child_method", 0));
0 0 REQUIRE(o.method("child_method") == get_cv("M2::child_method", 0));
384 1 0 REQUIRE(o.method("child_method") == o.method_strict("child_method"));
1 0 REQUIRE(o.method("child_method") == o.method_strict("child_method"));
1 0 REQUIRE(o.method("child_method") == o.method_strict("child_method"));
1 0 REQUIRE(o.method("child_method") == o.method_strict("child_method"));
1 0 REQUIRE(o.method("child_method") == o.method_strict("child_method"));
1 0 REQUIRE(o.method("child_method") == o.method_strict("child_method"));
1 0 REQUIRE(o.method("child_method") == o.method_strict("child_method"));
0 0 REQUIRE(o.method("child_method") == o.method_strict("child_method"));
0 0 REQUIRE(o.method("child_method") == o.method_strict("child_method"));
385 1 0 REQUIRE(o.method("method"));
1 0 REQUIRE(o.method("method"));
1 0 REQUIRE(o.method("method"));
1 0 REQUIRE(o.method("method"));
1 0 REQUIRE(o.method("method"));
0 0 REQUIRE(o.method("method"));
0 0 REQUIRE(o.method("method"));
386 1 0 REQUIRE(o.method("method") == get_cv("M1::method", 0));
1 0 REQUIRE(o.method("method") == get_cv("M1::method", 0));
1 0 REQUIRE(o.method("method") == get_cv("M1::method", 0));
1 0 REQUIRE(o.method("method") == get_cv("M1::method", 0));
1 0 REQUIRE(o.method("method") == get_cv("M1::method", 0));
1 0 REQUIRE(o.method("method") == get_cv("M1::method", 0));
1 0 REQUIRE(o.method("method") == get_cv("M1::method", 0));
0 0 REQUIRE(o.method("method") == get_cv("M1::method", 0));
0 0 REQUIRE(o.method("method") == get_cv("M1::method", 0));
387 1 0 REQUIRE(o.method("method") == o.method_strict("method"));
1 0 REQUIRE(o.method("method") == o.method_strict("method"));
1 0 REQUIRE(o.method("method") == o.method_strict("method"));
1 0 REQUIRE(o.method("method") == o.method_strict("method"));
1 0 REQUIRE(o.method("method") == o.method_strict("method"));
1 0 REQUIRE(o.method("method") == o.method_strict("method"));
1 0 REQUIRE(o.method("method") == o.method_strict("method"));
0 0 REQUIRE(o.method("method") == o.method_strict("method"));
0 0 REQUIRE(o.method("method") == o.method_strict("method"));
388 1 0 REQUIRE(!o.method("nomethod"));
1 0 REQUIRE(!o.method("nomethod"));
1 0 REQUIRE(!o.method("nomethod"));
1 0 REQUIRE(!o.method("nomethod"));
1 0 REQUIRE(!o.method("nomethod"));
0 0 REQUIRE(!o.method("nomethod"));
0 0 REQUIRE(!o.method("nomethod"));
389 1 0 REQUIRE_THROWS(o.method_strict("nomethod"));
1 0 REQUIRE_THROWS(o.method_strict("nomethod"));
1 0 REQUIRE_THROWS(o.method_strict("nomethod"));
0 1 REQUIRE_THROWS(o.method_strict("nomethod"));
0 0 REQUIRE_THROWS(o.method_strict("nomethod"));
0 0 REQUIRE_THROWS(o.method_strict("nomethod"));
1 0 REQUIRE_THROWS(o.method_strict("nomethod"));
1 0 REQUIRE_THROWS(o.method_strict("nomethod"));
1 0 REQUIRE_THROWS(o.method_strict("nomethod"));
392 147 0 SECTION("name_hek") {
147 0 SECTION("name_hek") {
147 0 SECTION("name_hek") {
147 0 SECTION("name_hek") {
1 146 SECTION("name_hek") {
394 1 0 REQUIRE(HEK_KEY(hek) == my.name().data());
1 0 REQUIRE(HEK_KEY(hek) == my.name().data());
1 0 REQUIRE(HEK_KEY(hek) == my.name().data());
1 0 REQUIRE(HEK_KEY(hek) == my.name().data());
1 0 REQUIRE(HEK_KEY(hek) == my.name().data());
0 0 REQUIRE(HEK_KEY(hek) == my.name().data());
0 0 REQUIRE(HEK_KEY(hek) == my.name().data());
397 147 0 SECTION("name_sv") {
147 0 SECTION("name_sv") {
147 0 SECTION("name_sv") {
147 0 SECTION("name_sv") {
1 146 SECTION("name_sv") {
398 1 0 auto nm = my.name_sv();
1 0 auto nm = my.name_sv();
399 1 0 REQUIRE((string_view)nm == my.name());
1 0 REQUIRE((string_view)nm == my.name());
1 0 REQUIRE((string_view)nm == my.name());
1 0 REQUIRE((string_view)nm == my.name());
1 0 REQUIRE((string_view)nm == my.name());
1 0 REQUIRE((string_view)nm == my.name());
0 0 REQUIRE((string_view)nm == my.name());
0 0 REQUIRE((string_view)nm == my.name());
400 1 0 REQUIRE(nm.c_str() == my.name().data());
1 0 REQUIRE(nm.c_str() == my.name().data());
1 0 REQUIRE(nm.c_str() == my.name().data());
1 0 REQUIRE(nm.c_str() == my.name().data());
1 0 REQUIRE(nm.c_str() == my.name().data());
1 0 REQUIRE(nm.c_str() == my.name().data());
0 0 REQUIRE(nm.c_str() == my.name().data());
0 0 REQUIRE(nm.c_str() == my.name().data());
403 147 0 SECTION("isa") {
147 0 SECTION("isa") {
147 0 SECTION("isa") {
147 0 SECTION("isa") {
1 146 SECTION("isa") {
404 1 0 Stash o("M2");
405 1 0 REQUIRE(o.isa("M1"));
1 0 REQUIRE(o.isa("M1"));
1 0 REQUIRE(o.isa("M1"));
1 0 REQUIRE(o.isa("M1"));
1 0 REQUIRE(o.isa("M1"));
0 0 REQUIRE(o.isa("M1"));
0 0 REQUIRE(o.isa("M1"));
406 1 0 REQUIRE(o.isa(Stash("M1")));
1 0 REQUIRE(o.isa(Stash("M1")));
1 0 REQUIRE(o.isa(Stash("M1")));
1 0 REQUIRE(o.isa(Stash("M1")));
1 0 REQUIRE(o.isa(Stash("M1")));
1 0 REQUIRE(o.isa(Stash("M1")));
0 0 REQUIRE(o.isa(Stash("M1")));
0 0 REQUIRE(o.isa(Stash("M1")));
407 1 0 REQUIRE(!o.isa("M254"));
1 0 REQUIRE(!o.isa("M254"));
1 0 REQUIRE(!o.isa("M254"));
1 0 REQUIRE(!o.isa("M254"));
1 0 REQUIRE(!o.isa("M254"));
0 0 REQUIRE(!o.isa("M254"));
0 0 REQUIRE(!o.isa("M254"));
408 1 0 REQUIRE(!o.isa(Stash("M255", GV_ADD)));
1 0 REQUIRE(!o.isa(Stash("M255", GV_ADD)));
1 0 REQUIRE(!o.isa(Stash("M255", GV_ADD)));
1 0 REQUIRE(!o.isa(Stash("M255", GV_ADD)));
1 0 REQUIRE(!o.isa(Stash("M255", GV_ADD)));
1 0 REQUIRE(!o.isa(Stash("M255", GV_ADD)));
0 0 REQUIRE(!o.isa(Stash("M255", GV_ADD)));
0 0 REQUIRE(!o.isa(Stash("M255", GV_ADD)));
411 147 0 SECTION("bless") {
147 0 SECTION("bless") {
147 0 SECTION("bless") {
147 0 SECTION("bless") {
2 145 SECTION("bless") {
412 2 0 Stash st("MyTest");
413 2 0 Simple obase(100);
414 2 0 SECTION("SV") {
2 0 SECTION("SV") {
2 0 SECTION("SV") {
2 0 SECTION("SV") {
1 1 SECTION("SV") {
415 1 0 auto o = st.bless(obase);
416 1 0 REQUIRE(o);
1 0 REQUIRE(o);
1 0 REQUIRE(o);
1 0 REQUIRE(o);
0 0 REQUIRE(o);
0 0 REQUIRE(o);
417 1 0 REQUIRE(o == obase);
1 0 REQUIRE(o == obase);
1 0 REQUIRE(o == obase);
1 0 REQUIRE(o == obase);
1 0 REQUIRE(o == obase);
0 0 REQUIRE(o == obase);
0 0 REQUIRE(o == obase);
418 1 0 REQUIRE(o.stash() == st);
1 0 REQUIRE(o.stash() == st);
1 0 REQUIRE(o.stash() == st);
1 0 REQUIRE(o.stash() == st);
1 0 REQUIRE(o.stash() == st);
1 0 REQUIRE(o.stash() == st);
0 0 REQUIRE(o.stash() == st);
0 0 REQUIRE(o.stash() == st);
420 2 0 SECTION("RV") {
2 0 SECTION("RV") {
2 0 SECTION("RV") {
2 0 SECTION("RV") {
1 1 SECTION("RV") {
421 1 0 auto r = Ref::create(obase);
422 1 0 auto o = st.bless(r);
423 1 0 REQUIRE(o);
1 0 REQUIRE(o);
1 0 REQUIRE(o);
1 0 REQUIRE(o);
0 0 REQUIRE(o);
0 0 REQUIRE(o);
424 1 0 REQUIRE(o == obase);
1 0 REQUIRE(o == obase);
1 0 REQUIRE(o == obase);
1 0 REQUIRE(o == obase);
1 0 REQUIRE(o == obase);
0 0 REQUIRE(o == obase);
0 0 REQUIRE(o == obase);
425 1 0 REQUIRE(o.stash() == st);
1 0 REQUIRE(o.stash() == st);
1 0 REQUIRE(o.stash() == st);
1 0 REQUIRE(o.stash() == st);
1 0 REQUIRE(o.stash() == st);
1 0 REQUIRE(o.stash() == st);
0 0 REQUIRE(o.stash() == st);
0 0 REQUIRE(o.stash() == st);
426 1 0 REQUIRE(o.ref() == r);
1 0 REQUIRE(o.ref() == r);
1 0 REQUIRE(o.ref() == r);
1 0 REQUIRE(o.ref() == r);
1 0 REQUIRE(o.ref() == r);
1 0 REQUIRE(o.ref() == r);
0 0 REQUIRE(o.ref() == r);
0 0 REQUIRE(o.ref() == r);
430 147 0 SECTION("call") {
147 0 SECTION("call") {
147 0 SECTION("call") {
147 0 SECTION("call") {
1 146 SECTION("call") {
431 1 0 Simple ret = my.call("class_method");
1 0 Simple ret = my.call("class_method");
432 1 0 REQUIRE(ret);
1 0 REQUIRE(ret);
1 0 REQUIRE(ret);
1 0 REQUIRE(ret);
0 0 REQUIRE(ret);
0 0 REQUIRE(ret);
433 1 0 REQUIRE(ret == string_view("M1-hi"));
1 0 REQUIRE(ret == string_view("M1-hi"));
1 0 REQUIRE(ret == string_view("M1-hi"));
1 0 REQUIRE(ret == string_view("M1-hi"));
1 0 REQUIRE(ret == string_view("M1-hi"));
0 0 REQUIRE(ret == string_view("M1-hi"));
0 0 REQUIRE(ret == string_view("M1-hi"));
434 1 0 my.call("class_method", (SV**)NULL, 0);
435 1 0 my.call("class_method", (SV*)NULL);
436 1 0 my.call("class_method", Sv());
437 1 0 my.call("class_method");
440 147 0 SECTION("call_next/super/SUPER") {
147 0 SECTION("call_next/super/SUPER") {
147 0 SECTION("call_next/super/SUPER") {
147 0 SECTION("call_next/super/SUPER") {
6 141 SECTION("call_next/super/SUPER") {
441 6 0 Stash s("M4");
442 6 0 Sub sub = s.method("meth");
445 6 0 SECTION("SUPER") {
6 0 SECTION("SUPER") {
6 0 SECTION("SUPER") {
6 0 SECTION("SUPER") {
1 5 SECTION("SUPER") {
446 1 0 res = s.call_SUPER(sub);
1 0 res = s.call_SUPER(sub);
447 1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
0 0 REQUIRE(res == "M4-2");
0 0 REQUIRE(res == "M4-2");
448 1 0 sub = sub.SUPER_strict();
449 1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
0 0 REQUIRE(sub == get_cv("M2::meth", 0));
0 0 REQUIRE(sub == get_cv("M2::meth", 0));
451 1 0 res = s.call_SUPER(sub);
1 0 res = s.call_SUPER(sub);
452 1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
0 0 REQUIRE(res == "M4-1");
0 0 REQUIRE(res == "M4-1");
453 1 0 sub = sub.SUPER_strict();
454 1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
0 0 REQUIRE(sub == get_cv("M1::meth", 0));
0 0 REQUIRE(sub == get_cv("M1::meth", 0));
456 1 0 REQUIRE(!sub.SUPER());
1 0 REQUIRE(!sub.SUPER());
1 0 REQUIRE(!sub.SUPER());
1 0 REQUIRE(!sub.SUPER());
1 0 REQUIRE(!sub.SUPER());
0 0 REQUIRE(!sub.SUPER());
0 0 REQUIRE(!sub.SUPER());
457 1 0 REQUIRE_THROWS(sub.SUPER_strict());
1 0 REQUIRE_THROWS(sub.SUPER_strict());
1 0 REQUIRE_THROWS(sub.SUPER_strict());
0 1 REQUIRE_THROWS(sub.SUPER_strict());
0 0 REQUIRE_THROWS(sub.SUPER_strict());
0 0 REQUIRE_THROWS(sub.SUPER_strict());
1 0 REQUIRE_THROWS(sub.SUPER_strict());
1 0 REQUIRE_THROWS(sub.SUPER_strict());
1 0 REQUIRE_THROWS(sub.SUPER_strict());
458 1 0 REQUIRE_THROWS(s.call_SUPER(sub));
1 0 REQUIRE_THROWS(s.call_SUPER(sub));
1 0 REQUIRE_THROWS(s.call_SUPER(sub));
0 1 REQUIRE_THROWS(s.call_SUPER(sub));
0 0 REQUIRE_THROWS(s.call_SUPER(sub));
0 0 REQUIRE_THROWS(s.call_SUPER(sub));
1 0 REQUIRE_THROWS(s.call_SUPER(sub));
1 0 REQUIRE_THROWS(s.call_SUPER(sub));
1 0 REQUIRE_THROWS(s.call_SUPER(sub));
461 6 0 SECTION("next") {
6 0 SECTION("next") {
6 0 SECTION("next") {
6 0 SECTION("next") {
1 5 SECTION("next") {
462 1 0 res = s.call_next(sub);
1 0 res = s.call_next(sub);
463 1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
0 0 REQUIRE(res == "M4-2");
0 0 REQUIRE(res == "M4-2");
464 1 0 sub = s.next_method_strict(sub);
465 1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
0 0 REQUIRE(sub == get_cv("M2::meth", 0));
0 0 REQUIRE(sub == get_cv("M2::meth", 0));
467 1 0 res = s.call_next(sub);
1 0 res = s.call_next(sub);
468 1 0 REQUIRE(res == "M4-3");
1 0 REQUIRE(res == "M4-3");
1 0 REQUIRE(res == "M4-3");
1 0 REQUIRE(res == "M4-3");
1 0 REQUIRE(res == "M4-3");
0 0 REQUIRE(res == "M4-3");
0 0 REQUIRE(res == "M4-3");
469 1 0 sub = s.next_method_strict(sub);
470 1 0 REQUIRE(sub == get_cv("M3::meth", 0));
1 0 REQUIRE(sub == get_cv("M3::meth", 0));
1 0 REQUIRE(sub == get_cv("M3::meth", 0));
1 0 REQUIRE(sub == get_cv("M3::meth", 0));
1 0 REQUIRE(sub == get_cv("M3::meth", 0));
1 0 REQUIRE(sub == get_cv("M3::meth", 0));
0 0 REQUIRE(sub == get_cv("M3::meth", 0));
0 0 REQUIRE(sub == get_cv("M3::meth", 0));
472 1 0 res = s.call_next(sub);
1 0 res = s.call_next(sub);
473 1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
0 0 REQUIRE(res == "M4-1");
0 0 REQUIRE(res == "M4-1");
474 1 0 sub = s.next_method_strict(sub);
475 1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
0 0 REQUIRE(sub == get_cv("M1::meth", 0));
0 0 REQUIRE(sub == get_cv("M1::meth", 0));
477 1 0 REQUIRE(!s.next_method(sub));
1 0 REQUIRE(!s.next_method(sub));
1 0 REQUIRE(!s.next_method(sub));
1 0 REQUIRE(!s.next_method(sub));
1 0 REQUIRE(!s.next_method(sub));
0 0 REQUIRE(!s.next_method(sub));
0 0 REQUIRE(!s.next_method(sub));
478 1 0 REQUIRE_THROWS(s.next_method_strict(sub));
1 0 REQUIRE_THROWS(s.next_method_strict(sub));
1 0 REQUIRE_THROWS(s.next_method_strict(sub));
0 1 REQUIRE_THROWS(s.next_method_strict(sub));
0 0 REQUIRE_THROWS(s.next_method_strict(sub));
0 0 REQUIRE_THROWS(s.next_method_strict(sub));
1 0 REQUIRE_THROWS(s.next_method_strict(sub));
1 0 REQUIRE_THROWS(s.next_method_strict(sub));
1 0 REQUIRE_THROWS(s.next_method_strict(sub));
479 1 0 REQUIRE_THROWS(s.call_next(sub));
1 0 REQUIRE_THROWS(s.call_next(sub));
1 0 REQUIRE_THROWS(s.call_next(sub));
0 1 REQUIRE_THROWS(s.call_next(sub));
0 0 REQUIRE_THROWS(s.call_next(sub));
0 0 REQUIRE_THROWS(s.call_next(sub));
1 0 REQUIRE_THROWS(s.call_next(sub));
1 0 REQUIRE_THROWS(s.call_next(sub));
1 0 REQUIRE_THROWS(s.call_next(sub));
482 6 0 SECTION("next_maybe") {
6 0 SECTION("next_maybe") {
6 0 SECTION("next_maybe") {
6 0 SECTION("next_maybe") {
1 5 SECTION("next_maybe") {
483 1 0 res = s.call_next_maybe(sub);
1 0 res = s.call_next_maybe(sub);
484 1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
0 0 REQUIRE(res == "M4-2");
0 0 REQUIRE(res == "M4-2");
485 1 0 sub = s.next_method(sub);
487 1 0 res = s.call_next_maybe(sub);
1 0 res = s.call_next_maybe(sub);
488 1 0 REQUIRE(res == "M4-3");
1 0 REQUIRE(res == "M4-3");
1 0 REQUIRE(res == "M4-3");
1 0 REQUIRE(res == "M4-3");
1 0 REQUIRE(res == "M4-3");
0 0 REQUIRE(res == "M4-3");
0 0 REQUIRE(res == "M4-3");
489 1 0 sub = s.next_method(sub);
491 1 0 res = s.call_next_maybe(sub);
1 0 res = s.call_next_maybe(sub);
492 1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
0 0 REQUIRE(res == "M4-1");
0 0 REQUIRE(res == "M4-1");
493 1 0 sub = s.next_method(sub);
495 1 0 res = s.call_next_maybe(sub);
1 0 res = s.call_next_maybe(sub);
496 1 0 REQUIRE(!res);
1 0 REQUIRE(!res);
1 0 REQUIRE(!res);
1 0 REQUIRE(!res);
0 0 REQUIRE(!res);
0 0 REQUIRE(!res);
499 6 0 SECTION("super/dfs") {
6 0 SECTION("super/dfs") {
6 0 SECTION("super/dfs") {
6 0 SECTION("super/dfs") {
1 5 SECTION("super/dfs") {
500 1 0 res = s.call_super(sub);
1 0 res = s.call_super(sub);
501 1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
0 0 REQUIRE(res == "M4-2");
0 0 REQUIRE(res == "M4-2");
502 1 0 sub = s.super_method_strict(sub);
503 1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
0 0 REQUIRE(sub == get_cv("M2::meth", 0));
0 0 REQUIRE(sub == get_cv("M2::meth", 0));
505 1 0 res = s.call_super(sub);
1 0 res = s.call_super(sub);
506 1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
0 0 REQUIRE(res == "M4-1");
0 0 REQUIRE(res == "M4-1");
507 1 0 sub = s.super_method_strict(sub);
508 1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
0 0 REQUIRE(sub == get_cv("M1::meth", 0));
0 0 REQUIRE(sub == get_cv("M1::meth", 0));
510 1 0 REQUIRE(!s.super_method(sub));
1 0 REQUIRE(!s.super_method(sub));
1 0 REQUIRE(!s.super_method(sub));
1 0 REQUIRE(!s.super_method(sub));
1 0 REQUIRE(!s.super_method(sub));
0 0 REQUIRE(!s.super_method(sub));
0 0 REQUIRE(!s.super_method(sub));
511 1 0 REQUIRE_THROWS(s.super_method_strict(sub));
1 0 REQUIRE_THROWS(s.super_method_strict(sub));
1 0 REQUIRE_THROWS(s.super_method_strict(sub));
0 1 REQUIRE_THROWS(s.super_method_strict(sub));
0 0 REQUIRE_THROWS(s.super_method_strict(sub));
0 0 REQUIRE_THROWS(s.super_method_strict(sub));
1 0 REQUIRE_THROWS(s.super_method_strict(sub));
1 0 REQUIRE_THROWS(s.super_method_strict(sub));
1 0 REQUIRE_THROWS(s.super_method_strict(sub));
512 1 0 REQUIRE_THROWS(s.call_super(sub));
1 0 REQUIRE_THROWS(s.call_super(sub));
1 0 REQUIRE_THROWS(s.call_super(sub));
0 1 REQUIRE_THROWS(s.call_super(sub));
0 0 REQUIRE_THROWS(s.call_super(sub));
0 0 REQUIRE_THROWS(s.call_super(sub));
1 0 REQUIRE_THROWS(s.call_super(sub));
1 0 REQUIRE_THROWS(s.call_super(sub));
1 0 REQUIRE_THROWS(s.call_super(sub));
515 6 0 SECTION("super/c3") {
6 0 SECTION("super/c3") {
6 0 SECTION("super/c3") {
6 0 SECTION("super/c3") {
1 5 SECTION("super/c3") {
516 1 0 s.call("enable_c3");
518 1 0 res = s.call_super(sub);
1 0 res = s.call_super(sub);
519 1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
0 0 REQUIRE(res == "M4-2");
0 0 REQUIRE(res == "M4-2");
520 1 0 sub = s.super_method_strict(sub);
521 1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
1 0 REQUIRE(sub == get_cv("M2::meth", 0));
0 0 REQUIRE(sub == get_cv("M2::meth", 0));
0 0 REQUIRE(sub == get_cv("M2::meth", 0));
523 1 0 res = s.call_super(sub);
1 0 res = s.call_super(sub);
524 1 0 REQUIRE(res == "M4-3");
1 0 REQUIRE(res == "M4-3");
1 0 REQUIRE(res == "M4-3");
1 0 REQUIRE(res == "M4-3");
1 0 REQUIRE(res == "M4-3");
0 0 REQUIRE(res == "M4-3");
0 0 REQUIRE(res == "M4-3");
525 1 0 sub = s.super_method_strict(sub);
526 1 0 REQUIRE(sub == get_cv("M3::meth", 0));
1 0 REQUIRE(sub == get_cv("M3::meth", 0));
1 0 REQUIRE(sub == get_cv("M3::meth", 0));
1 0 REQUIRE(sub == get_cv("M3::meth", 0));
1 0 REQUIRE(sub == get_cv("M3::meth", 0));
1 0 REQUIRE(sub == get_cv("M3::meth", 0));
0 0 REQUIRE(sub == get_cv("M3::meth", 0));
0 0 REQUIRE(sub == get_cv("M3::meth", 0));
528 1 0 res = s.call_super(sub);
1 0 res = s.call_super(sub);
529 1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
0 0 REQUIRE(res == "M4-1");
0 0 REQUIRE(res == "M4-1");
530 1 0 sub = s.super_method_strict(sub);
531 1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
1 0 REQUIRE(sub == get_cv("M1::meth", 0));
0 0 REQUIRE(sub == get_cv("M1::meth", 0));
0 0 REQUIRE(sub == get_cv("M1::meth", 0));
533 1 0 REQUIRE(!s.super_method(sub));
1 0 REQUIRE(!s.super_method(sub));
1 0 REQUIRE(!s.super_method(sub));
1 0 REQUIRE(!s.super_method(sub));
1 0 REQUIRE(!s.super_method(sub));
0 0 REQUIRE(!s.super_method(sub));
0 0 REQUIRE(!s.super_method(sub));
534 1 0 REQUIRE_THROWS(s.super_method_strict(sub));
1 0 REQUIRE_THROWS(s.super_method_strict(sub));
1 0 REQUIRE_THROWS(s.super_method_strict(sub));
0 1 REQUIRE_THROWS(s.super_method_strict(sub));
0 0 REQUIRE_THROWS(s.super_method_strict(sub));
0 0 REQUIRE_THROWS(s.super_method_strict(sub));
1 0 REQUIRE_THROWS(s.super_method_strict(sub));
1 0 REQUIRE_THROWS(s.super_method_strict(sub));
1 0 REQUIRE_THROWS(s.super_method_strict(sub));
535 1 0 REQUIRE_THROWS(s.call_super(sub));
1 0 REQUIRE_THROWS(s.call_super(sub));
1 0 REQUIRE_THROWS(s.call_super(sub));
0 1 REQUIRE_THROWS(s.call_super(sub));
0 0 REQUIRE_THROWS(s.call_super(sub));
0 0 REQUIRE_THROWS(s.call_super(sub));
1 0 REQUIRE_THROWS(s.call_super(sub));
1 0 REQUIRE_THROWS(s.call_super(sub));
1 0 REQUIRE_THROWS(s.call_super(sub));
537 1 0 s.call("disable_c3");
540 6 0 SECTION("super_maybe") {
6 0 SECTION("super_maybe") {
6 0 SECTION("super_maybe") {
6 0 SECTION("super_maybe") {
1 5 SECTION("super_maybe") {
541 1 0 res = s.call_super_maybe(sub);
1 0 res = s.call_super_maybe(sub);
542 1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
1 0 REQUIRE(res == "M4-2");
0 0 REQUIRE(res == "M4-2");
0 0 REQUIRE(res == "M4-2");
543 1 0 sub = s.super_method(sub);
545 1 0 res = s.call_super_maybe(sub);
1 0 res = s.call_super_maybe(sub);
546 1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
1 0 REQUIRE(res == "M4-1");
0 0 REQUIRE(res == "M4-1");
0 0 REQUIRE(res == "M4-1");
547 1 0 sub = s.super_method(sub);
549 1 0 res = s.call_super_maybe(sub);
1 0 res = s.call_super_maybe(sub);
550 1 0 REQUIRE(!res);
1 0 REQUIRE(!res);
1 0 REQUIRE(!res);
1 0 REQUIRE(!res);
0 0 REQUIRE(!res);
0 0 REQUIRE(!res);
554 147 0 SECTION("add_const_sub") {
147 0 SECTION("add_const_sub") {
147 0 SECTION("add_const_sub") {
147 0 SECTION("add_const_sub") {
2 145 SECTION("add_const_sub") {
555 2 0 Stash st(vars.stash);
556 2 0 REQUIRE(!st.fetch("MYCONST"));
2 0 REQUIRE(!st.fetch("MYCONST"));
2 0 REQUIRE(!st.fetch("MYCONST"));
2 0 REQUIRE(!st.fetch("MYCONST"));
2 0 REQUIRE(!st.fetch("MYCONST"));
0 0 REQUIRE(!st.fetch("MYCONST"));
0 0 REQUIRE(!st.fetch("MYCONST"));
558 2 0 SECTION("scalar") {
2 0 SECTION("scalar") {
2 0 SECTION("scalar") {
2 0 SECTION("scalar") {
1 1 SECTION("scalar") {
559 1 0 Simple v(123);
560 1 0 st.add_const_sub("MYCONST", v);
561 1 0 REQUIRE(v.use_count() == 2);
1 0 REQUIRE(v.use_count() == 2);
1 0 REQUIRE(v.use_count() == 2);
1 0 REQUIRE(v.use_count() == 2);
1 0 REQUIRE(v.use_count() == 2);
0 0 REQUIRE(v.use_count() == 2);
0 0 REQUIRE(v.use_count() == 2);
562 1 0 REQUIRE(st.fetch("MYCONST"));
1 0 REQUIRE(st.fetch("MYCONST"));
1 0 REQUIRE(st.fetch("MYCONST"));
1 0 REQUIRE(st.fetch("MYCONST"));
1 0 REQUIRE(st.fetch("MYCONST"));
0 0 REQUIRE(st.fetch("MYCONST"));
0 0 REQUIRE(st.fetch("MYCONST"));
563 1 0 auto s = st["MYCONST"].sub();
1 0 auto s = st["MYCONST"].sub();
564 1 0 REQUIRE(s);
1 0 REQUIRE(s);
1 0 REQUIRE(s);
1 0 REQUIRE(s);
0 0 REQUIRE(s);
0 0 REQUIRE(s);
565 1 0 Simple v2 = s.call();
1 0 Simple v2 = s.call();
566 1 0 REQUIRE(v2 == v.get());
1 0 REQUIRE(v2 == v.get());
1 0 REQUIRE(v2 == v.get());
1 0 REQUIRE(v2 == v.get());
1 0 REQUIRE(v2 == v.get());
0 0 REQUIRE(v2 == v.get());
0 0 REQUIRE(v2 == v.get());
570 2 0 SECTION("array") {
2 0 SECTION("array") {
2 0 SECTION("array") {
2 0 SECTION("array") {
1 1 SECTION("array") {
571 1 0 Array v({ Simple(1), Simple(2), Simple(3) });
1 0 Array v({ Simple(1), Simple(2), Simple(3) });
1 0 Array v({ Simple(1), Simple(2), Simple(3) });
1 0 Array v({ Simple(1), Simple(2), Simple(3) });
3 1 Array v({ Simple(1), Simple(2), Simple(3) });
0 0 Array v({ Simple(1), Simple(2), Simple(3) });
572 1 0 st.add_const_sub("MYCONST", v);
573 1 0 REQUIRE(v.use_count() == 2);
1 0 REQUIRE(v.use_count() == 2);
1 0 REQUIRE(v.use_count() == 2);
1 0 REQUIRE(v.use_count() == 2);
1 0 REQUIRE(v.use_count() == 2);
0 0 REQUIRE(v.use_count() == 2);
0 0 REQUIRE(v.use_count() == 2);
574 1 0 auto res = st["MYCONST"].sub().call();
1 0 auto res = st["MYCONST"].sub().call();
1 0 auto res = st["MYCONST"].sub().call();
575 1 0 REQUIRE(res.size() == v.size());
1 0 REQUIRE(res.size() == v.size());
1 0 REQUIRE(res.size() == v.size());
1 0 REQUIRE(res.size() == v.size());
1 0 REQUIRE(res.size() == v.size());
1 0 REQUIRE(res.size() == v.size());
1 0 REQUIRE(res.size() == v.size());
0 0 REQUIRE(res.size() == v.size());
0 0 REQUIRE(res.size() == v.size());
576 1 0 REQUIRE(res != v);
1 0 REQUIRE(res != v);
1 0 REQUIRE(res != v);
1 0 REQUIRE(res != v);
1 0 REQUIRE(res != v);
0 0 REQUIRE(res != v);
0 0 REQUIRE(res != v);
577 1 0 REQUIRE(res[0] == v[0]);
1 0 REQUIRE(res[0] == v[0]);
1 0 REQUIRE(res[0] == v[0]);
1 0 REQUIRE(res[0] == v[0]);
1 0 REQUIRE(res[0] == v[0]);
1 0 REQUIRE(res[0] == v[0]);
1 0 REQUIRE(res[0] == v[0]);
0 0 REQUIRE(res[0] == v[0]);
0 0 REQUIRE(res[0] == v[0]);
578 1 0 REQUIRE(res[1] == v[1]);
1 0 REQUIRE(res[1] == v[1]);
1 0 REQUIRE(res[1] == v[1]);
1 0 REQUIRE(res[1] == v[1]);
1 0 REQUIRE(res[1] == v[1]);
1 0 REQUIRE(res[1] == v[1]);
1 0 REQUIRE(res[1] == v[1]);
0 0 REQUIRE(res[1] == v[1]);
0 0 REQUIRE(res[1] == v[1]);
579 1 0 REQUIRE(res[2] == v[2]);
1 0 REQUIRE(res[2] == v[2]);
1 0 REQUIRE(res[2] == v[2]);
1 0 REQUIRE(res[2] == v[2]);
1 0 REQUIRE(res[2] == v[2]);
1 0 REQUIRE(res[2] == v[2]);
1 0 REQUIRE(res[2] == v[2]);
0 0 REQUIRE(res[2] == v[2]);
0 0 REQUIRE(res[2] == v[2]);
583 2 0 st.erase("MYCONST");
584 2 0 REQUIRE(!st.fetch("MYCONST"));
2 0 REQUIRE(!st.fetch("MYCONST"));
2 0 REQUIRE(!st.fetch("MYCONST"));
2 0 REQUIRE(!st.fetch("MYCONST"));
2 0 REQUIRE(!st.fetch("MYCONST"));
0 0 REQUIRE(!st.fetch("MYCONST"));
0 0 REQUIRE(!st.fetch("MYCONST"));
586 34 0 }
34 0 }