20 #include <ripple/basics/StringUtilities.h>
21 #include <ripple/basics/UnorderedContainers.h>
22 #include <ripple/basics/contract.h>
23 #include <ripple/basics/random.h>
24 #include <ripple/beast/unit_test.h>
25 #include <ripple/beast/xor_shift_engine.h>
26 #include <ripple/protocol/digest.h>
27 #include <ripple/shamap/SHAMap.h>
28 #include <ripple/shamap/SHAMapSyncFilter.h>
31 #include <test/shamap/common.h>
32 #include <test/unit_test/SuiteJournal.h>
51 Throw<std::runtime_error>(
"missing node");
75 Map::iterator it =
mMap.
find(nodeHash);
88 boost::intrusive_ptr<Item>
92 for (
int d = 0; d < 3; ++d)
93 s.
add32(ripple::rand_int<std::uint32_t>(r));
std::enable_if_t< std::is_same< T, char >::value||std::is_same< T, unsigned char >::value, Slice > makeSlice(std::array< T, N > const &a)
void operator()(std::uint32_t refNum) const
void gotNode(bool fromFilter, SHAMapHash const &nodeHash, std::uint32_t ledgerSeq, Blob &&nodeData, SHAMapNodeType type) const override
boost::intrusive_ptr< SHAMapItem > make_shamapitem(uint256 const &tag, Slice data)
A namespace for easy access to logging severity values.
BEAST_DEFINE_TESTSUITE(cluster, overlay, ripple)
uint256 getSHA512Half() const
bool addItem(SHAMapNodeType type, boost::intrusive_ptr< SHAMapItem const > item)
boost::intrusive_ptr< Item > make_random_item(beast::xor_shift_engine &r)
void add_random_items(std::size_t n, Table &t, beast::xor_shift_engine &r)
A SHAMap is both a radix tree with a fan-out of 16 and a Merkle tree.
Slice slice() const noexcept
A generic endpoint for log messages.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
void on_fetch(Map &map, SHAMapHash const &hash, Blob const &blob)
sha512_half_hasher::result_type sha512Half(Args const &... args)
Returns the SHA512-Half of a series of objects.
std::optional< Blob > getNode(SHAMapHash const &nodeHash) const override
int add32(std::uint32_t i)
uint256 const & as_uint256() const
TestFilter(Map &map, beast::Journal journal)