Branch Coverage

t/svapi/scalar.cc
Criterion Covered Total %
branch 552 1096 50.3


line true false branch
9 83 0 perlvars vars;
10 83 0 Scalar my(vars.iv);
13 83 0 SECTION("ctor") {
83 0 SECTION("ctor") {
83 0 SECTION("ctor") {
83 0 SECTION("ctor") {
29 54 SECTION("ctor") {
14 29 0 SECTION("empty") {
29 0 SECTION("empty") {
29 0 SECTION("empty") {
29 0 SECTION("empty") {
1 28 SECTION("empty") {
16 1 0 REQUIRE(!obj);
1 0 REQUIRE(!obj);
1 0 REQUIRE(!obj);
1 0 REQUIRE(!obj);
0 0 REQUIRE(!obj);
0 0 REQUIRE(!obj);
18 29 0 SECTION("SV") {
29 0 SECTION("SV") {
29 0 SECTION("SV") {
29 0 SECTION("SV") {
20 9 SECTION("SV") {
19 20 0 SECTION("undef") { Test::ctor(vars.undef, behaviour_t::VALID); }
20 0 SECTION("undef") { Test::ctor(vars.undef, behaviour_t::VALID); }
20 0 SECTION("undef") { Test::ctor(vars.undef, behaviour_t::VALID); }
20 0 SECTION("undef") { Test::ctor(vars.undef, behaviour_t::VALID); }
2 18 SECTION("undef") { Test::ctor(vars.undef, behaviour_t::VALID); }
2 0 SECTION("undef") { Test::ctor(vars.undef, behaviour_t::VALID); }
20 20 0 SECTION("number") { Test::ctor(vars.iv, behaviour_t::VALID); }
20 0 SECTION("number") { Test::ctor(vars.iv, behaviour_t::VALID); }
20 0 SECTION("number") { Test::ctor(vars.iv, behaviour_t::VALID); }
20 0 SECTION("number") { Test::ctor(vars.iv, behaviour_t::VALID); }
2 18 SECTION("number") { Test::ctor(vars.iv, behaviour_t::VALID); }
2 0 SECTION("number") { Test::ctor(vars.iv, behaviour_t::VALID); }
21 20 0 SECTION("string") { Test::ctor(vars.pv, behaviour_t::VALID); }
20 0 SECTION("string") { Test::ctor(vars.pv, behaviour_t::VALID); }
20 0 SECTION("string") { Test::ctor(vars.pv, behaviour_t::VALID); }
20 0 SECTION("string") { Test::ctor(vars.pv, behaviour_t::VALID); }
2 18 SECTION("string") { Test::ctor(vars.pv, behaviour_t::VALID); }
2 0 SECTION("string") { Test::ctor(vars.pv, behaviour_t::VALID); }
22 20 0 SECTION("OSV") { Test::ctor(vars.ov, behaviour_t::VALID); }
20 0 SECTION("OSV") { Test::ctor(vars.ov, behaviour_t::VALID); }
20 0 SECTION("OSV") { Test::ctor(vars.ov, behaviour_t::VALID); }
20 0 SECTION("OSV") { Test::ctor(vars.ov, behaviour_t::VALID); }
2 18 SECTION("OSV") { Test::ctor(vars.ov, behaviour_t::VALID); }
2 0 SECTION("OSV") { Test::ctor(vars.ov, behaviour_t::VALID); }
23 20 0 SECTION("RV") { Test::ctor(vars.rv, behaviour_t::VALID); }
20 0 SECTION("RV") { Test::ctor(vars.rv, behaviour_t::VALID); }
20 0 SECTION("RV") { Test::ctor(vars.rv, behaviour_t::VALID); }
20 0 SECTION("RV") { Test::ctor(vars.rv, behaviour_t::VALID); }
2 18 SECTION("RV") { Test::ctor(vars.rv, behaviour_t::VALID); }
2 0 SECTION("RV") { Test::ctor(vars.rv, behaviour_t::VALID); }
24 20 0 SECTION("AV") { Test::ctor((SV*)vars.av, behaviour_t::THROWS); }
20 0 SECTION("AV") { Test::ctor((SV*)vars.av, behaviour_t::THROWS); }
20 0 SECTION("AV") { Test::ctor((SV*)vars.av, behaviour_t::THROWS); }
20 0 SECTION("AV") { Test::ctor((SV*)vars.av, behaviour_t::THROWS); }
2 18 SECTION("AV") { Test::ctor((SV*)vars.av, behaviour_t::THROWS); }
2 0 SECTION("AV") { Test::ctor((SV*)vars.av, behaviour_t::THROWS); }
25 20 0 SECTION("HV") { Test::ctor((SV*)vars.hv, behaviour_t::THROWS); }
20 0 SECTION("HV") { Test::ctor((SV*)vars.hv, behaviour_t::THROWS); }
20 0 SECTION("HV") { Test::ctor((SV*)vars.hv, behaviour_t::THROWS); }
20 0 SECTION("HV") { Test::ctor((SV*)vars.hv, behaviour_t::THROWS); }
2 18 SECTION("HV") { Test::ctor((SV*)vars.hv, behaviour_t::THROWS); }
2 0 SECTION("HV") { Test::ctor((SV*)vars.hv, behaviour_t::THROWS); }
26 20 0 SECTION("CV") { Test::ctor((SV*)vars.cv, behaviour_t::THROWS); }
20 0 SECTION("CV") { Test::ctor((SV*)vars.cv, behaviour_t::THROWS); }
20 0 SECTION("CV") { Test::ctor((SV*)vars.cv, behaviour_t::THROWS); }
20 0 SECTION("CV") { Test::ctor((SV*)vars.cv, behaviour_t::THROWS); }
2 18 SECTION("CV") { Test::ctor((SV*)vars.cv, behaviour_t::THROWS); }
2 0 SECTION("CV") { Test::ctor((SV*)vars.cv, behaviour_t::THROWS); }
27 20 0 SECTION("GV") { Test::ctor((SV*)vars.gv, behaviour_t::VALID); }
20 0 SECTION("GV") { Test::ctor((SV*)vars.gv, behaviour_t::VALID); }
20 0 SECTION("GV") { Test::ctor((SV*)vars.gv, behaviour_t::VALID); }
20 0 SECTION("GV") { Test::ctor((SV*)vars.gv, behaviour_t::VALID); }
2 18 SECTION("GV") { Test::ctor((SV*)vars.gv, behaviour_t::VALID); }
2 0 SECTION("GV") { Test::ctor((SV*)vars.gv, behaviour_t::VALID); }
28 20 0 SECTION("IO") { Test::ctor((SV*)vars.io, behaviour_t::THROWS); }
20 0 SECTION("IO") { Test::ctor((SV*)vars.io, behaviour_t::THROWS); }
20 0 SECTION("IO") { Test::ctor((SV*)vars.io, behaviour_t::THROWS); }
20 0 SECTION("IO") { Test::ctor((SV*)vars.io, behaviour_t::THROWS); }
2 18 SECTION("IO") { Test::ctor((SV*)vars.io, behaviour_t::THROWS); }
2 0 SECTION("IO") { Test::ctor((SV*)vars.io, behaviour_t::THROWS); }
30 29 0 SECTION("GV") { Test::ctor(vars.gv, behaviour_t::VALID); }
29 0 SECTION("GV") { Test::ctor(vars.gv, behaviour_t::VALID); }
29 0 SECTION("GV") { Test::ctor(vars.gv, behaviour_t::VALID); }
29 0 SECTION("GV") { Test::ctor(vars.gv, behaviour_t::VALID); }
2 27 SECTION("GV") { Test::ctor(vars.gv, behaviour_t::VALID); }
2 0 SECTION("GV") { Test::ctor(vars.gv, behaviour_t::VALID); }
32 29 0 SECTION("Scalar") { Test::ctor(my, behaviour_t::VALID); }
29 0 SECTION("Scalar") { Test::ctor(my, behaviour_t::VALID); }
29 0 SECTION("Scalar") { Test::ctor(my, behaviour_t::VALID); }
29 0 SECTION("Scalar") { Test::ctor(my, behaviour_t::VALID); }
2 27 SECTION("Scalar") { Test::ctor(my, behaviour_t::VALID); }
2 0 SECTION("Scalar") { Test::ctor(my, behaviour_t::VALID); }
33 29 0 SECTION("valid Sv") { Test::ctor(oth_valid, behaviour_t::VALID); }
29 0 SECTION("valid Sv") { Test::ctor(oth_valid, behaviour_t::VALID); }
29 0 SECTION("valid Sv") { Test::ctor(oth_valid, behaviour_t::VALID); }
29 0 SECTION("valid Sv") { Test::ctor(oth_valid, behaviour_t::VALID); }
2 27 SECTION("valid Sv") { Test::ctor(oth_valid, behaviour_t::VALID); }
2 0 SECTION("valid Sv") { Test::ctor(oth_valid, behaviour_t::VALID); }
34 29 0 SECTION("invalid Sv") { Test::ctor(oth_invalid, behaviour_t::THROWS); }
29 0 SECTION("invalid Sv") { Test::ctor(oth_invalid, behaviour_t::THROWS); }
29 0 SECTION("invalid Sv") { Test::ctor(oth_invalid, behaviour_t::THROWS); }
29 0 SECTION("invalid Sv") { Test::ctor(oth_invalid, behaviour_t::THROWS); }
2 27 SECTION("invalid Sv") { Test::ctor(oth_invalid, behaviour_t::THROWS); }
2 0 SECTION("invalid Sv") { Test::ctor(oth_invalid, behaviour_t::THROWS); }
37 83 0 SECTION("noinc") {
83 0 SECTION("noinc") {
83 0 SECTION("noinc") {
83 0 SECTION("noinc") {
11 72 SECTION("noinc") {
38 11 0 SECTION("SV") {
11 0 SECTION("SV") {
11 0 SECTION("SV") {
11 0 SECTION("SV") {
10 1 SECTION("SV") {
39 10 0 SECTION("undef") { Test::noinc(vars.undef, behaviour_t::VALID); }
10 0 SECTION("undef") { Test::noinc(vars.undef, behaviour_t::VALID); }
10 0 SECTION("undef") { Test::noinc(vars.undef, behaviour_t::VALID); }
10 0 SECTION("undef") { Test::noinc(vars.undef, behaviour_t::VALID); }
1 9 SECTION("undef") { Test::noinc(vars.undef, behaviour_t::VALID); }
1 0 SECTION("undef") { Test::noinc(vars.undef, behaviour_t::VALID); }
40 10 0 SECTION("number") { Test::noinc(vars.iv, behaviour_t::VALID); }
10 0 SECTION("number") { Test::noinc(vars.iv, behaviour_t::VALID); }
10 0 SECTION("number") { Test::noinc(vars.iv, behaviour_t::VALID); }
10 0 SECTION("number") { Test::noinc(vars.iv, behaviour_t::VALID); }
1 9 SECTION("number") { Test::noinc(vars.iv, behaviour_t::VALID); }
1 0 SECTION("number") { Test::noinc(vars.iv, behaviour_t::VALID); }
41 10 0 SECTION("string") { Test::noinc(vars.pv, behaviour_t::VALID); }
10 0 SECTION("string") { Test::noinc(vars.pv, behaviour_t::VALID); }
10 0 SECTION("string") { Test::noinc(vars.pv, behaviour_t::VALID); }
10 0 SECTION("string") { Test::noinc(vars.pv, behaviour_t::VALID); }
1 9 SECTION("string") { Test::noinc(vars.pv, behaviour_t::VALID); }
1 0 SECTION("string") { Test::noinc(vars.pv, behaviour_t::VALID); }
42 10 0 SECTION("OSV") { Test::noinc(vars.ov, behaviour_t::VALID); }
10 0 SECTION("OSV") { Test::noinc(vars.ov, behaviour_t::VALID); }
10 0 SECTION("OSV") { Test::noinc(vars.ov, behaviour_t::VALID); }
10 0 SECTION("OSV") { Test::noinc(vars.ov, behaviour_t::VALID); }
1 9 SECTION("OSV") { Test::noinc(vars.ov, behaviour_t::VALID); }
1 0 SECTION("OSV") { Test::noinc(vars.ov, behaviour_t::VALID); }
43 10 0 SECTION("RV") { Test::noinc(vars.rv, behaviour_t::VALID); }
10 0 SECTION("RV") { Test::noinc(vars.rv, behaviour_t::VALID); }
10 0 SECTION("RV") { Test::noinc(vars.rv, behaviour_t::VALID); }
10 0 SECTION("RV") { Test::noinc(vars.rv, behaviour_t::VALID); }
1 9 SECTION("RV") { Test::noinc(vars.rv, behaviour_t::VALID); }
1 0 SECTION("RV") { Test::noinc(vars.rv, behaviour_t::VALID); }
44 10 0 SECTION("AV") { Test::noinc((SV*)vars.av, behaviour_t::THROWS); }
10 0 SECTION("AV") { Test::noinc((SV*)vars.av, behaviour_t::THROWS); }
10 0 SECTION("AV") { Test::noinc((SV*)vars.av, behaviour_t::THROWS); }
10 0 SECTION("AV") { Test::noinc((SV*)vars.av, behaviour_t::THROWS); }
1 9 SECTION("AV") { Test::noinc((SV*)vars.av, behaviour_t::THROWS); }
1 0 SECTION("AV") { Test::noinc((SV*)vars.av, behaviour_t::THROWS); }
45 10 0 SECTION("HV") { Test::noinc((SV*)vars.hv, behaviour_t::THROWS); }
10 0 SECTION("HV") { Test::noinc((SV*)vars.hv, behaviour_t::THROWS); }
10 0 SECTION("HV") { Test::noinc((SV*)vars.hv, behaviour_t::THROWS); }
10 0 SECTION("HV") { Test::noinc((SV*)vars.hv, behaviour_t::THROWS); }
1 9 SECTION("HV") { Test::noinc((SV*)vars.hv, behaviour_t::THROWS); }
1 0 SECTION("HV") { Test::noinc((SV*)vars.hv, behaviour_t::THROWS); }
46 10 0 SECTION("CV") { Test::noinc((SV*)vars.cv, behaviour_t::THROWS); }
10 0 SECTION("CV") { Test::noinc((SV*)vars.cv, behaviour_t::THROWS); }
10 0 SECTION("CV") { Test::noinc((SV*)vars.cv, behaviour_t::THROWS); }
10 0 SECTION("CV") { Test::noinc((SV*)vars.cv, behaviour_t::THROWS); }
1 9 SECTION("CV") { Test::noinc((SV*)vars.cv, behaviour_t::THROWS); }
1 0 SECTION("CV") { Test::noinc((SV*)vars.cv, behaviour_t::THROWS); }
47 10 0 SECTION("GV") { Test::noinc((SV*)vars.gv, behaviour_t::VALID); }
10 0 SECTION("GV") { Test::noinc((SV*)vars.gv, behaviour_t::VALID); }
10 0 SECTION("GV") { Test::noinc((SV*)vars.gv, behaviour_t::VALID); }
10 0 SECTION("GV") { Test::noinc((SV*)vars.gv, behaviour_t::VALID); }
1 9 SECTION("GV") { Test::noinc((SV*)vars.gv, behaviour_t::VALID); }
1 0 SECTION("GV") { Test::noinc((SV*)vars.gv, behaviour_t::VALID); }
48 10 0 SECTION("IO") { Test::noinc((SV*)vars.io, behaviour_t::THROWS); }
10 0 SECTION("IO") { Test::noinc((SV*)vars.io, behaviour_t::THROWS); }
10 0 SECTION("IO") { Test::noinc((SV*)vars.io, behaviour_t::THROWS); }
10 0 SECTION("IO") { Test::noinc((SV*)vars.io, behaviour_t::THROWS); }
1 9 SECTION("IO") { Test::noinc((SV*)vars.io, behaviour_t::THROWS); }
1 0 SECTION("IO") { Test::noinc((SV*)vars.io, behaviour_t::THROWS); }
50 11 0 SECTION("GV") { Test::noinc(vars.gv, behaviour_t::VALID); }
11 0 SECTION("GV") { Test::noinc(vars.gv, behaviour_t::VALID); }
11 0 SECTION("GV") { Test::noinc(vars.gv, behaviour_t::VALID); }
11 0 SECTION("GV") { Test::noinc(vars.gv, behaviour_t::VALID); }
1 10 SECTION("GV") { Test::noinc(vars.gv, behaviour_t::VALID); }
1 0 SECTION("GV") { Test::noinc(vars.gv, behaviour_t::VALID); }
53 83 0 SECTION("operator=") {
83 0 SECTION("operator=") {
83 0 SECTION("operator=") {
83 0 SECTION("operator=") {
34 49 SECTION("operator=") {
54 34 0 Scalar o(newSViv(10), Sv::NONE);
34 0 Scalar o(newSViv(10), Sv::NONE);
55 34 0 SECTION("SV") {
34 0 SECTION("SV") {
34 0 SECTION("SV") {
34 0 SECTION("SV") {
20 14 SECTION("SV") {
56 20 0 SECTION("undef") { Test::assign(o, vars.undef, behaviour_t::VALID); }
20 0 SECTION("undef") { Test::assign(o, vars.undef, behaviour_t::VALID); }
20 0 SECTION("undef") { Test::assign(o, vars.undef, behaviour_t::VALID); }
20 0 SECTION("undef") { Test::assign(o, vars.undef, behaviour_t::VALID); }
2 18 SECTION("undef") { Test::assign(o, vars.undef, behaviour_t::VALID); }
2 0 SECTION("undef") { Test::assign(o, vars.undef, behaviour_t::VALID); }
57 20 0 SECTION("number") { Test::assign(o, vars.iv, behaviour_t::VALID); }
20 0 SECTION("number") { Test::assign(o, vars.iv, behaviour_t::VALID); }
20 0 SECTION("number") { Test::assign(o, vars.iv, behaviour_t::VALID); }
20 0 SECTION("number") { Test::assign(o, vars.iv, behaviour_t::VALID); }
2 18 SECTION("number") { Test::assign(o, vars.iv, behaviour_t::VALID); }
2 0 SECTION("number") { Test::assign(o, vars.iv, behaviour_t::VALID); }
58 20 0 SECTION("string") { Test::assign(o, vars.pv, behaviour_t::VALID); }
20 0 SECTION("string") { Test::assign(o, vars.pv, behaviour_t::VALID); }
20 0 SECTION("string") { Test::assign(o, vars.pv, behaviour_t::VALID); }
20 0 SECTION("string") { Test::assign(o, vars.pv, behaviour_t::VALID); }
2 18 SECTION("string") { Test::assign(o, vars.pv, behaviour_t::VALID); }
2 0 SECTION("string") { Test::assign(o, vars.pv, behaviour_t::VALID); }
59 20 0 SECTION("OSV") { Test::assign(o, vars.ov, behaviour_t::VALID); }
20 0 SECTION("OSV") { Test::assign(o, vars.ov, behaviour_t::VALID); }
20 0 SECTION("OSV") { Test::assign(o, vars.ov, behaviour_t::VALID); }
20 0 SECTION("OSV") { Test::assign(o, vars.ov, behaviour_t::VALID); }
2 18 SECTION("OSV") { Test::assign(o, vars.ov, behaviour_t::VALID); }
2 0 SECTION("OSV") { Test::assign(o, vars.ov, behaviour_t::VALID); }
60 20 0 SECTION("RV") { Test::assign(o, vars.rv, behaviour_t::VALID); }
20 0 SECTION("RV") { Test::assign(o, vars.rv, behaviour_t::VALID); }
20 0 SECTION("RV") { Test::assign(o, vars.rv, behaviour_t::VALID); }
20 0 SECTION("RV") { Test::assign(o, vars.rv, behaviour_t::VALID); }
2 18 SECTION("RV") { Test::assign(o, vars.rv, behaviour_t::VALID); }
2 0 SECTION("RV") { Test::assign(o, vars.rv, behaviour_t::VALID); }
61 20 0 SECTION("AV") { Test::assign(o, (SV*)vars.av, behaviour_t::THROWS); }
20 0 SECTION("AV") { Test::assign(o, (SV*)vars.av, behaviour_t::THROWS); }
20 0 SECTION("AV") { Test::assign(o, (SV*)vars.av, behaviour_t::THROWS); }
20 0 SECTION("AV") { Test::assign(o, (SV*)vars.av, behaviour_t::THROWS); }
2 18 SECTION("AV") { Test::assign(o, (SV*)vars.av, behaviour_t::THROWS); }
2 0 SECTION("AV") { Test::assign(o, (SV*)vars.av, behaviour_t::THROWS); }
62 20 0 SECTION("HV") { Test::assign(o, (SV*)vars.hv, behaviour_t::THROWS); }
20 0 SECTION("HV") { Test::assign(o, (SV*)vars.hv, behaviour_t::THROWS); }
20 0 SECTION("HV") { Test::assign(o, (SV*)vars.hv, behaviour_t::THROWS); }
20 0 SECTION("HV") { Test::assign(o, (SV*)vars.hv, behaviour_t::THROWS); }
2 18 SECTION("HV") { Test::assign(o, (SV*)vars.hv, behaviour_t::THROWS); }
2 0 SECTION("HV") { Test::assign(o, (SV*)vars.hv, behaviour_t::THROWS); }
63 20 0 SECTION("CV") { Test::assign(o, (SV*)vars.cv, behaviour_t::THROWS); }
20 0 SECTION("CV") { Test::assign(o, (SV*)vars.cv, behaviour_t::THROWS); }
20 0 SECTION("CV") { Test::assign(o, (SV*)vars.cv, behaviour_t::THROWS); }
20 0 SECTION("CV") { Test::assign(o, (SV*)vars.cv, behaviour_t::THROWS); }
2 18 SECTION("CV") { Test::assign(o, (SV*)vars.cv, behaviour_t::THROWS); }
2 0 SECTION("CV") { Test::assign(o, (SV*)vars.cv, behaviour_t::THROWS); }
64 20 0 SECTION("GV") { Test::assign(o, (SV*)vars.gv, behaviour_t::VALID); }
20 0 SECTION("GV") { Test::assign(o, (SV*)vars.gv, behaviour_t::VALID); }
20 0 SECTION("GV") { Test::assign(o, (SV*)vars.gv, behaviour_t::VALID); }
20 0 SECTION("GV") { Test::assign(o, (SV*)vars.gv, behaviour_t::VALID); }
2 18 SECTION("GV") { Test::assign(o, (SV*)vars.gv, behaviour_t::VALID); }
2 0 SECTION("GV") { Test::assign(o, (SV*)vars.gv, behaviour_t::VALID); }
65 20 0 SECTION("IO") { Test::assign(o, (SV*)vars.io, behaviour_t::THROWS); }
20 0 SECTION("IO") { Test::assign(o, (SV*)vars.io, behaviour_t::THROWS); }
20 0 SECTION("IO") { Test::assign(o, (SV*)vars.io, behaviour_t::THROWS); }
20 0 SECTION("IO") { Test::assign(o, (SV*)vars.io, behaviour_t::THROWS); }
2 18 SECTION("IO") { Test::assign(o, (SV*)vars.io, behaviour_t::THROWS); }
2 0 SECTION("IO") { Test::assign(o, (SV*)vars.io, behaviour_t::THROWS); }
67 34 0 SECTION("GV") { Test::assign(o, vars.gv, behaviour_t::VALID); }
34 0 SECTION("GV") { Test::assign(o, vars.gv, behaviour_t::VALID); }
34 0 SECTION("GV") { Test::assign(o, vars.gv, behaviour_t::VALID); }
34 0 SECTION("GV") { Test::assign(o, vars.gv, behaviour_t::VALID); }
2 32 SECTION("GV") { Test::assign(o, vars.gv, behaviour_t::VALID); }
2 0 SECTION("GV") { Test::assign(o, vars.gv, behaviour_t::VALID); }
68 34 0 SECTION("Scalar") { Test::assign(o, my, behaviour_t::VALID); }
34 0 SECTION("Scalar") { Test::assign(o, my, behaviour_t::VALID); }
34 0 SECTION("Scalar") { Test::assign(o, my, behaviour_t::VALID); }
34 0 SECTION("Scalar") { Test::assign(o, my, behaviour_t::VALID); }
4 30 SECTION("Scalar") { Test::assign(o, my, behaviour_t::VALID); }
4 0 SECTION("Scalar") { Test::assign(o, my, behaviour_t::VALID); }
69 34 0 SECTION("valid Sv") { Test::assign(o, oth_valid, behaviour_t::VALID); }
34 0 SECTION("valid Sv") { Test::assign(o, oth_valid, behaviour_t::VALID); }
34 0 SECTION("valid Sv") { Test::assign(o, oth_valid, behaviour_t::VALID); }
34 0 SECTION("valid Sv") { Test::assign(o, oth_valid, behaviour_t::VALID); }
4 30 SECTION("valid Sv") { Test::assign(o, oth_valid, behaviour_t::VALID); }
4 0 SECTION("valid Sv") { Test::assign(o, oth_valid, behaviour_t::VALID); }
70 34 0 SECTION("invalid Sv") { Test::assign(o, oth_invalid, behaviour_t::THROWS); }
34 0 SECTION("invalid Sv") { Test::assign(o, oth_invalid, behaviour_t::THROWS); }
34 0 SECTION("invalid Sv") { Test::assign(o, oth_invalid, behaviour_t::THROWS); }
34 0 SECTION("invalid Sv") { Test::assign(o, oth_invalid, behaviour_t::THROWS); }
4 30 SECTION("invalid Sv") { Test::assign(o, oth_invalid, behaviour_t::THROWS); }
4 0 SECTION("invalid Sv") { Test::assign(o, oth_invalid, behaviour_t::THROWS); }
73 83 0 SECTION("set") {
83 0 SECTION("set") {
83 0 SECTION("set") {
83 0 SECTION("set") {
2 81 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((SV*)vars.cv);
77 1 0 REQUIRE(o.get() == (SV*)vars.cv);
1 0 REQUIRE(o.get() == (SV*)vars.cv);
1 0 REQUIRE(o.get() == (SV*)vars.cv);
1 0 REQUIRE(o.get() == (SV*)vars.cv);
1 0 REQUIRE(o.get() == (SV*)vars.cv);
0 0 REQUIRE(o.get() == (SV*)vars.cv);
0 0 REQUIRE(o.get() == (SV*)vars.cv);
79 2 0 SECTION("GV") {
2 0 SECTION("GV") {
2 0 SECTION("GV") {
2 0 SECTION("GV") {
1 1 SECTION("GV") {
81 1 0 o.set((GV*)vars.cv);
82 1 0 REQUIRE(o.get() == (SV*)vars.cv);
1 0 REQUIRE(o.get() == (SV*)vars.cv);
1 0 REQUIRE(o.get() == (SV*)vars.cv);
1 0 REQUIRE(o.get() == (SV*)vars.cv);
1 0 REQUIRE(o.get() == (SV*)vars.cv);
0 0 REQUIRE(o.get() == (SV*)vars.cv);
0 0 REQUIRE(o.get() == (SV*)vars.cv);
86 83 0 SECTION("cast") {
83 0 SECTION("cast") {
83 0 SECTION("cast") {
83 0 SECTION("cast") {
2 81 SECTION("cast") {
87 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") {
88 1 0 Scalar o(vars.iv);
91 1 0 REQUIRE(r == vars.iv);
1 0 REQUIRE(r == vars.iv);
1 0 REQUIRE(r == vars.iv);
1 0 REQUIRE(r == vars.iv);
1 0 REQUIRE(r == vars.iv);
0 0 REQUIRE(r == vars.iv);
0 0 REQUIRE(r == vars.iv);
92 1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
0 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
0 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
94 2 0 SECTION("to GV") {
2 0 SECTION("to GV") {
2 0 SECTION("to GV") {
2 0 SECTION("to GV") {
1 1 SECTION("to GV") {
95 1 0 Scalar o(vars.iv);
97 1 0 GV* r = o;
98 1 0 REQUIRE(r == nullptr);
1 0 REQUIRE(r == nullptr);
1 0 REQUIRE(r == nullptr);
1 0 REQUIRE(r == nullptr);
1 0 REQUIRE(r == nullptr);
0 0 REQUIRE(r == nullptr);
0 0 REQUIRE(r == nullptr);
99 1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
0 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
0 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
103 83 0 SECTION("get") {
83 0 SECTION("get") {
83 0 SECTION("get") {
83 0 SECTION("get") {
2 81 SECTION("get") {
104 2 0 SECTION("SV") {
2 0 SECTION("SV") {
2 0 SECTION("SV") {
2 0 SECTION("SV") {
1 1 SECTION("SV") {
105 1 0 Scalar o(vars.iv);
107 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);
108 1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
0 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
0 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
110 2 0 SECTION("GV") {
2 0 SECTION("GV") {
2 0 SECTION("GV") {
2 0 SECTION("GV") {
1 1 SECTION("GV") {
111 1 0 Scalar o(vars.iv);
113 1 0 REQUIRE(o.get() == (GV*)vars.iv);
1 0 REQUIRE(o.get() == (GV*)vars.iv);
1 0 REQUIRE(o.get() == (GV*)vars.iv);
1 0 REQUIRE(o.get() == (GV*)vars.iv);
1 0 REQUIRE(o.get() == (GV*)vars.iv);
0 0 REQUIRE(o.get() == (GV*)vars.iv);
0 0 REQUIRE(o.get() == (GV*)vars.iv);
114 1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
1 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
0 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
0 0 REQUIRE(SvREFCNT(vars.iv) == cnt);
118 83 0 SECTION("upgrade") {
83 0 SECTION("upgrade") {
83 0 SECTION("upgrade") {
83 0 SECTION("upgrade") {
1 82 SECTION("upgrade") {
119 1 0 Scalar o = Sv::create();
1 0 Scalar o = Sv::create();
120 1 0 o.upgrade(SVt_PVMG); // upgrade till PVMG works
121 1 0 REQUIRE(o.type() == SVt_PVMG);
1 0 REQUIRE(o.type() == SVt_PVMG);
1 0 REQUIRE(o.type() == SVt_PVMG);
1 0 REQUIRE(o.type() == SVt_PVMG);
1 0 REQUIRE(o.type() == SVt_PVMG);
0 0 REQUIRE(o.type() == SVt_PVMG);
0 0 REQUIRE(o.type() == SVt_PVMG);
122 1 0 REQUIRE_THROWS(o.upgrade(SVt_PVAV));
1 0 REQUIRE_THROWS(o.upgrade(SVt_PVAV));
1 0 REQUIRE_THROWS(o.upgrade(SVt_PVAV));
0 1 REQUIRE_THROWS(o.upgrade(SVt_PVAV));
0 0 REQUIRE_THROWS(o.upgrade(SVt_PVAV));
0 0 REQUIRE_THROWS(o.upgrade(SVt_PVAV));
1 0 REQUIRE_THROWS(o.upgrade(SVt_PVAV));
1 0 REQUIRE_THROWS(o.upgrade(SVt_PVAV));
1 0 REQUIRE_THROWS(o.upgrade(SVt_PVAV));
125 83 0 SECTION("as_string") {
83 0 SECTION("as_string") {
83 0 SECTION("as_string") {
83 0 SECTION("as_string") {
1 82 SECTION("as_string") {
126 1 0 REQUIRE(Scalar(Simple(111)).as_string() == panda::string("111"));
1 0 REQUIRE(Scalar(Simple(111)).as_string() == panda::string("111"));
1 0 REQUIRE(Scalar(Simple(111)).as_string() == panda::string("111"));
1 0 REQUIRE(Scalar(Simple(111)).as_string() == panda::string("111"));
1 0 REQUIRE(Scalar(Simple(111)).as_string() == panda::string("111"));
1 0 REQUIRE(Scalar(Simple(111)).as_string() == panda::string("111"));
1 0 REQUIRE(Scalar(Simple(111)).as_string() == panda::string("111"));
0 0 REQUIRE(Scalar(Simple(111)).as_string() == panda::string("111"));
0 0 REQUIRE(Scalar(Simple(111)).as_string() == panda::string("111"));
128 1 0 Scalar s = Simple(str);
129 1 0 REQUIRE(s.as_string() == str);
1 0 REQUIRE(s.as_string() == str);
1 0 REQUIRE(s.as_string() == str);
1 0 REQUIRE(s.as_string() == str);
1 0 REQUIRE(s.as_string() == str);
1 0 REQUIRE(s.as_string() == str);
0 0 REQUIRE(s.as_string() == str);
0 0 REQUIRE(s.as_string() == str);
130 1 0 REQUIRE(s.as_string().data() != str);
1 0 REQUIRE(s.as_string().data() != str);
1 0 REQUIRE(s.as_string().data() != str);
1 0 REQUIRE(s.as_string().data() != str);
1 0 REQUIRE(s.as_string().data() != str);
1 0 REQUIRE(s.as_string().data() != str);
0 0 REQUIRE(s.as_string().data() != str);
0 0 REQUIRE(s.as_string().data() != str);
132 1 0 REQUIRE(Scalar().as_string() == panda::string());
1 0 REQUIRE(Scalar().as_string() == panda::string());
1 0 REQUIRE(Scalar().as_string() == panda::string());
1 0 REQUIRE(Scalar().as_string() == panda::string());
1 0 REQUIRE(Scalar().as_string() == panda::string());
1 0 REQUIRE(Scalar().as_string() == panda::string());
0 0 REQUIRE(Scalar().as_string() == panda::string());
0 0 REQUIRE(Scalar().as_string() == panda::string());
133 1 0 REQUIRE(Scalar::undef.as_string() == panda::string());
1 0 REQUIRE(Scalar::undef.as_string() == panda::string());
1 0 REQUIRE(Scalar::undef.as_string() == panda::string());
1 0 REQUIRE(Scalar::undef.as_string() == panda::string());
1 0 REQUIRE(Scalar::undef.as_string() == panda::string());
1 0 REQUIRE(Scalar::undef.as_string() == panda::string());
0 0 REQUIRE(Scalar::undef.as_string() == panda::string());
0 0 REQUIRE(Scalar::undef.as_string() == panda::string());
134 1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_string(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_string(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_string(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_string(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_string(), std::invalid_argument);
0 1 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_string(), std::invalid_argument);
0 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_string(), std::invalid_argument);
0 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_string(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_string(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_string(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_string(), std::invalid_argument);
0 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_string(), std::invalid_argument);
0 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_string(), std::invalid_argument);
137 83 0 SECTION("as_number") {
83 0 SECTION("as_number") {
83 0 SECTION("as_number") {
83 0 SECTION("as_number") {
1 82 SECTION("as_number") {
138 1 0 REQUIRE(Scalar(Simple(111)).as_number() == 111);
1 0 REQUIRE(Scalar(Simple(111)).as_number() == 111);
1 0 REQUIRE(Scalar(Simple(111)).as_number() == 111);
1 0 REQUIRE(Scalar(Simple(111)).as_number() == 111);
1 0 REQUIRE(Scalar(Simple(111)).as_number() == 111);
1 0 REQUIRE(Scalar(Simple(111)).as_number() == 111);
1 0 REQUIRE(Scalar(Simple(111)).as_number() == 111);
0 0 REQUIRE(Scalar(Simple(111)).as_number() == 111);
0 0 REQUIRE(Scalar(Simple(111)).as_number() == 111);
139 1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111);
1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111);
1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111);
1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111);
1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111);
1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111);
1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111);
0 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111);
0 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111);
140 1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111.7);
1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111.7);
1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111.7);
1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111.7);
1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111.7);
1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111.7);
1 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111.7);
0 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111.7);
0 0 REQUIRE(Scalar(Simple(111.7)).as_number() == 111.7);
141 1 0 REQUIRE(Scalar().as_number() == 0);
1 0 REQUIRE(Scalar().as_number() == 0);
1 0 REQUIRE(Scalar().as_number() == 0);
1 0 REQUIRE(Scalar().as_number() == 0);
1 0 REQUIRE(Scalar().as_number() == 0);
1 0 REQUIRE(Scalar().as_number() == 0);
0 0 REQUIRE(Scalar().as_number() == 0);
0 0 REQUIRE(Scalar().as_number() == 0);
142 1 0 REQUIRE(Scalar::undef.as_number() == 0);
1 0 REQUIRE(Scalar::undef.as_number() == 0);
1 0 REQUIRE(Scalar::undef.as_number() == 0);
1 0 REQUIRE(Scalar::undef.as_number() == 0);
1 0 REQUIRE(Scalar::undef.as_number() == 0);
1 0 REQUIRE(Scalar::undef.as_number() == 0);
0 0 REQUIRE(Scalar::undef.as_number() == 0);
0 0 REQUIRE(Scalar::undef.as_number() == 0);
143 1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_number(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_number(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_number(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_number(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_number(), std::invalid_argument);
0 1 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_number(), std::invalid_argument);
0 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_number(), std::invalid_argument);
0 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_number(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_number(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_number(), std::invalid_argument);
1 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_number(), std::invalid_argument);
0 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_number(), std::invalid_argument);
0 0 REQUIRE_THROWS_AS(Ref::create(Array::create()).as_number(), std::invalid_argument);
145 34 0 }
34 0 }