Changeset View
Changeset View
Standalone View
Standalone View
src/test/descriptor_tests.cpp
Show First 20 Lines • Show All 93 Lines • ▼ Show 20 Lines | void Check(const std::string &prv, const std::string &pub, int flags, | ||||
} | } | ||||
size_t max = (flags & RANGE) ? scripts.size() : 3; | size_t max = (flags & RANGE) ? scripts.size() : 3; | ||||
for (size_t i = 0; i < max; ++i) { | for (size_t i = 0; i < max; ++i) { | ||||
const auto &ref = scripts[(flags & RANGE) ? i : 0]; | const auto &ref = scripts[(flags & RANGE) ? i : 0]; | ||||
for (int t = 0; t < 2; ++t) { | for (int t = 0; t < 2; ++t) { | ||||
const FlatSigningProvider &key_provider = | const FlatSigningProvider &key_provider = | ||||
(flags & HARDENED) ? keys_priv : keys_pub; | (flags & HARDENED) ? keys_priv : keys_pub; | ||||
FlatSigningProvider script_provider; | FlatSigningProvider script_provider, script_provider_cached; | ||||
std::vector<CScript> spks; | std::vector<CScript> spks, spks_cached; | ||||
BOOST_CHECK((t ? parse_priv : parse_pub) | std::vector<uint8_t> cache; | ||||
->Expand(i, key_provider, spks, script_provider)); | BOOST_CHECK( | ||||
(t ? parse_priv : parse_pub) | |||||
->Expand(i, key_provider, spks, script_provider, &cache)); | |||||
// Try to expand again using cached data, and compare. | |||||
BOOST_CHECK(parse_pub->ExpandFromCache(i, cache, spks_cached, | |||||
script_provider_cached)); | |||||
BOOST_CHECK(spks == spks_cached); | |||||
BOOST_CHECK(script_provider.pubkeys == | |||||
script_provider_cached.pubkeys); | |||||
BOOST_CHECK(script_provider.scripts == | |||||
script_provider_cached.scripts); | |||||
BOOST_CHECK(script_provider.origins == | |||||
script_provider_cached.origins); | |||||
BOOST_CHECK_EQUAL(spks.size(), ref.size()); | BOOST_CHECK_EQUAL(spks.size(), ref.size()); | ||||
for (size_t n = 0; n < spks.size(); ++n) { | for (size_t n = 0; n < spks.size(); ++n) { | ||||
BOOST_CHECK_EQUAL(ref[n], | BOOST_CHECK_EQUAL(ref[n], | ||||
HexStr(spks[n].begin(), spks[n].end())); | HexStr(spks[n].begin(), spks[n].end())); | ||||
BOOST_CHECK_EQUAL( | BOOST_CHECK_EQUAL( | ||||
IsSolvable(Merge(key_provider, script_provider), spks[n]), | IsSolvable(Merge(key_provider, script_provider), spks[n]), | ||||
(flags & UNSOLVABLE) == 0); | (flags & UNSOLVABLE) == 0); | ||||
▲ Show 20 Lines • Show All 241 Lines • Show Last 20 Lines |