20 #include <ripple/app/misc/HashRouter.h>
21 #include <ripple/basics/chrono.h>
22 #include <ripple/beast/unit_test.h>
32 using namespace std::chrono_literals;
42 BEAST_EXPECT(router.
getFlags(key1) == 11111);
44 BEAST_EXPECT(router.
getFlags(key2) == 22222);
53 BEAST_EXPECT(router.
getFlags(key1) == 11111);
62 BEAST_EXPECT(router.
getFlags(key1) == 11111);
63 BEAST_EXPECT(router.
getFlags(key2) == 0);
69 using namespace std::chrono_literals;
77 BEAST_EXPECT(key1 != key2 && key2 != key3 && key3 != key4);
81 BEAST_EXPECT(router.
getFlags(key1) == 12345);
94 BEAST_EXPECT(router.
getFlags(key1) == 12345);
95 BEAST_EXPECT(router.
getFlags(key2) == 9999);
102 BEAST_EXPECT(router.
getFlags(key2) == 9999);
110 BEAST_EXPECT(router.
getFlags(key1) == 0);
111 BEAST_EXPECT(router.
getFlags(key2) == 9999);
112 BEAST_EXPECT(router.
getFlags(key3) == 2222);
121 BEAST_EXPECT(router.
getFlags(key1) == 7654);
122 BEAST_EXPECT(router.
getFlags(key2) == 9999);
123 BEAST_EXPECT(router.
getFlags(key3) == 2222);
133 BEAST_EXPECT(router.
getFlags(key1) == 0);
134 BEAST_EXPECT(router.
getFlags(key2) == 0);
135 BEAST_EXPECT(router.
getFlags(key3) == 0);
136 BEAST_EXPECT(router.
getFlags(key4) == 7890);
147 using namespace std::chrono_literals;
155 BEAST_EXPECT(key1 != key2 && key2 != key3 && key3 != key4);
161 BEAST_EXPECT(
flags == 0);
168 BEAST_EXPECT(
flags == 0);
175 using namespace std::chrono_literals;
180 BEAST_EXPECT(router.
setFlags(key1, 10));
181 BEAST_EXPECT(!router.
setFlags(key1, 10));
182 BEAST_EXPECT(router.
setFlags(key1, 20));
188 using namespace std::chrono_literals;
197 BEAST_EXPECT(peers && peers->empty());
209 BEAST_EXPECT(peers && peers->size() == 3);
220 BEAST_EXPECT(peers && peers->size() == 2);
225 BEAST_EXPECT(peers && peers->size() == 0);
231 using namespace std::chrono_literals;
bool addSuppressionPeer(uint256 const &key, PeerShortID peer)
int getFlags(uint256 const &key)
bool shouldProcess(uint256 const &key, PeerShortID peer, int &flags, std::chrono::seconds tx_interval)
Stopwatch & stopwatch()
Returns an instance of a wall clock.
Routing table for objects identified by hash.
void addSuppression(uint256 const &key)
std::optional< std::set< PeerShortID > > shouldRelay(uint256 const &key)
Determines whether the hashed item should be relayed.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
bool setFlags(uint256 const &key, int flags)
Set the flags on a hash.
BEAST_DEFINE_TESTSUITE(DeliverMin, app, ripple)