test: codecov for WasmHostFuncWrapper.cpp (#5601)

This commit is contained in:
Mayukha Vadari
2025-07-29 16:06:21 -04:00
committed by GitHub
parent c8c241b50d
commit 66776b6a85
6 changed files with 478 additions and 267 deletions

View File

@@ -2324,14 +2324,9 @@ struct Escrow_test : public beast::unit_test::suite
Account const alice{"alice"};
Account const carol{"carol"};
{
Env env(*this);
env.fund(XRP(5000), alice, carol);
}
{
Env env{*this};
env.fund(XRP(5000), alice, carol);
env.fund(XRP(10000), alice, carol);
BEAST_EXPECT(env.seq(alice) == 4);
BEAST_EXPECT((*env.le(alice))[sfOwnerCount] == 0);
@@ -2355,14 +2350,15 @@ struct Escrow_test : public beast::unit_test::suite
escrow::finish_time(env.now() + 100s));
env(token::createOffer(carol, tokenId, XRP(100)),
token::owner(alice));
env(offer(alice, carol["USD"](0.1), XRP(100)));
env(create(alice, carol, XRP(1000), 100s, alice.pk()));
env(signers(alice, 1, {{carol, 1}}));
env(ticket::create(alice, 1));
env.close();
BEAST_EXPECT((*env.le(alice))[sfOwnerCount] == 11);
BEAST_EXPECT((*env.le(alice))[sfOwnerCount] == 12);
if (BEAST_EXPECTS(
env.seq(alice) == 16, std::to_string(env.seq(alice))))
env.seq(alice) == 17, std::to_string(env.seq(alice))))
{
auto const seq = env.seq(alice);
XRPAmount txnFees = env.current()->fees().base + 1000;

View File

@@ -69,9 +69,7 @@ public:
TestHostFunctions(test::jtx::Env& env, int cd = 0)
: env_(env), clock_drift_(cd)
{
auto opt = parseBase58<AccountID>("rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh");
if (opt)
accountID_ = *opt;
accountID_ = env_.master.id();
std::string t = "10000";
data_ = Bytes{t.begin(), t.end()};
}
@@ -165,19 +163,31 @@ public:
Expected<Bytes, HostFunctionError>
getLedgerObjField(int32_t cacheIdx, SField const& fname) override
{
// auto const& sn = fname.getName();
if (fname == sfBalance)
{
int64_t x = 10'000;
uint8_t const* p = reinterpret_cast<uint8_t const*>(&x);
return Bytes{p, p + sizeof(x)};
}
else if (fname == sfAccount)
{
return Bytes(accountID_.begin(), accountID_.end());
}
return data_;
}
Expected<Bytes, HostFunctionError>
getTxNestedField(Slice const& locator) override
{
if (locator.size() == 4)
{
int32_t const* l = reinterpret_cast<int32_t const*>(locator.data());
int32_t const sfield = l[0];
if (sfield == sfAccount.fieldCode)
{
return Bytes(accountID_.begin(), accountID_.end());
}
}
uint8_t const a[] = {0x2b, 0x6a, 0x23, 0x2a, 0xa4, 0xc4, 0xbe, 0x41,
0xbf, 0x49, 0xd2, 0x45, 0x9f, 0xa4, 0xa0, 0x34,
0x7e, 0x1b, 0x54, 0x3a, 0x4c, 0x92, 0xfc, 0xee,
@@ -188,6 +198,15 @@ public:
Expected<Bytes, HostFunctionError>
getCurrentLedgerObjNestedField(Slice const& locator) override
{
if (locator.size() == 4)
{
int32_t const* l = reinterpret_cast<int32_t const*>(locator.data());
int32_t const sfield = l[0];
if (sfield == sfAccount.fieldCode)
{
return Bytes(accountID_.begin(), accountID_.end());
}
}
uint8_t const a[] = {0x2b, 0x6a, 0x23, 0x2a, 0xa4, 0xc4, 0xbe, 0x41,
0xbf, 0x49, 0xd2, 0x45, 0x9f, 0xa4, 0xa0, 0x34,
0x7e, 0x1b, 0x54, 0x3a, 0x4c, 0x92, 0xfc, 0xee,
@@ -198,6 +217,15 @@ public:
Expected<Bytes, HostFunctionError>
getLedgerObjNestedField(int32_t cacheIdx, Slice const& locator) override
{
if (locator.size() == 4)
{
int32_t const* l = reinterpret_cast<int32_t const*>(locator.data());
int32_t const sfield = l[0];
if (sfield == sfAccount.fieldCode)
{
return Bytes(accountID_.begin(), accountID_.end());
}
}
uint8_t const a[] = {0x2b, 0x6a, 0x23, 0x2a, 0xa4, 0xc4, 0xbe, 0x41,
0xbf, 0x49, 0xd2, 0x45, 0x9f, 0xa4, 0xa0, 0x34,
0x7e, 0x1b, 0x54, 0x3a, 0x4c, 0x92, 0xfc, 0xee,

View File

@@ -606,6 +606,33 @@ struct Wasm_test : public beast::unit_test::suite
}
}
void
testCodecovWasm()
{
testcase("Codecov wasm test");
using namespace test::jtx;
// Env env{
// *this,
// envconfig(),
// testable_amendments(),
// nullptr,
// beast::severities::kTrace};
Env env{*this};
auto const wasmStr = boost::algorithm::unhex(codecovWasm);
Bytes const wasm(wasmStr.begin(), wasmStr.end());
std::string const funcName("finish");
TestHostFunctions hfs(env, 0);
auto re =
runEscrowWasm(wasm, funcName, {}, &hfs, 1'000'000, env.journal);
if (BEAST_EXPECT(re.has_value()))
BEAST_EXPECT(re->result);
}
void
run() override
{
@@ -630,6 +657,8 @@ struct Wasm_test : public beast::unit_test::suite
testEscrowWasmDN();
testCodecovWasm();
// perfTest();
}
};

View File

@@ -11848,242 +11848,377 @@ extern std::string const opcCallPerfTest =
"0b0e01004180080b07623a2025660a00";
extern std::string const keyletHostFunctions =
"0061736d01000000015b0c60057f7f7f7f7f017f60037f7f7f017f60037f7f7e017f60047f"
"7f7f7f017f60087f7f7f7f7f7f7f7f017f60067f7f7f7f7f7f017f60077f7f7f7f7f7f7f01"
"7f60057f7f7f7f7f006000017f60000060037f7f7f0060027f7f0002c6031108686f73745f"
"6c6962057472616365000008686f73745f6c69621063616368655f6c65646765725f6f626a"
"000108686f73745f6c69620974726163655f6e756d000208686f73745f6c6962146765745f"
"6c65646765725f6f626a5f6669656c64000308686f73745f6c69621c6765745f6375727265"
"6e745f6c65646765725f6f626a5f6669656c64000108686f73745f6c69620e6163636f756e"
"745f6b65796c6574000308686f73745f6c69620b6c696e655f6b65796c6574000408686f73"
"745f6c69620c636865636b5f6b65796c6574000008686f73745f6c69621163726564656e74"
"69616c5f6b65796c6574000408686f73745f6c69620f64656c65676174655f6b65796c6574"
"000508686f73745f6c6962166465706f7369745f707265617574685f6b65796c6574000508"
"686f73745f6c69620a6469645f6b65796c6574000308686f73745f6c69620d657363726f77"
"5f6b65796c6574000008686f73745f6c6962106e66745f6f666665725f6b65796c65740000"
"08686f73745f6c69620e7061796368616e5f6b65796c6574000608686f73745f6c69620e73"
"69676e6572735f6b65796c6574000308686f73745f6c69620d7469636b65745f6b65796c65"
"740000030d0c0708090a0a0a0b0b0b0a0b0b05030100110619037f01418080c0000b7f0041"
"f989c0000b7f0041808ac0000b073e05066d656d6f727902000d6f626a6563745f65786973"
"747300110666696e69736800120a5f5f646174615f656e6403010b5f5f686561705f626173"
"6503020a94270c9a0603017f037e037f23808080800041f0006b2205248080808000024002"
"40024020012d00000d00200541186a200141196a290000370300200541106a200141116a29"
"0000370300200541086a200141096a29000037030020052001290001370300200220032005"
"412041011080808080001a20054120410010818080800022014101480d0102400240024002"
"4020040d00418b80c08000410f428580141082808080001a200541d0006a41186a42003703"
"00200541d0006a41106a4200370300200541d0006a41086a42003703002005420037035020"
"0141858014200541d0006a412010838080800022014120470d01200541206a41086a200541"
"d0006a410f6a22012900002206370300200541206a41106a200541e7006a22042900002207"
"370300200541206a41186a200541ef006a22032d000022023a000020052005290057220837"
"032020052f015021092005280152210a20052d0056210b2001200637000020042007370000"
"200320023a00002005200b3a00562005200a360152200520093b015020052008370057419a"
"80c08000410c200541d0006a412041011080808080001a0c030b418b80c08000410f2004ac"
"1082808080001a200541e0006a4100360200200541d8006a42003703002005420037035020"
"012004200541d0006a411410838080800022014114460d0141a680c0800041152001417f20"
"01417f481b2201ac1082808080001a200041013a0000200020013602040c050b41a680c080"
"0041152001417f2001417f481b2201ac1082808080001a200041013a000020002001360204"
"0c040b200541226a20052d00523a0000200520052900573703402005200541d0006a410c6a"
"290000370045200541206a410c6a2005290045370000200520052f01503b01202005200528"
"005336002320052005290340370027419a80c08000410c200541206a411441011080808080"
"001a0b20004180023b01000c020b41c280c08000411620012802042201ac1082808080001a"
"200041013a0000200020013602040c010b41bb80c0800041072001ac1082808080001a2000"
"41013a0000200041783602040b200541f0006a2480808080000bd21201067f238080808000"
"4190046b220024808080800041d880c0800041234100410041001080808080001a20004180"
"046a22014100360200200041f8036a22024200370300200042003703f00302400240024002"
"4041818020200041f0036a411410848080800022034114470d00200041046a41026a20002d"
"00f2033a0000200020002900f7033703502000200041f0036a410c6a220329000037005520"
"0041046a410c6a2000290055370000200020002f01f0033b0104200020002800f303360007"
"2000200029035037000b41fb80c08000410a200041046a411441011080808080001a200141"
"0036020020024200370300200042003703f00341838020200041f0036a4114108480808000"
"22014114470d01200041186a41026a20002d00f2033a0000200020002900f7033703502000"
"2003290000370055200041186a410c6a2000290055370000200020002f01f0033b01182000"
"20002800f30336001b2000200029035037001f418581c08000410e200041186a4114410110"
"80808080001a20004188046a2202420037030020004180046a22034200370300200041f803"
"6a22044200370300200042003703f003200041046a4114200041f0036a4120108580808000"
"22014120460d02024002402001417f4a0d00200020013602300c010b2000417f3602300b41"
"0121010c030b418080c08000410b2003417f2003417f481bac1082808080001a1093808080"
"00000b418080c08000410b2001417f2001417f481bac1082808080001a109380808000000b"
"200041c5006a20022903003700002000413d6a2003290300370000200041356a2004290300"
"370000200020002903f00337002d410021010b200020013a002c200041f0036a2000412c6a"
"419381c080004107418180201091808080000240024020002d00f0030d00024020002d00f1"
"030d00419a81c0800041364100410041001080808080001a0c010b4100210141d081c08000"
"41354100410041001080808080001a200041de006a41c4003a0000200041d0006a41086a41"
"00360200200041e3006a41003a0000200041d5a6013b015c20004200370350200041003600"
"5f20004188046a2203420037030020004180046a22044200370300200041f0036a41086a22"
"054200370300200042003703f00302400240200041046a4114200041186a4114200041d000"
"6a4114200041f0036a412010868080800022024120460d00024002402002417f4a0d002000"
"20023602680c010b2000417f3602680b410121010c010b200041fd006a2003290300370000"
"200041f5006a2004290300370000200041ed006a2005290300370000200020002903f00337"
"00650b200020013a0064200041f0036a200041e4006a418582c08000410941001091808080"
"0020002d00f0030d00024020002d00f1030d00418e82c08000413a41004100410010808080"
"80001a0c010b4100210141c882c0800041394100410041001080808080001a20004188046a"
"2203420037030020004180046a22044200370300200041f8036a2205420037030020004200"
"3703f00302400240200041046a41144106200041f0036a412010878080800022024120460d"
"00024002402002417f4a0d002000200236028c010c010b2000417f36028c010b410121010c"
"010b200041a1016a200329030037000020004199016a200429030037000020004191016a20"
"05290300370000200020002903f003370089010b200020013a008801200041f0036a200041"
"88016a418183c0800041054181802010918080800020002d00f0030d00024020002d00f103"
"0d00419a81c0800041364100410041001080808080001a0c010b41d081c080004135410041"
"0041001080808080001a200041ac016a200041046a200041046a109480808000200041f003"
"6a200041ac016a419883c08000410a4198802010918080800020002d00f0030d0002402000"
"2d00f1030d0041a283c08000413b4100410041001080808080001a0c010b41dd83c0800041"
"3a4100410041001080808080001a200041d0016a200041046a200041186a10958080800020"
"0041f0036a200041d0016a419784c0800041084181802010918080800020002d00f0030d00"
"024020002d00f1030d00419f84c0800041394100410041001080808080001a0c010b41d884"
"c0800041384100410041001080808080001a200041f4016a200041046a200041186a109680"
"808000200041f0036a200041f4016a419784c0800041084181802010918080800020002d00"
"f0030d00024020002d00f1030d00419f84c0800041394100410041001080808080001a0c01"
"0b41d884c0800041384100410041001080808080001a20004198026a200041046a10978080"
"8000200041f0036a20004198026a419381c0800041074181802010918080800020002d00f0"
"030d00024020002d00f1030d00419a81c0800041364100410041001080808080001a0c010b"
"41d081c0800041354100410041001080808080001a200041bc026a200041046a1098808080"
"00200041f0036a200041bc026a419085c0800041064181802010918080800020002d00f003"
"0d00024020002d00f1030d00419685c0800041374100410041001080808080001a0c010b41"
"cd85c0800041364100410041001080808080001a200041e0026a200041186a109980808000"
"200041f0036a200041e0026a418386c08000410c4182802010918080800020002d00f0030d"
"00024020002d00f1030d00418f86c08000413d4100410041001080808080001a0c010b41cc"
"86c08000413c4100410041001080808080001a20004184036a200041046a200041186a109a"
"80808000200041f0036a20004184036a418887c08000410a4181802010918080800020002d"
"00f0030d00024020002d00f1030d00419287c08000413b4100410041001080808080001a0c"
"010b41cd87c08000413a4100410041001080808080001a200041a8036a200041046a109b80"
"808000200041f0036a200041a8036a418788c08000410a410010918080800020002d00f003"
"0d00024020002d00f1030d00419188c08000413b4100410041001080808080001a0c010b41"
"cc88c08000413a4100410041001080808080001a200041cc036a200041046a109c80808000"
"200041f0036a200041cc036a418689c0800041064181802010918080800020002d00f0030d"
"00024020002d00f1030d00418c89c0800041374100410041001080808080001a0c010b41c3"
"89c0800041364100410041001080808080001a410121010c010b410021010b20004190046a"
"24808080800020010b0300000bd10101047f23808080800041206b22032480808080002003"
"41186a22044200370300200341106a22054200370300200341086a22064200370300200342"
"00370300024002402001411420024114418683c08000411220034120108880808000220241"
"20460d00024002402002417f4a0d00200020023602040c010b2000417f3602040b41012102"
"0c010b20002003290300370001200041196a2004290300370000200041116a200529030037"
"0000200041096a2006290300370000410021020b200020023a0000200341206a2480808080"
"000bc90101047f23808080800041206b2203248080808000200341186a2204420037030020"
"0341106a22054200370300200341086a220642003703002003420037030002400240200141"
"14200241142003412010898080800022024120460d00024002402002417f4a0d0020002002"
"3602040c010b2000417f3602040b410121020c010b20002003290300370001200041196a20"
"04290300370000200041116a2005290300370000200041096a200629030037000041002102"
"0b200020023a0000200341206a2480808080000bc90101047f23808080800041206b220324"
"8080808000200341186a22044200370300200341106a22054200370300200341086a220642"
"003703002003420037030002400240200141142002411420034120108a8080800022024120"
"460d00024002402002417f4a0d00200020023602040c010b2000417f3602040b410121020c"
"010b20002003290300370001200041196a2004290300370000200041116a20052903003700"
"00200041096a2006290300370000410021020b200020023a0000200341206a248080808000"
"0bc50101047f23808080800041206b2202248080808000200241186a220342003703002002"
"41106a22044200370300200241086a22054200370300200242003703000240024020014114"
"20024120108b8080800022014120460d00024002402001417f4a0d00200020013602040c01"
"0b2000417f3602040b410121010c010b20002002290300370001200041196a200329030037"
"0000200041116a2004290300370000200041096a2005290300370000410021010b20002001"
"3a0000200241206a2480808080000bc70101047f23808080800041206b2202248080808000"
"200241186a22034200370300200241106a22044200370300200241086a2205420037030020"
"0242003703000240024020014114410b20024120108c8080800022014120460d0002400240"
"2001417f4a0d00200020013602040c010b2000417f3602040b410121010c010b2000200229"
"0300370001200041196a2003290300370000200041116a2004290300370000200041096a20"
"05290300370000410021010b200020013a0000200241206a2480808080000bc70101047f23"
"808080800041206b2202248080808000200241186a22034200370300200241106a22044200"
"370300200241086a2205420037030020024200370300024002402001411441042002412010"
"8d8080800022014120460d00024002402001417f4a0d00200020013602040c010b2000417f"
"3602040b410121010c010b20002002290300370001200041196a2003290300370000200041"
"116a2004290300370000200041096a2005290300370000410021010b200020013a00002002"
"41206a2480808080000bcb0101047f23808080800041206b2203248080808000200341186a"
"22044200370300200341106a22054200370300200341086a22064200370300200342003703"
"00024002402001411420024114410c20034120108e8080800022024120460d000240024020"
"02417f4a0d00200020023602040c010b2000417f3602040b410121020c010b200020032903"
"00370001200041196a2004290300370000200041116a2005290300370000200041096a2006"
"290300370000410021020b200020023a0000200341206a2480808080000bc50101047f2380"
"8080800041206b2202248080808000200241186a22034200370300200241106a2204420037"
"0300200241086a2205420037030020024200370300024002402001411420024120108f8080"
"800022014120460d00024002402001417f4a0d00200020013602040c010b2000417f360204"
"0b410121010c010b20002002290300370001200041196a2003290300370000200041116a20"
"04290300370000200041096a2005290300370000410021010b200020013a0000200241206a"
"2480808080000bc70101047f23808080800041206b2202248080808000200241186a220342"
"00370300200241106a22044200370300200241086a22054200370300200242003703000240"
"024020014114410f2002412010908080800022014120460d00024002402001417f4a0d0020"
"0020013602040c010b2000417f3602040b410121010c010b20002002290300370001200041"
"196a2003290300370000200041116a2004290300370000200041096a200529030037000041"
"0021010b200020013a0000200241206a2480808080000b0b830a0100418080c0000bf90965"
"72726f725f636f64653d47657474696e67206669656c643a204669656c6420646174613a20"
"4572726f722067657474696e67206669656c643a204572726f723a204572726f7220676574"
"74696e67206b65796c65743a202424242424205354415254494e47205741534d2045584543"
"5554494f4e20242424242420204163636f756e743a202044657374696e6174696f6e3a4163"
"636f756e742020436865636b206f626a65637420646f6573206e6f742065786973742c2061"
"626f7274696e6720657363726f772066696e6973682e2020436865636b206f626a65637420"
"6578697374732c2070726f63656564696e67207769746820657363726f772066696e697368"
"2e54727573746c696e65202054727573746c696e65206f626a65637420646f6573206e6f74"
"2065786973742c2061626f7274696e6720657363726f772066696e6973682e202054727573"
"746c696e65206f626a656374206578697374732c2070726f63656564696e67207769746820"
"657363726f772066696e6973682e436865636b7465726d73616e64636f6e646974696f6e73"
"43726564656e7469616c202043726564656e7469616c206f626a65637420646f6573206e6f"
"742065786973742c2061626f7274696e6720657363726f772066696e6973682e2020437265"
"64656e7469616c206f626a656374206578697374732c2070726f63656564696e6720776974"
"6820657363726f772066696e6973682e44656c6567617465202044656c6567617465206f62"
"6a65637420646f6573206e6f742065786973742c2061626f7274696e6720657363726f7720"
"66696e6973682e202044656c6567617465206f626a656374206578697374732c2070726f63"
"656564696e67207769746820657363726f772066696e6973682e457363726f772020457363"
"726f77206f626a65637420646f6573206e6f742065786973742c2061626f7274696e672065"
"7363726f772066696e6973682e2020457363726f77206f626a656374206578697374732c20"
"70726f63656564696e67207769746820657363726f772066696e6973682e4e46546f6b656e"
"4f6666657220204e46546f6b656e4f66666572206f626a65637420646f6573206e6f742065"
"786973742c2061626f7274696e6720657363726f772066696e6973682e20204e46546f6b65"
"6e4f66666572206f626a656374206578697374732c2070726f63656564696e672077697468"
"20657363726f772066696e6973682e5061794368616e6e656c20205061794368616e6e656c"
"0061736d01000000014d0960057f7f7f7f7f017f60047f7f7f7f017f60037f7f7f017f6008"
"7f7f7f7f7f7f7f7f017f60067f7f7f7f7f7f017f60037f7f7e017f60077f7f7f7f7f7f7f01"
"7f60057f7f7f7f7f006000017f02de031208686f73745f6c6962057472616365000008686f"
"73745f6c69621063616368655f6c65646765725f6f626a000208686f73745f6c6962097472"
"6163655f6e756d000508686f73745f6c6962146765745f6c65646765725f6f626a5f666965"
"6c64000108686f73745f6c69621c6765745f63757272656e745f6c65646765725f6f626a5f"
"6669656c64000208686f73745f6c69620e6163636f756e745f6b65796c6574000108686f73"
"745f6c69620b6c696e655f6b65796c6574000308686f73745f6c69620c636865636b5f6b65"
"796c6574000008686f73745f6c69621163726564656e7469616c5f6b65796c657400030868"
"6f73745f6c69620f64656c65676174655f6b65796c6574000408686f73745f6c6962166465"
"706f7369745f707265617574685f6b65796c6574000408686f73745f6c69620a6469645f6b"
"65796c6574000108686f73745f6c69620d657363726f775f6b65796c6574000008686f7374"
"5f6c6962106e66745f6f666665725f6b65796c6574000008686f73745f6c69620c6f666665"
"725f6b65796c6574000008686f73745f6c69620e7061796368616e5f6b65796c6574000608"
"686f73745f6c69620e7369676e6572735f6b65796c6574000108686f73745f6c69620d7469"
"636b65745f6b65796c65740000030302070805030100110619037f01418080c0000b7f0041"
"f48bc0000b7f0041808cc0000b073e05066d656d6f727902000d6f626a6563745f65786973"
"747300120666696e69736800130a5f5f646174615f656e6403010b5f5f686561705f626173"
"6503020ab82202b50502057f037e230041f0006b220524000240024020012d000045044020"
"0541186a200141196a290000370300200541106a200141116a290000370300200541086a20"
"0141096a290000370300200520012900013703002002200320054120410110001a20054120"
"41001001220141004c0d010240024002402004450440418b80c000410f4285801410021a20"
"0541e8006a4200370300200541e0006a4200370300200541d8006a42003703002005420037"
"0350200141858014200541d0006a22064120100322014120470d01200541286a200541df00"
"6a2201290000220a370300200541306a200541e7006a2202290000220b370300200541386a"
"200541ef006a22032d000022043a000020052005290057220c37032020052f015021072005"
"280152210820052d005621092001200a3700002002200b370000200320043a000020052009"
"3a005620052008360152200520073b01502005200c370057419a80c000410c200641204101"
"10001a0c030b418b80c000410f2004ac10021a200541e0006a4100360200200541d8006a42"
"003703002005420037035020012004200541d0006a4114100322014114460d0141a680c000"
"4115417f20012001417f4e1b2201ac10021a200041013a0000200020013602040c050b41a6"
"80c0004115417f20012001417f4e1b2201ac10021a200041013a0000200020013602040c04"
"0b200541226a20052d00523a0000200520052900573703402005200541dc006a2900003700"
"452005412c6a2005290045370000200520052f01503b012020052005280053360023200520"
"05290340370027419a80c000410c200541206a4114410110001a0b20004180023b01000c02"
"0b41c280c000411620012802042201ac10021a200041013a0000200020013602040c010b41"
"bb80c00041072001ac10021a200041013a0000200041783602040b200541f0006a24000bfe"
"1c01077f230041c0046b2200240041d880c000412341004100410010001a200041b0046a22"
"014100360200200041a8046a22024200370300200042003703a00402402000027f02404181"
"8020200041a0046a220541141004220341144604402000410e6a20002d00a2043a00002000"
"20002900a7043703582000200041ac046a220429000037005d200041186a200029005d3700"
"00200020002f01a0043b010c200020002800a30436000f2000200029035837001341fb80c0"
"00410a2000410c6a22064114410110001a2001410036020020024200370300200042003703"
"a0044183802020054114100422034114470d03200041226a20002d00a2043a000020002000"
"2900a7043703582000200429000037005d2000412c6a200029005d370000200020002f01a0"
"043b0120200020002800a30436002320002000290358370027418581c000410e200041206a"
"4114410110001a200041b8046a220442003703002001420037030020024200370300200042"
"003703a0042006411420054120100522034120460d01024020034100480440200020033602"
"380c010b2000417f3602380b41010c020b0c020b200041cd006a2004290300370000200041"
"c5006a20012903003700002000413d6a2002290300370000200020002903a0043700354100"
"0b3a0034200041a0046a200041346a419381c0004107418180201012027f024020002d00a0"
"040d0020002d00a104450440419a81c000413641004100410010001a0c010b4100210341d0"
"81c000413541004100410010001a200041e6006a41c4003a0000200041e0006a4100360200"
"200041eb006a41003a0000200041d5a6013b01642000420037035820004100360067200041"
"b8046a22024200370300200041b0046a22054200370300200041a8046a2204420037030020"
"0042003703a00402402000410c6a4114200041206a4114200041d8006a4114200041a0046a"
"4120100622014120470440024020014100480440200020013602740c010b2000417f360274"
"0b410121030c010b20004189016a200229030037000020004181016a200529030037000020"
"0041f9006a2004290300370000200020002903a0043700710b200020033a0070200041a004"
"6a200041f0006a418582c00041094100101220002d00a0040d0020002d00a104450440418e"
"82c000413a41004100410010001a0c010b4100210341c882c000413941004100410010001a"
"200041b8046a22024200370300200041b0046a22054200370300200041a8046a2204420037"
"0300200042003703a00402402000410c6a41144106200041a0046a41201007220141204704"
"4002402001410048044020002001360298010c010b2000417f360298010b410121030c010b"
"200041ad016a2002290300370000200041a5016a20052903003700002000419d016a200429"
"0300370000200020002903a004370095010b200020033a009401200041a0046a2000419401"
"6a418183c000410541818020101220002d00a0040d0020002d00a104450440419a81c00041"
"3641004100410010001a0c010b41d081c000413541004100410010001a230041206b220124"
"00200141186a22054200370300200141106a22044200370300200141086a22064200370300"
"20014200370300200041b8016a2202027f2000410c6a2203411420034114418683c0004112"
"20014120100822034120470440024020034100480440200220033602040c010b2002417f36"
"02040b41010c010b20022001290300370001200241196a2005290300370000200241116a20"
"04290300370000200241096a200629030037000041000b3a0000200141206a2400200041a0"
"046a2002419883c000410a41988020101220002d00a0040d0020002d00a10445044041a283"
"c000413b41004100410010001a0c010b41dd83c000413a41004100410010001a230041206b"
"22012400200141186a22054200370300200141106a22044200370300200141086a22064200"
"37030020014200370300200041dc016a2202027f2000410c6a4114200041206a4114200141"
"20100922034120470440024020034100480440200220033602040c010b2002417f3602040b"
"41010c010b20022001290300370001200241196a2005290300370000200241116a20042903"
"00370000200241096a200629030037000041000b3a0000200141206a2400200041a0046a20"
"02419784c000410841818020101220002d00a0040d0020002d00a104450440419f84c00041"
"3941004100410010001a0c010b41d884c000413841004100410010001a230041206b220124"
"00200141186a22054200370300200141106a22044200370300200141086a22064200370300"
"2001420037030020004180026a2202027f2000410c6a4114200041206a411420014120100a"
"22034120470440024020034100480440200220033602040c010b2002417f3602040b41010c"
"010b20022001290300370001200241196a2005290300370000200241116a20042903003700"
"00200241096a200629030037000041000b3a0000200141206a2400200041a0046a20024190"
"85c000410e41818020101220002d00a0040d0020002d00a104450440419e85c000413f4100"
"4100410010001a0c010b41dd85c000413e41004100410010001a230041206b220124002001"
"41186a22054200370300200141106a22044200370300200141086a22064200370300200142"
"00370300200041a4026a2202027f2000410c6a411420014120100b22034120470440024020"
"034100480440200220033602040c010b2002417f3602040b41010c010b2002200129030037"
"0001200241196a2005290300370000200241116a2004290300370000200241096a20062903"
"0037000041000b3a0000200141206a2400200041a0046a2002419381c00041074181802010"
"1220002d00a0040d0020002d00a104450440419a81c000413641004100410010001a0c010b"
"41d081c000413541004100410010001a230041206b22012400200141186a22054200370300"
"200141106a22044200370300200141086a2206420037030020014200370300200041c8026a"
"2202027f2000410c6a4114410b20014120100c220341204704400240200341004804402002"
"20033602040c010b2002417f3602040b41010c010b20022001290300370001200241196a20"
"05290300370000200241116a2004290300370000200241096a200629030037000041000b3a"
"0000200141206a2400200041a0046a2002419b86c000410641818020101220002d00a0040d"
"0020002d00a10445044041a186c000413741004100410010001a0c010b41d886c000413641"
"004100410010001a230041206b22012400200141186a22054200370300200141106a220442"
"00370300200141086a2206420037030020014200370300200041ec026a2202027f20004120"
"6a4114410420014120100d22034120470440024020034100480440200220033602040c010b"
"2002417f3602040b41010c010b20022001290300370001200241196a200529030037000020"
"0241116a2004290300370000200241096a200629030037000041000b3a0000200141206a24"
"00200041a0046a2002418e87c000410c41828020101220002d00a0040d0020002d00a10445"
"0440419a87c000413d41004100410010001a0c010b41d787c000413c41004100410010001a"
"230041206b22012400200141186a22054200370300200141106a2204420037030020014108"
"6a220642003703002001420037030020004190036a2202027f2000410c6a4114410c200141"
"20100e22034120470440024020034100480440200220033602040c010b2002417f3602040b"
"41010c010b20022001290300370001200241196a2005290300370000200241116a20042903"
"00370000200241096a200629030037000041000b3a0000200141206a2400200041a0046a20"
"02419388c000410541818020101220002d00a0040d0020002d00a104450440419888c00041"
"3641004100410010001a0c010b41ce88c000413541004100410010001a230041206b220124"
"00200141186a22054200370300200141106a22044200370300200141086a22064200370300"
"20014200370300200041b4036a2202027f2000410c6a4114200041206a4114410d20014120"
"100f22034120470440024020034100480440200220033602040c010b2002417f3602040b41"
"010c010b20022001290300370001200241196a2005290300370000200241116a2004290300"
"370000200241096a200629030037000041000b3a0000200141206a2400200041a0046a2002"
"418389c000410a41818020101220002d00a0040d0020002d00a104450440418d89c000413b"
"41004100410010001a0c010b41c889c000413a41004100410010001a230041206b22012400"
"200141186a22054200370300200141106a22044200370300200141086a2206420037030020"
"014200370300200041d8036a2202027f2000410c6a41142001412010102203412047044002"
"4020034100480440200220033602040c010b2002417f3602040b41010c010b200220012903"
"00370001200241196a2005290300370000200241116a2004290300370000200241096a2006"
"29030037000041000b3a0000200141206a2400200041a0046a200241828ac000410a410010"
"1220002d00a0040d0020002d00a104450440418c8ac000413b41004100410010001a0c010b"
"41c78ac000413a41004100410010001a230041206b22012400200141186a22054200370300"
"200141106a22044200370300200141086a2206420037030020014200370300200041fc036a"
"2202027f2000410c6a41144110200141201011220341204704400240200341004804402002"
"20033602040c010b2002417f3602040b41010c010b20022001290300370001200241196a20"
"05290300370000200241116a2004290300370000200241096a200629030037000041000b3a"
"0000200141206a2400200041a0046a200241818bc000410641818020101220002d00a0040d"
"0020002d00a10445044041878bc000413741004100410010001a0c010b41be8bc000413641"
"004100410010001a41010c010b41000b200041c0046a24000f0b418080c000410b417f2003"
"2003417f4e1bac1002000b0bfe0b0100418080c0000bf40b6572726f725f636f64653d4765"
"7474696e67206669656c643a204669656c6420646174613a204572726f722067657474696e"
"67206669656c643a204572726f723a204572726f722067657474696e67206b65796c65743a"
"202424242424205354415254494e47205741534d20455845435554494f4e20242424242420"
"204163636f756e743a202044657374696e6174696f6e3a4163636f756e742020436865636b"
"206f626a65637420646f6573206e6f742065786973742c2061626f7274696e672065736372"
"6f772066696e6973682e20205061794368616e6e656c206f626a656374206578697374732c"
"2070726f63656564696e67207769746820657363726f772066696e6973682e5369676e6572"
"4c69737420205369676e65724c697374206f626a65637420646f6573206e6f742065786973"
"742c2061626f7274696e6720657363726f772066696e6973682e20205369676e65724c6973"
"74206f626a656374206578697374732c2070726f63656564696e6720776974682065736372"
"6f772066696e6973682e5469636b657420205469636b6574206f626a65637420646f657320"
"6e6f742065786973742c2061626f7274696e6720657363726f772066696e6973682e202054"
"69636b6574206f626a656374206578697374732c2070726f63656564696e67207769746820"
"657363726f772066696e6973682e00ad0d046e616d650014136b65796c65745f6578616d70"
"6c652e7761736d01ef0c1d002b5f5a4e387872706c5f73746434686f737435747261636531"
"3768356563663766653133666438643166354501375f5a4e387872706c5f73746434686f73"
"74313663616368655f6c65646765725f6f626a313768373838623636346237363634616165"
"3145022f5f5a4e387872706c5f73746434686f73743974726163655f6e756d313768653639"
"3463616436386330376633386345033b5f5a4e387872706c5f73746434686f737432306765"
"745f6c65646765725f6f626a5f6669656c6431376838373939646530383866396236356339"
"4504435f5a4e387872706c5f73746434686f737432386765745f63757272656e745f6c6564"
"6765725f6f626a5f6669656c64313768346239313763353864363137613961394505355f5a"
"4e387872706c5f73746434686f737431346163636f756e745f6b65796c6574313768616233"
"363663616435383039376261304506325f5a4e387872706c5f73746434686f737431316c69"
"6e655f6b65796c6574313768653466386161383862646663633464664507335f5a4e387872"
"706c5f73746434686f73743132636865636b5f6b65796c6574313768333165356538343139"
"326131633631654508385f5a4e387872706c5f73746434686f7374313763726564656e7469"
"616c5f6b65796c6574313768643731653739346561383463373839644509365f5a4e387872"
"706c5f73746434686f7374313564656c65676174655f6b65796c6574313768323639663430"
"63643739663834373237450a3d5f5a4e387872706c5f73746434686f737432326465706f73"
"69745f707265617574685f6b65796c65743137686161306631646338616233346634623745"
"0b315f5a4e387872706c5f73746434686f737431306469645f6b65796c6574313768313866"
"61393935616436326331313139450c345f5a4e387872706c5f73746434686f737431336573"
"63726f775f6b65796c657431376838373464316235373266376333326437450d375f5a4e38"
"7872706c5f73746434686f737431366e66745f6f666665725f6b65796c6574313768663931"
"35393838643961386466633863450e355f5a4e387872706c5f73746434686f737431347061"
"796368616e5f6b65796c657431376862373435373234653534336539333565450f355f5a4e"
"387872706c5f73746434686f737431347369676e6572735f6b65796c657431376866646335"
"3536343961633961626465304510345f5a4e387872706c5f73746434686f73743133746963"
"6b65745f6b65796c65743137683164393432633034663234386362666545110d6f626a6563"
"745f657869737473120666696e69736813305f5a4e34636f72653970616e69636b696e6739"
"70616e69635f666d74313768623931626164616365366565383238374514465f5a4e387872"
"706c5f73746434636f7265357479706573376b65796c657473313763726564656e7469616c"
"5f6b65796c6574313768353839343033303564323939613236354515445f5a4e387872706c"
"5f73746434636f7265357479706573376b65796c657473313564656c65676174655f6b6579"
"6c65743137686665363134666163326238656437626445164b5f5a4e387872706c5f737464"
"34636f7265357479706573376b65796c65747332326465706f7369745f707265617574685f"
"6b65796c65743137683634303539316533346337323839363645173f5f5a4e387872706c5f"
"73746434636f7265357479706573376b65796c65747331306469645f6b65796c6574313768"
"326538323337313938626638373463634518425f5a4e387872706c5f73746434636f726535"
"7479706573376b65796c6574733133657363726f775f6b65796c6574313768363462336265"
"663061333138383233634519455f5a4e387872706c5f73746434636f726535747970657337"
"6b65796c65747331366e66745f6f666665725f6b65796c6574313768633833353933386361"
"63306465646263451a435f5a4e387872706c5f73746434636f7265357479706573376b6579"
"6c65747331347061796368616e5f6b65796c65743137683332396231633338396165343162"
"3638451b435f5a4e387872706c5f73746434636f7265357479706573376b65796c65747331"
"347369676e6572735f6b65796c657431376839633832313566396330386134636565451c42"
"5f5a4e387872706c5f73746434636f7265357479706573376b65796c65747331337469636b"
"65745f6b65796c65743137683366303138626436663561373338326645071201000f5f5f73"
"7461636b5f706f696e746572090a0100072e726f64617461004d0970726f64756365727302"
"086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d"
"312e38352e31202834656231363132353020323032352d30332d31352900490f7461726765"
"745f6665617475726573042b0a6d756c746976616c75652b0f6d757461626c652d676c6f62"
"616c732b0f7265666572656e63652d74797065732b087369676e2d657874";
"6f772066696e6973682e2020436865636b206f626a656374206578697374732c2070726f63"
"656564696e67207769746820657363726f772066696e6973682e54727573746c696e652020"
"54727573746c696e65206f626a65637420646f6573206e6f742065786973742c2061626f72"
"74696e6720657363726f772066696e6973682e202054727573746c696e65206f626a656374"
"206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973"
"682e436865636b7465726d73616e64636f6e646974696f6e7343726564656e7469616c2020"
"43726564656e7469616c206f626a65637420646f6573206e6f742065786973742c2061626f"
"7274696e6720657363726f772066696e6973682e202043726564656e7469616c206f626a65"
"6374206578697374732c2070726f63656564696e67207769746820657363726f772066696e"
"6973682e44656c6567617465202044656c6567617465206f626a65637420646f6573206e6f"
"742065786973742c2061626f7274696e6720657363726f772066696e6973682e202044656c"
"6567617465206f626a656374206578697374732c2070726f63656564696e67207769746820"
"657363726f772066696e6973682e4465706f7369745072656175746820204465706f736974"
"50726561757468206f626a65637420646f6573206e6f742065786973742c2061626f727469"
"6e6720657363726f772066696e6973682e20204465706f73697450726561757468206f626a"
"656374206578697374732c2070726f63656564696e67207769746820657363726f77206669"
"6e6973682e457363726f772020457363726f77206f626a65637420646f6573206e6f742065"
"786973742c2061626f7274696e6720657363726f772066696e6973682e2020457363726f77"
"206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f"
"772066696e6973682e4e46546f6b656e4f6666657220204e46546f6b656e4f66666572206f"
"626a65637420646f6573206e6f742065786973742c2061626f7274696e6720657363726f77"
"2066696e6973682e20204e46546f6b656e4f66666572206f626a656374206578697374732c"
"2070726f63656564696e67207769746820657363726f772066696e6973682e4f6666657220"
"204f66666572206f626a65637420646f6573206e6f742065786973742c2061626f7274696e"
"6720657363726f772066696e6973682e20204f66666572206f626a65637420657869737473"
"2c2070726f63656564696e67207769746820657363726f772066696e6973682e5061794368"
"616e6e656c20205061794368616e6e656c206f626a65637420646f6573206e6f7420657869"
"73742c2061626f7274696e6720657363726f772066696e6973682e20205061794368616e6e"
"656c206f626a656374206578697374732c2070726f63656564696e67207769746820657363"
"726f772066696e6973682e5369676e65724c69737420205369676e65724c697374206f626a"
"65637420646f6573206e6f742065786973742c2061626f7274696e6720657363726f772066"
"696e6973682e20205369676e65724c697374206f626a656374206578697374732c2070726f"
"63656564696e67207769746820657363726f772066696e6973682e5469636b657420205469"
"636b6574206f626a65637420646f6573206e6f742065786973742c2061626f7274696e6720"
"657363726f772066696e6973682e20205469636b6574206f626a656374206578697374732c"
"2070726f63656564696e67207769746820657363726f772066696e6973682e004d0970726f"
"64756365727302086c616e6775616765010452757374000c70726f6365737365642d627901"
"0572757374631d312e38352e31202834656231363132353020323032352d30332d31352900"
"490f7461726765745f6665617475726573042b0f6d757461626c652d676c6f62616c732b08"
"7369676e2d6578742b0f7265666572656e63652d74797065732b0a6d756c746976616c756"
"5";
extern std::string const codecovWasm =
"0061736d0100000001570b60057f7f7f7f7f017f60027f7f017f60047f7f7f7f017f60037f"
"7f7f017f60067f7f7f7f7f7f017f60017f017f60087f7f7f7f7f7f7f7f017f60037f7f7e01"
"7f60077f7f7f7f7f7f7f017f60047f7f7f7f006000017f0298082308686f73745f6c696209"
"74726163655f6e756d000708686f73745f6c6962057472616365000008686f73745f6c6962"
"0e6765745f6c65646765725f73716e000108686f73745f6c6962166765745f706172656e74"
"5f6c65646765725f74696d65000108686f73745f6c6962166765745f706172656e745f6c65"
"646765725f68617368000108686f73745f6c69620c6765745f74785f6669656c6400030868"
"6f73745f6c69620e6163636f756e745f6b65796c6574000208686f73745f6c696210636163"
"68655f6c65646765725f6f626a000308686f73745f6c69621c6765745f63757272656e745f"
"6c65646765725f6f626a5f6669656c64000308686f73745f6c6962146765745f6c65646765"
"725f6f626a5f6669656c64000208686f73745f6c6962136765745f74785f6e65737465645f"
"6669656c64000208686f73745f6c6962236765745f63757272656e745f6c65646765725f6f"
"626a5f6e65737465645f6669656c64000208686f73745f6c69621b6765745f6c6564676572"
"5f6f626a5f6e65737465645f6669656c64000008686f73745f6c6962106765745f74785f61"
"727261795f6c656e000508686f73745f6c6962206765745f63757272656e745f6c65646765"
"725f6f626a5f61727261795f6c656e000508686f73745f6c6962186765745f6c6564676572"
"5f6f626a5f61727261795f6c656e000108686f73745f6c6962176765745f74785f6e657374"
"65645f61727261795f6c656e000108686f73745f6c6962276765745f63757272656e745f6c"
"65646765725f6f626a5f6e65737465645f61727261795f6c656e000108686f73745f6c6962"
"1f6765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e000308686f"
"73745f6c69620b7570646174655f64617461000108686f73745f6c696213636f6d70757465"
"5f7368613531325f68616c66000208686f73745f6c69620b6c696e655f6b65796c65740006"
"08686f73745f6c69621163726564656e7469616c5f6b65796c6574000608686f73745f6c69"
"62076765745f6e6674000408686f73745f6c69620c636865636b5f6b65796c657400000868"
"6f73745f6c69620f64656c65676174655f6b65796c6574000408686f73745f6c6962166465"
"706f7369745f707265617574685f6b65796c6574000408686f73745f6c69620a6469645f6b"
"65796c6574000208686f73745f6c69620d657363726f775f6b65796c6574000008686f7374"
"5f6c6962106e66745f6f666665725f6b65796c6574000008686f73745f6c69620c6f666665"
"725f6b65796c6574000008686f73745f6c69620d6f7261636c655f6b65796c657400000868"
"6f73745f6c69620e7061796368616e5f6b65796c6574000808686f73745f6c69620e736967"
"6e6572735f6b65796c6574000208686f73745f6c69620d7469636b65745f6b65796c657400"
"00030302090a05030100110619037f01418080c0000b7f00419c92c0000b7f0041a092c000"
"0b072e04066d656d6f727902000666696e69736800240a5f5f646174615f656e6403010b5f"
"5f686561705f6261736503020af41802390002402000200147044020004100480d01418b80"
"c000410b2000ad1000000b200220032000ac10001a0f0b418b80c000410b2000ac1000000b"
"b71802087f027e230041a0016b22002400419680c000412341004100410010011a20004100"
"360238200041386a2201410410024104418987c000410e1023200041003602382001410410"
"034104419787c00041161023200041d0006a22064200370300200041c8006a220342003703"
"00200041406b2202420037030020004200370338200141201004412041ad87c00041161023"
"20034100360200200242003703002000420037033841818020200141141005220441144604"
"400240200041066a20002d003a3a00002000200029003f370380012000200041c4006a2900"
"0037008501200041106a200029008501370000200020002f01383b01042000200028003b36"
"0007200020002903800137000b200642003703002003420037030020024200370300200042"
"00370338200041046a411420014120100622044120470d002000411a6a20002d003a3a0000"
"20004188016a200041c7006a290000220837030020004190016a200041cf006a2900002209"
"370300200041276a20083700002000412f6a2009370000200041376a200041d7006a2d0000"
"3a0000200020002f01383b01182000200028003b36001b2000200029003f37001f20004118"
"6a412041001007410141b980c0004110102320034100360200200242003703002000420037"
"033841818020200141141008411441c387c000411c10232003410036020020024200370300"
"20004200370338410141818020200141141009411441df87c0004114102302402001410020"
"016b41037122036a220220014d0d0020030440200321040340200141003a0000200141016a"
"2101200441016b22040d000b0b200341016b4107490d000340200141003a0000200141076a"
"41003a0000200141066a41003a0000200141056a41003a0000200141046a41003a00002001"
"41036a41003a0000200141026a41003a0000200141016a41003a0000200141086a22012002"
"470d000b0b200241c40020036b2203417c716a220120024b04400340200241003602002002"
"41046a22022001490d000b0b024020012003410371220320016a22044f0d00200322020440"
"0340200141003a0000200141016a2101200241016b22020d000b0b200341016b4107490d00"
"0340200141003a0000200141076a41003a0000200141066a41003a0000200141056a41003a"
"0000200141046a41003a0000200141036a41003a0000200141026a41003a0000200141016a"
"41003a0000200141086a22012004470d000b0b200041818020360280014100210103402005"
"41c000490440200041386a20056a20004180016a20016a2d00003a00002000200028027841"
"016a2205360278200141016a22014104470d010b0b20004190016a22044100360200200041"
"88016a220642003703002000420037038001200041386a2201200520004180016a22024114"
"100a411441f387c00041131023200441003602002006420037030020004200370380012001"
"200028027820024114100b4114418688c00041231023200441003602002006420037030020"
"0042003703800141012001200028027820024114100c411441a988c000411b10234189803c"
"100d412041c980c000411010234189803c100e412041d980c0004120102341014189803c10"
"0f412041f980c000411810232001200028027810104120419181c000411710232001200028"
"02781011412041a881c000412710234101200120002802781012412041cf81c000411f1023"
"200041046a220341141013410041ee81c000410b102320004198016a220742003703002004"
"420037030020064200370300200042003703800120012000280278200241201014412041c4"
"88c00041131023417f41041002417141f981c0004116102320004100360280012002417f10"
"02417141d788c0004116102320004182016a41003a0000200041003b018001200241031002"
"417d41ed88c000411c102320004100360280012002418094ebdc0310024173418989c00041"
"1b10234102100d416f418f82c000411f1023417f20002802781010417141ae82c000411f10"
"232001417f1010417141cd82c000411f102320014181201010417441ec82c0004120102320"
"0041b894ebdc036a2205200028027810104173418c83c000411f1023200520002802784101"
"1007417341ab83c000411810232001200028027841011007417141c383c000411a10232007"
"42003703002004420037030020064200370300200042003703800120052000280278200241"
"201006417341a489c000411b10232007420037030020044200370300200642003703002000"
"42003703800120012000280278200241201006417141bf89c0004118102320074200370300"
"20044200370300200642003703002000420037038001200341142003411420052000280278"
"200241201015417341d789c000412110232007420037030020044200370300200642003703"
"002000420037038001200341142003411420012000280278200241201015417141f889c000"
"411e102320052000280278422a1000417341dd83c00041171023200041003b018001410220"
"0241021005416f41968ac000411b1023200041003b0180014102200241021008416f41b18a"
"c000412b1023200041003b01800141014102200241021009416f41dc8ac000412310234102"
"100d416f418f82c000411f10234102100e416f41f483c000412f102341014102100f416f41"
"a384c00041271023200041003b018001200141812020024102100a417441ff8ac000412110"
"23200041003b018001200141812020024102100b417441a08bc00041311023200041003b01"
"80014101200141812020024102100c417441d18bc0004129102320014181201010417441ca"
"84c0004125102320014181201011417441ef84c00041351023410120014181201012417441"
"a485c000412d102320014181201013417441d185c00041191023200041003b018001200141"
"8120200241021014417441fa8bc00041211023200041003b01800120034114200341142001"
"4181202002410210164174419b8cc000411f10232001200028027822042005200441001001"
"417341ea85c000410f10232001200028027841001007417141f985c0004123102320004100"
"3b0180012003411420012000280278200241021017417141ba8cc000411a1023200041003b"
"01800120012000280278200241021006417141d48cc00041231023200041003b0180012001"
"20002802784101200241021018417141f78cc00041211023200041003b0180012001200028"
"027822042003411420012004200241021016417141988dc00041271023200041003b018001"
"2003411420012000280278220420012004200241021016417141bf8dc00041271023200041"
"003b0180012001200028027820034114200241021019417141e68dc0004125102320004100"
"3b01800120034114200120002802782002410210194171418b8ec00041251023200041003b"
"018001200120002802782003411420024102101a417141b08ec000412c1023200041003b01"
"8001200341142001200028027820024102101a417141dc8ec000412c1023200041003b0180"
"012001200028027820024102101b417141888fc000411f1023200041003b01800120012000"
"280278410120024102101c417141a78fc00041221023200041003b01800120012000280278"
"20034114419c86c0004114200241021015417141c98fc00041211023200041003b01800120"
"03411420012000280278419c86c0004114200241021015417141ea8fc00041211023200041"
"003b01800120012000280278410120024102101d4171418b90c00041251023200041003b01"
"800120012000280278410120024102101e417141b090c00041211023200041003b01800120"
"012000280278410120024102101f417141d190c00041221023200041003b01800120012000"
"280278200341144101200241021020417141f390c00041241023200041003b018001200341"
"142001200028027841012002410210204171419791c00041241023200041003b0180012001"
"2000280278200241021021417141bb91c00041231023200041003b01800120012000280278"
"4101200241021022417141de91c00041221023200041003b0180012001200028027841b086"
"c00041202002410210174171418092c000411c10232005200028027841b086c00041204100"
"1001417341d086c0004119102320012000280278200141812041001001417441e986c00041"
"0e1023200141812042011000417441f786c00041121023200041a0016a240041010f0b0b41"
"8080c000410b417f20042004417f4e1bac1000000b0ba6120100418080c0000b9c12657272"
"6f725f636f64653d54455354204641494c45442424242424205354415254494e4720574153"
"4d20455845435554494f4e20242424242463616368655f6c65646765725f6f626a6765745f"
"74785f61727261795f6c656e6765745f63757272656e745f6c65646765725f6f626a5f6172"
"7261795f6c656e6765745f6c65646765725f6f626a5f61727261795f6c656e6765745f7478"
"5f6e65737465645f61727261795f6c656e6765745f63757272656e745f6c65646765725f6f"
"626a5f6e65737465645f61727261795f6c656e6765745f6c65646765725f6f626a5f6e6573"
"7465645f61727261795f6c656e7570646174655f646174616765745f6c65646765725f7371"
"6e5f6e65675f7074726765745f74785f61727261795f6c656e5f696e76616c69645f736669"
"656c646765745f74785f6e65737465645f61727261795f6c656e5f6e65675f707472676574"
"5f74785f6e65737465645f61727261795f6c656e5f6e65675f6c656e6765745f74785f6e65"
"737465645f61727261795f6c656e5f746f6f5f6c6f6e676765745f74785f6e65737465645f"
"61727261795f6c656e5f7074725f6f6f6263616368655f6c65646765725f6f626a5f707472"
"5f6f6f6263616368655f6c65646765725f6f626a5f77726f6e675f6c656e74726163655f6e"
"756d5f77726f6e675f6c656e5f7374726765745f63757272656e745f6c65646765725f6f62"
"6a5f61727261795f6c656e5f696e76616c69645f736669656c646765745f6c65646765725f"
"6f626a5f61727261795f6c656e5f696e76616c69645f736669656c646765745f74785f6e65"
"737465645f61727261795f6c656e5f746f6f5f6269675f736c6963656765745f6375727265"
"6e745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e5f746f6f5f6269"
"675f736c6963656765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c65"
"6e5f746f6f5f6269675f736c6963657570646174655f646174615f746f6f5f6269675f736c"
"69636574726163655f6f6f625f736c69636563616368655f6c65646765725f6f626a5f7772"
"6f6e675f73697a655f75696e74323536555344303030303030303030303030303030303030"
"303030303030303030303030303030303030303030303030303030303030316765745f6e66"
"745f77726f6e675f73697a655f737472696e6774726163655f746f6f5f6c6f6e6774726163"
"655f6e756d5f746f6f5f6c6f6e676765745f6c65646765725f73716e6765745f706172656e"
"745f6c65646765725f74696d656765745f706172656e745f6c65646765725f686173686765"
"745f63757272656e745f6c65646765725f6f626a5f6669656c646765745f6c65646765725f"
"6f626a5f6669656c646765745f74785f6e65737465645f6669656c646765745f6375727265"
"6e745f6c65646765725f6f626a5f6e65737465645f6669656c646765745f6c65646765725f"
"6f626a5f6e65737465645f6669656c64636f6d707574655f7368613531325f68616c666765"
"745f6c65646765725f73716e5f6e65675f6c656e6765745f6c65646765725f73716e5f6275"
"665f746f6f5f736d616c6c6765745f6c65646765725f73716e5f6c656e5f746f6f5f6c6f6e"
"676163636f756e745f6b65796c65745f6c656e5f746f6f5f6c6f6e676163636f756e745f6b"
"65796c65745f77726f6e675f6c656e6c696e655f6b65796c65745f6c656e5f746f6f5f6c6f"
"6e675f63757272656e63796c696e655f6b65796c65745f77726f6e675f6c656e5f63757272"
"656e63796765745f74785f6669656c645f696e76616c69645f736669656c646765745f6375"
"7272656e745f6c65646765725f6f626a5f6669656c645f696e76616c69645f736669656c64"
"6765745f6c65646765725f6f626a5f6669656c645f696e76616c69645f736669656c646765"
"745f74785f6e65737465645f6669656c645f746f6f5f6269675f736c6963656765745f6375"
"7272656e745f6c65646765725f6f626a5f6e65737465645f6669656c645f746f6f5f626967"
"5f736c6963656765745f6c65646765725f6f626a5f6e65737465645f6669656c645f746f6f"
"5f6269675f736c696365636f6d707574655f7368613531325f68616c665f746f6f5f626967"
"5f736c69636563726564656e7469616c5f6b65796c65745f746f6f5f6269675f736c696365"
"6765745f6e66745f77726f6e675f73697a655f75696e743235366163636f756e745f6b6579"
"6c65745f77726f6e675f73697a655f6163636f756e746964636865636b5f6b65796c65745f"
"77726f6e675f73697a655f6163636f756e74696463726564656e7469616c5f6b65796c6574"
"5f77726f6e675f73697a655f6163636f756e7469643163726564656e7469616c5f6b65796c"
"65745f77726f6e675f73697a655f6163636f756e7469643264656c65676174655f6b65796c"
"65745f77726f6e675f73697a655f6163636f756e7469643164656c65676174655f6b65796c"
"65745f77726f6e675f73697a655f6163636f756e746964326465706f7369745f7072656175"
"74685f6b65796c65745f77726f6e675f73697a655f6163636f756e746964316465706f7369"
"745f707265617574685f6b65796c65745f77726f6e675f73697a655f6163636f756e746964"
"326469645f6b65796c65745f77726f6e675f73697a655f6163636f756e746964657363726f"
"775f6b65796c65745f77726f6e675f73697a655f6163636f756e7469646c696e655f6b6579"
"6c65745f77726f6e675f73697a655f6163636f756e746964316c696e655f6b65796c65745f"
"77726f6e675f73697a655f6163636f756e746964326e66745f6f666665725f6b65796c6574"
"5f77726f6e675f73697a655f6163636f756e7469646f666665725f6b65796c65745f77726f"
"6e675f73697a655f6163636f756e7469646f7261636c655f6b65796c65745f77726f6e675f"
"73697a655f6163636f756e7469647061796368616e5f6b65796c65745f77726f6e675f7369"
"7a655f6163636f756e746964317061796368616e5f6b65796c65745f77726f6e675f73697a"
"655f6163636f756e746964327369676e6572735f6b65796c65745f77726f6e675f73697a65"
"5f6163636f756e7469647469636b65745f6b65796c65745f77726f6e675f73697a655f6163"
"636f756e7469646765745f6e66745f77726f6e675f73697a655f6163636f756e746964004d"
"0970726f64756365727302086c616e6775616765010452757374000c70726f636573736564"
"2d6279010572757374631d312e38352e31202834656231363132353020323032352d30332d"
"31352900490f7461726765745f6665617475726573042b0f6d757461626c652d676c6f6261"
"6c732b087369676e2d6578742b0f7265666572656e63652d74797065732b0a6d756c746976"
"616c7565";

View File

@@ -58,3 +58,5 @@ extern std::string const hfPerfTest;
extern std::string const opcCallPerfTest;
extern std::string const keyletHostFunctions;
extern std::string const codecovWasm;

View File

@@ -37,7 +37,7 @@ setData(
int32_t srcSize)
{
if (!srcSize)
return 0;
return 0; // LCOV_EXCL_LINE
if (dst < 0 || dstSize < 0 || !src || srcSize < 0)
return static_cast<std::underlying_type_t<HostFunctionError>>(
@@ -45,9 +45,11 @@ setData(
auto memory = runtime ? runtime->getMem() : wmem();
// LCOV_EXCL_START
if (!memory.s)
return static_cast<std::underlying_type_t<HostFunctionError>>(
HostFunctionError::NO_MEM_EXPORTED);
// LCOV_EXCL_STOP
if (dst + dstSize > memory.s)
return static_cast<std::underlying_type_t<HostFunctionError>>(
HostFunctionError::POINTER_OUT_OF_BOUNDS);
@@ -108,8 +110,10 @@ getDataSlice(IW const* runtime, wasm_val_vec_t const* params, int32_t& i)
return Unexpected(HostFunctionError::DATA_FIELD_TOO_LARGE);
auto memory = runtime ? runtime->getMem() : wmem();
// LCOV_EXCL_START
if (!memory.s)
return Unexpected(HostFunctionError::NO_MEM_EXPORTED);
// LCOV_EXCL_STOP
if (ptr + size > memory.s)
return Unexpected(HostFunctionError::POINTER_OUT_OF_BOUNDS);
@@ -141,8 +145,15 @@ Expected<AccountID, HostFunctionError>
getDataAccountID(IW const* runtime, wasm_val_vec_t const* params, int32_t& i)
{
auto const slice = getDataSlice(runtime, params, i);
if (!slice || (slice->size() != AccountID::bytes))
if (!slice)
{
return Unexpected(slice.error());
}
if (slice->size() != AccountID::bytes)
{
return Unexpected(HostFunctionError::INVALID_PARAMS);
}
return AccountID::fromVoid(slice->data());
}
@@ -152,8 +163,15 @@ static Expected<Currency, HostFunctionError>
getDataCurrency(IW const* runtime, wasm_val_vec_t const* params, int32_t& i)
{
auto const slice = getDataSlice(runtime, params, i);
if (!slice || (slice->size() != Currency::bytes))
if (!slice)
{
return Unexpected(slice.error());
}
if (slice->size() != Currency::bytes)
{
return Unexpected(HostFunctionError::INVALID_PARAMS);
}
return Currency::fromVoid(slice->data());
}
@@ -306,7 +324,7 @@ cacheLedgerObj_wrap(
auto const cache = getDataInt32(runtime, params, index);
if (!cache)
{
return hfResult(results, cache.error());
return hfResult(results, cache.error()); // LCOV_EXCL_LINE
}
return returnResult(
@@ -365,7 +383,7 @@ getLedgerObjField_wrap(
auto const cache = getDataInt32(runtime, params, index);
if (!cache)
{
return hfResult(results, cache.error());
return hfResult(results, cache.error()); // LCOV_EXCL_LINE
}
auto const fname = getDataSField(runtime, params, index);
@@ -434,7 +452,7 @@ getLedgerObjNestedField_wrap(
auto const cache = getDataInt32(runtime, params, index);
if (!cache)
{
return hfResult(results, cache.error());
return hfResult(results, cache.error()); // LCOV_EXCL_LINE
}
auto const bytes = getDataSlice(runtime, params, index);
@@ -508,7 +526,7 @@ getLedgerObjArrayLen_wrap(
auto const cache = getDataInt32(runtime, params, index);
if (!cache)
{
return hfResult(results, cache.error());
return hfResult(results, cache.error()); // LCOV_EXCL_LINE
}
auto const fname = getDataSField(runtime, params, index);
@@ -581,7 +599,7 @@ getLedgerObjNestedArrayLen_wrap(
auto const cache = getDataInt32(runtime, params, index);
if (!cache)
{
return hfResult(results, cache.error());
return hfResult(results, cache.error()); // LCOV_EXCL_LINE
}
auto const bytes = getDataSlice(runtime, params, index);
@@ -675,7 +693,7 @@ checkKeylet_wrap(
auto const seq = getDataInt32(runtime, params, index);
if (!seq)
{
return hfResult(results, seq.error());
return hfResult(results, seq.error()); // LCOV_EXCL_LINE
}
return returnResult(
@@ -814,7 +832,7 @@ escrowKeylet_wrap(
auto const seq = getDataInt32(runtime, params, index);
if (!seq)
{
return hfResult(results, seq.error());
return hfResult(results, seq.error()); // LCOV_EXCL_LINE
}
return returnResult(
@@ -876,7 +894,7 @@ nftOfferKeylet_wrap(
auto const seq = getDataInt32(runtime, params, index);
if (!seq)
{
return hfResult(results, seq.error());
return hfResult(results, seq.error()); // LCOV_EXCL_LINE
}
return returnResult(
@@ -906,7 +924,7 @@ offerKeylet_wrap(
auto const seq = getDataInt32(runtime, params, index);
if (!seq)
{
return hfResult(results, seq.error());
return hfResult(results, seq.error()); // LCOV_EXCL_LINE
}
return returnResult(
@@ -936,7 +954,7 @@ oracleKeylet_wrap(
auto const documentId = getDataInt32(runtime, params, index);
if (!documentId)
{
return hfResult(results, documentId.error());
return hfResult(results, documentId.error()); // LCOV_EXCL_LINE
}
return returnResult(
runtime, params, results, hf->oracleKeylet(*acc, *documentId), index);
@@ -967,7 +985,7 @@ paychanKeylet_wrap(
auto const seq = getDataInt32(runtime, params, index);
if (!seq)
{
return hfResult(results, seq.error());
return hfResult(results, seq.error()); // LCOV_EXCL_LINE
}
return returnResult(
@@ -1017,7 +1035,7 @@ ticketKeylet_wrap(
auto const seq = getDataInt32(runtime, params, index);
if (!seq)
{
return hfResult(results, seq.error());
return hfResult(results, seq.error()); // LCOV_EXCL_LINE
}
return returnResult(
@@ -1079,7 +1097,7 @@ trace_wrap(void* env, wasm_val_vec_t const* params, wasm_val_vec_t* results)
auto const asHex = getDataInt32(runtime, params, index);
if (!asHex)
{
return hfResult(results, asHex.error());
return hfResult(results, asHex.error()); // LCOV_EXCL_LINE
}
return returnResult(
@@ -1106,7 +1124,7 @@ traceNum_wrap(void* env, wasm_val_vec_t const* params, wasm_val_vec_t* results)
auto const number = getDataInt64(runtime, params, index);
if (!number)
{
return hfResult(results, number.error());
return hfResult(results, number.error()); // LCOV_EXCL_LINE
}
return returnResult(
@@ -1131,6 +1149,8 @@ public:
};
namespace test {
// LCOV_EXCL_START
bool
testGetDataIncrement()
{
@@ -1257,6 +1277,7 @@ testGetDataIncrement()
return true;
}
// LCOV_EXCL_STOP
} // namespace test
} // namespace ripple