diff --git a/src/test/app/Escrow_test.cpp b/src/test/app/Escrow_test.cpp index 3fdccae9ee..93a37d8103 100644 --- a/src/test/app/Escrow_test.cpp +++ b/src/test/app/Escrow_test.cpp @@ -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; diff --git a/src/test/app/TestHostFunctions.h b/src/test/app/TestHostFunctions.h index 6a17738049..45de5d7b93 100644 --- a/src/test/app/TestHostFunctions.h +++ b/src/test/app/TestHostFunctions.h @@ -69,9 +69,7 @@ public: TestHostFunctions(test::jtx::Env& env, int cd = 0) : env_(env), clock_drift_(cd) { - auto opt = parseBase58("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 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(&x); return Bytes{p, p + sizeof(x)}; } + else if (fname == sfAccount) + { + return Bytes(accountID_.begin(), accountID_.end()); + } return data_; } Expected getTxNestedField(Slice const& locator) override { + if (locator.size() == 4) + { + int32_t const* l = reinterpret_cast(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 getCurrentLedgerObjNestedField(Slice const& locator) override { + if (locator.size() == 4) + { + int32_t const* l = reinterpret_cast(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 getLedgerObjNestedField(int32_t cacheIdx, Slice const& locator) override { + if (locator.size() == 4) + { + int32_t const* l = reinterpret_cast(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, diff --git a/src/test/app/Wasm_test.cpp b/src/test/app/Wasm_test.cpp index d03135ae65..5eee6014e5 100644 --- a/src/test/app/Wasm_test.cpp +++ b/src/test/app/Wasm_test.cpp @@ -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(); } }; diff --git a/src/test/app/wasm_fixtures/fixtures.cpp b/src/test/app/wasm_fixtures/fixtures.cpp index 48b0d20b73..bddb076df9 100644 --- a/src/test/app/wasm_fixtures/fixtures.cpp +++ b/src/test/app/wasm_fixtures/fixtures.cpp @@ -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"; diff --git a/src/test/app/wasm_fixtures/fixtures.h b/src/test/app/wasm_fixtures/fixtures.h index 97b2236d1b..b82b9aadcf 100644 --- a/src/test/app/wasm_fixtures/fixtures.h +++ b/src/test/app/wasm_fixtures/fixtures.h @@ -58,3 +58,5 @@ extern std::string const hfPerfTest; extern std::string const opcCallPerfTest; extern std::string const keyletHostFunctions; + +extern std::string const codecovWasm; diff --git a/src/xrpld/app/misc/WasmHostFuncWrapper.cpp b/src/xrpld/app/misc/WasmHostFuncWrapper.cpp index 23b89af3d3..a3a6f858c9 100644 --- a/src/xrpld/app/misc/WasmHostFuncWrapper.cpp +++ b/src/xrpld/app/misc/WasmHostFuncWrapper.cpp @@ -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>( @@ -45,9 +45,11 @@ setData( auto memory = runtime ? runtime->getMem() : wmem(); + // LCOV_EXCL_START if (!memory.s) return static_cast>( HostFunctionError::NO_MEM_EXPORTED); + // LCOV_EXCL_STOP if (dst + dstSize > memory.s) return static_cast>( 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 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 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