rippled
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
xrpl::test::reduce_relay_test Class Reference
Inheritance diagram for xrpl::test::reduce_relay_test:
Inheritance graph
[legend]
Collaboration diagram for xrpl::test::reduce_relay_test:
Collaboration graph
[legend]

Classes

struct  Event
 
struct  Handler
 

Public Member Functions

 reduce_relay_test ()
 
void run () override
 Runs the suite.
 
template<class = void>
void operator() (runner &r)
 Invokes the test using the specified runner.
 
template<class = void>
void pass ()
 Record a successful test condition.
 
template<class F , class String >
bool except (F &&f, String const &reason)
 
template<class F >
bool except (F &&f)
 
template<class E , class F , class String >
bool except (F &&f, String const &reason)
 
template<class E , class F >
bool except (F &&f)
 
template<class F , class String >
bool unexcept (F &&f, String const &reason)
 
template<class F >
bool unexcept (F &&f)
 
std::string const & arg () const
 Return the argument associated with the runner.
 
template<class Condition , class String >
bool unexpected (Condition shouldBeFalse, String const &reason)
 
template<class Condition >
bool unexpected (Condition shouldBeFalse)
 
template<class String >
void fail (String const &reason, char const *file, int line)
 Record a failure.
 
template<class = void>
void fail (std::string const &reason="")
 
template<class Condition >
bool expect (Condition const &shouldBeTrue)
 Evaluate a test condition.
 
template<class Condition , class String >
bool expect (Condition const &shouldBeTrue, String const &reason)
 
template<class Condition >
bool expect (Condition const &shouldBeTrue, char const *file, int line)
 
template<class Condition , class String >
bool expect (Condition const &shouldBeTrue, String const &reason, char const *file, int line)
 

Static Public Member Functions

static suitethis_suite ()
 Returns the "current" running suite.
 

Public Attributes

log_os< char > log
 Logging output stream.
 
testcase_t testcase
 Memberspace for declaring test cases.
 

Protected Types

enum  State { On , Off , WaitReset }
 
enum  EventType { LinkDown = 0 , PeerDisconnected = 1 }
 

Protected Member Functions

void printPeers (std::string const &msg, std::uint16_t validator=0)
 
Peer::id_t sendSquelch (PublicKey const &validator, PeerWPtr const &peerPtr, std::optional< std::uint32_t > duration)
 Send squelch (if duration is set) or unsquelch (if duration not set)
 
void random (bool log)
 Randomly brings the link between a validator and a peer down.
 
bool checkCounting (PublicKey const &validator, bool isCountingState)
 
void doTest (std::string const &msg, bool log, std::function< void(bool)> f)
 
void testInitialRound (bool log)
 Initial counting round: three peers receive message "faster" then others.
 
void testPeerUnsquelchedTooSoon (bool log)
 Receiving message from squelched peer too soon should not change the slot's state to Counting.
 
void testPeerUnsquelched (bool log)
 Receiving message from squelched peer should change the slot's state to Counting.
 
bool propagateAndSquelch (bool log, bool purge=true, bool resetClock=true)
 Propagate enough messages to generate one squelch event.
 
bool propagateNoSquelch (bool log, std::uint16_t nMessages, bool countingState, bool purge=true, bool resetClock=true)
 Send fewer message so that squelch event is not generated.
 
void testNewPeer (bool log)
 Receiving a message from new peer should change the slot's state to Counting.
 
void testSelectedPeerDisconnects (bool log)
 Selected peer disconnects.
 
void testSelectedPeerStopsRelaying (bool log)
 Selected peer stops relaying.
 
void testSquelchedPeerDisconnects (bool log)
 Squelched peer disconnects.
 
void testConfig (bool log)
 
void testBaseSquelchReady (bool log)
 
void testInternalHashRouter (bool log)
 
void testRandomSquelch (bool l)
 
void testHandshake (bool log)
 

Protected Attributes

jtx::Env env_
 
Network network_
 

Private Types

using Slot = reduce_relay::Slot< ManualClock >
 
using id_t = Peer::id_t
 

Private Member Functions

void propagate_abort ()
 

Static Private Member Functions

static suite ** p_this_suite ()
 

Private Attributes

bool abort_ = false
 
bool aborted_ = false
 
runner * runner_ = nullptr
 

Detailed Description

Definition at line 846 of file reduce_relay_test.cpp.

Member Typedef Documentation

◆ Slot

Definition at line 848 of file reduce_relay_test.cpp.

◆ id_t

Definition at line 849 of file reduce_relay_test.cpp.

Member Enumeration Documentation

◆ State

Enumerator
On 
Off 
WaitReset 

Definition at line 879 of file reduce_relay_test.cpp.

◆ EventType

Enumerator
LinkDown 
PeerDisconnected 

Definition at line 880 of file reduce_relay_test.cpp.

Constructor & Destructor Documentation

◆ reduce_relay_test()

xrpl::test::reduce_relay_test::reduce_relay_test ( )

Definition at line 1542 of file reduce_relay_test.cpp.

Member Function Documentation

◆ printPeers()

void xrpl::test::reduce_relay_test::printPeers ( std::string const &  msg,
std::uint16_t  validator = 0 
)
protected

Definition at line 853 of file reduce_relay_test.cpp.

◆ sendSquelch()

Peer::id_t xrpl::test::reduce_relay_test::sendSquelch ( PublicKey const &  validator,
PeerWPtr const &  peerPtr,
std::optional< std::uint32_t duration 
)
protected

Send squelch (if duration is set) or unsquelch (if duration not set)

Definition at line 865 of file reduce_relay_test.cpp.

◆ random()

void xrpl::test::reduce_relay_test::random ( bool  log)
protected

Randomly brings the link between a validator and a peer down.

Randomly disconnects a peer. Those events are generated one at a time.

Definition at line 902 of file reduce_relay_test.cpp.

◆ checkCounting()

bool xrpl::test::reduce_relay_test::checkCounting ( PublicKey const &  validator,
bool  isCountingState 
)
protected

Definition at line 1046 of file reduce_relay_test.cpp.

◆ doTest()

void xrpl::test::reduce_relay_test::doTest ( std::string const &  msg,
bool  log,
std::function< void(bool)>  f 
)
protected

Definition at line 1054 of file reduce_relay_test.cpp.

◆ testInitialRound()

void xrpl::test::reduce_relay_test::testInitialRound ( bool  log)
protected

Initial counting round: three peers receive message "faster" then others.

Once the message count for the three peers reaches threshold the rest of the peers are squelched and the slot for the given validator is in Selected state.

Definition at line 1066 of file reduce_relay_test.cpp.

◆ testPeerUnsquelchedTooSoon()

void xrpl::test::reduce_relay_test::testPeerUnsquelchedTooSoon ( bool  log)
protected

Receiving message from squelched peer too soon should not change the slot's state to Counting.

Definition at line 1075 of file reduce_relay_test.cpp.

◆ testPeerUnsquelched()

void xrpl::test::reduce_relay_test::testPeerUnsquelched ( bool  log)
protected

Receiving message from squelched peer should change the slot's state to Counting.

Definition at line 1086 of file reduce_relay_test.cpp.

◆ propagateAndSquelch()

bool xrpl::test::reduce_relay_test::propagateAndSquelch ( bool  log,
bool  purge = true,
bool  resetClock = true 
)
protected

Propagate enough messages to generate one squelch event.

Definition at line 1095 of file reduce_relay_test.cpp.

◆ propagateNoSquelch()

bool xrpl::test::reduce_relay_test::propagateNoSquelch ( bool  log,
std::uint16_t  nMessages,
bool  countingState,
bool  purge = true,
bool  resetClock = true 
)
protected

Send fewer message so that squelch event is not generated.

Definition at line 1126 of file reduce_relay_test.cpp.

◆ testNewPeer()

void xrpl::test::reduce_relay_test::testNewPeer ( bool  log)
protected

Receiving a message from new peer should change the slot's state to Counting.

Definition at line 1148 of file reduce_relay_test.cpp.

◆ testSelectedPeerDisconnects()

void xrpl::test::reduce_relay_test::testSelectedPeerDisconnects ( bool  log)
protected

Selected peer disconnects.

Should change the state to counting and unsquelch squelched peers.

Definition at line 1160 of file reduce_relay_test.cpp.

◆ testSelectedPeerStopsRelaying()

void xrpl::test::reduce_relay_test::testSelectedPeerStopsRelaying ( bool  log)
protected

Selected peer stops relaying.

Should change the state to counting and unsquelch squelched peers.

Definition at line 1176 of file reduce_relay_test.cpp.

◆ testSquelchedPeerDisconnects()

void xrpl::test::reduce_relay_test::testSquelchedPeerDisconnects ( bool  log)
protected

Squelched peer disconnects.

Should not change the state to counting.

Definition at line 1193 of file reduce_relay_test.cpp.

◆ testConfig()

void xrpl::test::reduce_relay_test::testConfig ( bool  log)
protected

Definition at line 1212 of file reduce_relay_test.cpp.

◆ testBaseSquelchReady()

void xrpl::test::reduce_relay_test::testBaseSquelchReady ( bool  log)
protected

Definition at line 1346 of file reduce_relay_test.cpp.

◆ testInternalHashRouter()

void xrpl::test::reduce_relay_test::testInternalHashRouter ( bool  log)
protected

Definition at line 1373 of file reduce_relay_test.cpp.

◆ testRandomSquelch()

void xrpl::test::reduce_relay_test::testRandomSquelch ( bool  l)
protected

Definition at line 1425 of file reduce_relay_test.cpp.

◆ testHandshake()

void xrpl::test::reduce_relay_test::testHandshake ( bool  log)
protected

Definition at line 1488 of file reduce_relay_test.cpp.

◆ run()

void xrpl::test::reduce_relay_test::run ( )
overridevirtual

Runs the suite.

Implements beast::unit_test::suite.

Definition at line 1553 of file reduce_relay_test.cpp.

◆ this_suite()

static suite * beast::unit_test::suite::this_suite ( )
staticinherited

Returns the "current" running suite.

If no suite is running, nullptr is returned.

Definition at line 153 of file suite.h.

◆ operator()()

template<class >
void beast::unit_test::suite::operator() ( runner r)
inherited

Invokes the test using the specified runner.

Data members are set up here instead of the constructor as a convenience to writing the derived class to avoid repetition of forwarded constructor arguments to the base. Normally this is called by the framework for you.

Definition at line 386 of file suite.h.

◆ pass()

template<class >
void beast::unit_test::suite::pass ( )
inherited

Record a successful test condition.

Definition at line 494 of file suite.h.

◆ fail() [1/2]

template<class String >
void beast::unit_test::suite::fail ( String const &  reason,
char const *  file,
int  line 
)
inherited

Record a failure.

Parameters
reasonOptional text added to the output on a failure.
fileThe source code file where the test failed.
lineThe source code line number where the test failed.

Definition at line 516 of file suite.h.

◆ fail() [2/2]

template<class >
void beast::unit_test::suite::fail ( std::string const &  reason = "")
inherited

Definition at line 503 of file suite.h.

◆ expect() [1/4]

template<class Condition >
bool beast::unit_test::suite::expect ( Condition const &  shouldBeTrue)
inherited

Evaluate a test condition.

This function provides improved logging by incorporating the file name and line number into the reported output on failure, as well as additional text specified by the caller.

Parameters
shouldBeTrueThe condition to test. The condition is evaluated in a boolean context.
reasonOptional added text to output on a failure.
fileThe source code file where the test failed.
lineThe source code line number where the test failed.
Returns
true if the test condition indicates success.

Definition at line 221 of file suite.h.

◆ expect() [2/4]

template<class Condition , class String >
bool beast::unit_test::suite::expect ( Condition const &  shouldBeTrue,
String const &  reason 
)
inherited

Definition at line 403 of file suite.h.

◆ expect() [3/4]

template<class Condition >
bool beast::unit_test::suite::expect ( Condition const &  shouldBeTrue,
char const *  file,
int  line 
)
inherited

Definition at line 232 of file suite.h.

◆ expect() [4/4]

template<class Condition , class String >
bool beast::unit_test::suite::expect ( Condition const &  shouldBeTrue,
String const &  reason,
char const *  file,
int  line 
)
inherited

Definition at line 416 of file suite.h.

◆ except() [1/4]

template<class F , class String >
bool beast::unit_test::suite::except ( F &&  f,
String const &  reason 
)
inherited

Definition at line 431 of file suite.h.

◆ except() [2/4]

template<class F >
bool beast::unit_test::suite::except ( F &&  f)
inherited

Definition at line 251 of file suite.h.

◆ except() [3/4]

template<class E , class F , class String >
bool beast::unit_test::suite::except ( F &&  f,
String const &  reason 
)
inherited

Definition at line 448 of file suite.h.

◆ except() [4/4]

template<class E , class F >
bool beast::unit_test::suite::except ( F &&  f)
inherited

Definition at line 260 of file suite.h.

◆ unexcept() [1/2]

template<class F , class String >
bool beast::unit_test::suite::unexcept ( F &&  f,
String const &  reason 
)
inherited

Definition at line 465 of file suite.h.

◆ unexcept() [2/2]

template<class F >
bool beast::unit_test::suite::unexcept ( F &&  f)
inherited

Definition at line 269 of file suite.h.

◆ arg()

std::string const & beast::unit_test::suite::arg ( ) const
inherited

Return the argument associated with the runner.

Definition at line 276 of file suite.h.

◆ unexpected() [1/2]

template<class Condition , class String >
bool beast::unit_test::suite::unexpected ( Condition  shouldBeFalse,
String const &  reason 
)
inherited

Definition at line 482 of file suite.h.

◆ unexpected() [2/2]

template<class Condition >
bool beast::unit_test::suite::unexpected ( Condition  shouldBeFalse)
inherited

Definition at line 289 of file suite.h.

◆ p_this_suite()

static suite ** beast::unit_test::suite::p_this_suite ( )
staticprivateinherited

Definition at line 298 of file suite.h.

◆ propagate_abort()

void beast::unit_test::suite::propagate_abort ( )
privateinherited

Definition at line 522 of file suite.h.

Member Data Documentation

◆ env_

jtx::Env xrpl::test::reduce_relay_test::env_
protected

Definition at line 1538 of file reduce_relay_test.cpp.

◆ network_

Network xrpl::test::reduce_relay_test::network_
protected

Definition at line 1539 of file reduce_relay_test.cpp.

◆ abort_

bool beast::unit_test::suite::abort_ = false
privateinherited

Definition at line 53 of file suite.h.

◆ aborted_

bool beast::unit_test::suite::aborted_ = false
privateinherited

Definition at line 54 of file suite.h.

◆ runner_

runner* beast::unit_test::suite::runner_ = nullptr
privateinherited

Definition at line 55 of file suite.h.

◆ log

log_os<char> beast::unit_test::suite::log
inherited

Logging output stream.

Text sent to the log output stream will be forwarded to the output stream associated with the runner.

Definition at line 144 of file suite.h.

◆ testcase

testcase_t beast::unit_test::suite::testcase
inherited

Memberspace for declaring test cases.

Definition at line 147 of file suite.h.