xrpld
Loading...
Searching...
No Matches
xrpl::test::InvariantsVault_test Class Reference
Inheritance diagram for xrpl::test::InvariantsVault_test:
Collaboration diagram for xrpl::test::InvariantsVault_test:

Public Member Functions

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)
 DEPRECATED.
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 Suite * thisSuite ()
 Returns the "current" running suite.

Public Attributes

LogOs< char > log
 Logging output stream.
TestcaseT testcase
 Memberspace for declaring test cases.

Protected Types

enum class  TxAccount : int { None = 0 , A1 , A2 }
using Preclose
using Precheck

Protected Member Functions

test::jtx::Env makeEnv (FeatureBitset features)
void doInvariantCheck (std::vector< std::string > const &expectLogs, Precheck const &precheck, XRPAmount fee=XRPAmount{}, STTx tx=STTx{ttACCOUNT_SET, [](STObject &) {}}, std::initializer_list< TER > ters={tecINVARIANT_FAILED, tefINVARIANT_FAILED}, Preclose const &preclose={}, TxAccount setTxAccount=TxAccount::None, std::source_location const &loc=std::source_location::current(), TER initialResult=tesSUCCESS)
 Run a specific test case to put the ledger into a state that will be detected by an invariant.
void doInvariantCheck (test::jtx::Env &&env, std::vector< std::string > const &expectLogs, Precheck const &precheck, XRPAmount fee=XRPAmount{}, STTx tx=STTx{ttACCOUNT_SET, [](STObject &) {}}, std::initializer_list< TER > ters={tecINVARIANT_FAILED, tefINVARIANT_FAILED}, Preclose const &preclose={}, TxAccount setTxAccount=TxAccount::None, std::source_location const &loc=std::source_location::current(), TER initialResult=tesSUCCESS)
void doInvariantCheck (test::jtx::Env &&env, test::jtx::Account const &a1, test::jtx::Account const &a2, std::vector< std::string > const &expectLogs, Precheck const &precheck, XRPAmount fee=XRPAmount{}, STTx tx=STTx{ttACCOUNT_SET, [](STObject &) {}}, std::initializer_list< TER > ters={tecINVARIANT_FAILED, tefINVARIANT_FAILED}, std::source_location const &loc=std::source_location::current(), TER initialResult=tesSUCCESS)
Keylet createLoanBroker (jtx::Account const &a, jtx::Env &env, jtx::PrettyAsset const &asset)
Runner & runner () const
 Lets a suite compose other suites (e.g.

Static Protected Member Functions

static SLE::pointer makeLoanSle (UInt256 const &loanBrokerID, std::uint32_t loanSeq, AccountID const &borrower)

Private Member Functions

void testVault ()
Keylet makeImpairedVault (test::jtx::Account const &owner, test::jtx::Account const &borrower, test::jtx::Account const &issuer, test::jtx::Env &env)
void testVaultLossExceedsGap ()
void testVaultComputeCoarsestScale ()
void run () override
 Runs the suite.
void propagateAbort () const

Static Private Member Functions

static Suite ** pThisSuite ()

Private Attributes

FeatureBitset const all_ {test::jtx::testableAmendments()}
bool abort_ = false
bool aborted_ = false
Runner * runner_ = nullptr

Detailed Description

Definition at line 63 of file InvariantsVault_test.cpp.

Member Typedef Documentation

◆ Preclose

using xrpl::test::InvariantsBase::Preclose
protectedinherited
Initial value:
bool(test::jtx::Account const& a, test::jtx::Account const& b, test::jtx::Env& env)>
Immutable cryptographic account descriptor.
Definition jtx/Account.h:21
A transaction testing environment.
Definition Env.h:161

Definition at line 50 of file InvariantsBase.h.

◆ Precheck

using xrpl::test::InvariantsBase::Precheck
protectedinherited
Initial value:
bool(test::jtx::Account const& a, test::jtx::Account const& b, ApplyContext& ac)>
State information when applying a tx.

Definition at line 56 of file InvariantsBase.h.

Member Enumeration Documentation

◆ TxAccount

enum class xrpl::test::InvariantsBase::TxAccount : int
strongprotectedinherited
Enumerator
None 
A1 
A2 

Definition at line 59 of file InvariantsBase.h.

Member Function Documentation

◆ testVault()

void xrpl::test::InvariantsVault_test::testVault ( )
private

Definition at line 68 of file InvariantsVault_test.cpp.

◆ makeImpairedVault()

Keylet xrpl::test::InvariantsVault_test::makeImpairedVault ( test::jtx::Account const & owner,
test::jtx::Account const & borrower,
test::jtx::Account const & issuer,
test::jtx::Env & env )
private

Definition at line 2947 of file InvariantsVault_test.cpp.

◆ testVaultLossExceedsGap()

void xrpl::test::InvariantsVault_test::testVaultLossExceedsGap ( )
private

Definition at line 3050 of file InvariantsVault_test.cpp.

◆ testVaultComputeCoarsestScale()

void xrpl::test::InvariantsVault_test::testVaultComputeCoarsestScale ( )
private

Definition at line 3143 of file InvariantsVault_test.cpp.

◆ run()

void xrpl::test::InvariantsVault_test::run ( )
overrideprivatevirtual

Runs the suite.

Implements beast::unit_test::Suite.

Definition at line 3274 of file InvariantsVault_test.cpp.

◆ makeEnv()

test::jtx::Env xrpl::test::InvariantsBase::makeEnv ( FeatureBitset features)
protectedinherited

Definition at line 47 of file InvariantsBase.cpp.

◆ doInvariantCheck() [1/3]

void xrpl::test::InvariantsBase::doInvariantCheck ( std::vector< std::string > const & expectLogs,
Precheck const & precheck,
XRPAmount fee = XRPAmount{},
STTx tx = STTx{ttACCOUNT_SET, [](STObject&) {}},
std::initializer_list< TER > ters = {tecINVARIANT_FAILED, tefINVARIANT_FAILED},
Preclose const & preclose = {},
TxAccount setTxAccount = TxAccount::None,
std::source_location const & loc = std::source_location::current(),
TER initialResult = tesSUCCESS )
protectedinherited

Run a specific test case to put the ledger into a state that will be detected by an invariant.

Simulates the actions of a transaction that would violate an invariant.

Parameters
expectLogsOne or more messages related to the failing invariant that should be in the log output
precheckSee "Precheck" above
feeIf provided, the fee amount paid by the simulated transaction.
txA mock transaction that took the actions to trigger the invariant. In most cases, only the type matters.
tersThe TER results expected on the two passes of the invariant checker.
precloseSee "Preclose" above. Note that @preclose runs before @precheck, but is the last parameter for historical reasons
setTxAccountoptionally set to add sfAccount to tx (either A1 or A2)

Definition at line 53 of file InvariantsBase.cpp.

◆ doInvariantCheck() [2/3]

void xrpl::test::InvariantsBase::doInvariantCheck ( test::jtx::Env && env,
std::vector< std::string > const & expectLogs,
Precheck const & precheck,
XRPAmount fee = XRPAmount{},
STTx tx = STTx{ttACCOUNT_SET, [](STObject&) {}},
std::initializer_list< TER > ters = {tecINVARIANT_FAILED, tefINVARIANT_FAILED},
Preclose const & preclose = {},
TxAccount setTxAccount = TxAccount::None,
std::source_location const & loc = std::source_location::current(),
TER initialResult = tesSUCCESS )
protectedinherited

Definition at line 78 of file InvariantsBase.cpp.

◆ doInvariantCheck() [3/3]

void xrpl::test::InvariantsBase::doInvariantCheck ( test::jtx::Env && env,
test::jtx::Account const & a1,
test::jtx::Account const & a2,
std::vector< std::string > const & expectLogs,
Precheck const & precheck,
XRPAmount fee = XRPAmount{},
STTx tx = STTx{ttACCOUNT_SET, [](STObject&) {}},
std::initializer_list< TER > ters = {tecINVARIANT_FAILED, tefINVARIANT_FAILED},
std::source_location const & loc = std::source_location::current(),
TER initialResult = tesSUCCESS )
protectedinherited

Definition at line 107 of file InvariantsBase.cpp.

◆ createLoanBroker()

Keylet xrpl::test::InvariantsBase::createLoanBroker ( jtx::Account const & a,
jtx::Env & env,
jtx::PrettyAsset const & asset )
protectedinherited

Definition at line 179 of file InvariantsBase.cpp.

◆ makeLoanSle()

SLE::pointer xrpl::test::InvariantsBase::makeLoanSle ( UInt256 const & loanBrokerID,
std::uint32_t loanSeq,
AccountID const & borrower )
staticprotectedinherited

Definition at line 213 of file InvariantsBase.cpp.

◆ thisSuite()

Suite * beast::unit_test::Suite::thisSuite ( )
staticinherited

Returns the "current" running suite.

If no suite is running, nullptr is returned.

Definition at line 162 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 420 of file suite.h.

◆ pass()

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

Record a successful test condition.

Definition at line 532 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 554 of file suite.h.

◆ fail() [2/2]

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

Definition at line 541 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 235 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 437 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 246 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 450 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 465 of file suite.h.

◆ except() [2/4]

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

Definition at line 265 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 482 of file suite.h.

◆ except() [4/4]

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

Definition at line 274 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 499 of file suite.h.

◆ unexcept() [2/2]

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

Definition at line 283 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 292 of file suite.h.

◆ runner()

Runner & beast::unit_test::Suite::runner ( ) const
protectedinherited

Lets a suite compose other suites (e.g.

an aggregator that reruns a group of related suites under its own name) via SuiteInfo::run.

Returns
The runner this suite is executing under.

Definition at line 305 of file suite.h.

◆ unexpected() [1/2]

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

DEPRECATED.

Returns
true if the test condition indicates success(a false value)

Definition at line 516 of file suite.h.

◆ unexpected() [2/2]

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

Definition at line 321 of file suite.h.

◆ pThisSuite()

Suite ** beast::unit_test::Suite::pThisSuite ( )
staticprivateinherited

Definition at line 330 of file suite.h.

◆ propagateAbort()

void beast::unit_test::Suite::propagateAbort ( ) const
privateinherited

Definition at line 560 of file suite.h.

Member Data Documentation

◆ all_

FeatureBitset const xrpl::test::InvariantsVault_test::all_ {test::jtx::testableAmendments()}
private

Definition at line 65 of file InvariantsVault_test.cpp.

◆ abort_

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

Definition at line 54 of file suite.h.

◆ aborted_

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

Definition at line 55 of file suite.h.

◆ runner_

Runner* beast::unit_test::Suite::runner_ = nullptr
privateinherited

Definition at line 56 of file suite.h.

◆ log

LogOs<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 150 of file suite.h.

◆ testcase

TestcaseT beast::unit_test::Suite::testcase
inherited

Memberspace for declaring test cases.

Definition at line 155 of file suite.h.