xrpld
Loading...
Searching...
No Matches
xrpl::test::XChain_test Struct Reference
Inheritance diagram for xrpl::test::XChain_test:
Collaboration diagram for xrpl::test::XChain_test:

Public Member Functions

XRPAmount reserve (std::uint32_t count)
XRPAmount txFee ()
void testXChainBridgeExtraFields ()
void testXChainCreateBridge ()
void testXChainBridgeCreateConstraints ()
void testXChainCreateBridgeMatrix ()
void testXChainModifyBridge ()
void testXChainCreateClaimID ()
void testXChainCommit ()
void testXChainAddAttestation ()
void testXChainAddClaimNonBatchAttestation ()
void testXChainAddAccountCreateNonBatchAttestation ()
void testXChainClaim ()
void testXChainCreateAccount ()
void testFeeDipsIntoReserve ()
void testXChainDeleteDoor ()
void testBadPublicKey ()
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)
void createMcBridgeObjects (Env &mcEnv)
void createScBridgeObjects (Env &scEnv)
void createBridgeObjects (Env &mcEnv, Env &scEnv)
JValueVec attCreateAcctVec (std::uint64_t createCount, jtx::AnyAmount const &amt, jtx::Account const &dst, std::size_t const numAtts, std::size_t const fromIdx=0)
json::Value createBridge (Account const &acc, json::Value const &bridge=json::ValueType::Null, STAmount const &reward=XRP(1), std::optional< STAmount > const &minAccountCreate=std::nullopt) const
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 SuitethisSuite ()
 Returns the "current" running suite.

Public Attributes

LogOs< char > log
 Logging output stream.
TestcaseT testcase
 Memberspace for declaring test cases.
Account const mcDoor
Account const mcAlice
Account const mcBob
Account const mcCarol
Account const mcGw
Account const scDoor
Account const scAlice
Account const scBob
Account const scCarol
Account const scGw
Account const scAttester
Account const scReward
Account const mcuDoor
Account const mcuAlice
Account const mcuBob
Account const mcuCarol
Account const mcuGw
Account const scuDoor
Account const scuAlice
Account const scuBob
Account const scuCarol
Account const scuGw
IOU const mcUSD
IOU const scUSD
json::Value const jvXRPBridgeRPC
json::Value jvb
json::Value jvub
FeatureBitset const features
std::vector< Signer > const signers
std::vector< Signer > const altSigners
std::vector< Account > const payee
std::vector< Account > const payees
std::uint32_t const quorum {kUtXchainDefaultQuorum}
STAmount const reward
STAmount const splitRewardQuorum
STAmount const splitRewardEveryone
STAmount const tinyReward
STAmount const tinyRewardSplit
STAmount const tinyRewardRemainder
STAmount const oneXrp
STAmount const xrpDust

Static Public Attributes

static constexpr int kDropPerXrp = 1000000

Private Member Functions

void propagateAbort () const

Static Private Member Functions

static Suite ** pThisSuite ()

Private Attributes

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

Detailed Description

Definition at line 368 of file XChain_test.cpp.

Member Function Documentation

◆ reserve()

XRPAmount xrpl::test::XChain_test::reserve ( std::uint32_t count)

Definition at line 371 of file XChain_test.cpp.

◆ txFee()

XRPAmount xrpl::test::XChain_test::txFee ( )

Definition at line 377 of file XChain_test.cpp.

◆ testXChainBridgeExtraFields()

void xrpl::test::XChain_test::testXChainBridgeExtraFields ( )

Definition at line 383 of file XChain_test.cpp.

◆ testXChainCreateBridge()

void xrpl::test::XChain_test::testXChainCreateBridge ( )

Definition at line 414 of file XChain_test.cpp.

◆ testXChainBridgeCreateConstraints()

void xrpl::test::XChain_test::testXChainBridgeCreateConstraints ( )

Bridge create constraints tests.

Define the door's bridge asset collection as the collection of all the issuing assets for which the door account is on the issuing chain and all the locking assets for which the door account is on the locking chain. (note: a door account can simultaneously be on an issuing and locking chain). A new bridge is not a duplicate as long as the new bridge asset collection does not contain any duplicate currencies (even if the issuers differ).

Create bridges:

| Owner | Locking | Issuing | Comment | | a1 | a1 USD/GW | USD/B | |

a2 a2 USD/GW USD/B Same locking & issuing assets
a3 a3 USD/GW USD/a4
a4 a4 USD/GW USD/a4 Same bridge, different accounts
B A USD/GW USD/B
B A EUR/GW USD/B Fail: Same issuing asset
A A USD/B USD/C
A A USD/B EUR/B Fail: Same locking asset
A A USD/C EUR/B Fail: Same locking asset currency
A A USD/GW USD/B Fail: Same bridge not allowed
A B USD/GW USD/A Fail: "A" has USD already
B A EUR/GW USD/B Fail:

Note that, now from sidechain's point of view, A is both a local locking door and a foreign locking door on different bridges. Txns such as commits specify bridge spec, but not the local door account. So we test the transactors can figure out the correct local door account from bridge spec.

Commit to sidechain door accounts: | bridge spec | result case 6 | A -> B | B's balance increase case 7 | C <- A | A's balance increase

We also test ModifyBridge txns modify correct bridges.

Definition at line 520 of file XChain_test.cpp.

◆ testXChainCreateBridgeMatrix()

void xrpl::test::XChain_test::testXChainCreateBridgeMatrix ( )

Definition at line 644 of file XChain_test.cpp.

◆ testXChainModifyBridge()

void xrpl::test::XChain_test::testXChainModifyBridge ( )

test tfClearAccountCreateAmount flag in BridgeModify tx – tx has both minAccountCreateAmount and the flag, temMALFORMED – tx has the flag and also modifies signature reward, tesSUCCESS – XChainCreateAccountCommit tx fail after previous step

Definition at line 922 of file XChain_test.cpp.

◆ testXChainCreateClaimID()

void xrpl::test::XChain_test::testXChainCreateClaimID ( )

Definition at line 1182 of file XChain_test.cpp.

◆ testXChainCommit()

void xrpl::test::XChain_test::testXChainCommit ( )

Definition at line 1266 of file XChain_test.cpp.

◆ testXChainAddAttestation()

void xrpl::test::XChain_test::testXChainAddAttestation ( )

Definition at line 1393 of file XChain_test.cpp.

◆ testXChainAddClaimNonBatchAttestation()

void xrpl::test::XChain_test::testXChainAddClaimNonBatchAttestation ( )

sfAttestationSignerAccount related cases.

Good cases: –G1: master key –G2: regular key –G3: public key and non-exist (unfunded) account match

Bad cases: –B1: disabled master key –B2: single item signer list –B3: public key and non-exist (unfunded) account mismatch –B4: not on signer list –B5: missing sfAttestationSignerAccount field

Definition at line 2133 of file XChain_test.cpp.

◆ testXChainAddAccountCreateNonBatchAttestation()

void xrpl::test::XChain_test::testXChainAddAccountCreateNonBatchAttestation ( )

Definition at line 2299 of file XChain_test.cpp.

◆ testXChainClaim()

void xrpl::test::XChain_test::testXChainClaim ( )

Definition at line 2374 of file XChain_test.cpp.

◆ testXChainCreateAccount()

void xrpl::test::XChain_test::testXChainCreateAccount ( )

Definition at line 3408 of file XChain_test.cpp.

◆ testFeeDipsIntoReserve()

void xrpl::test::XChain_test::testFeeDipsIntoReserve ( )

Definition at line 3562 of file XChain_test.cpp.

◆ testXChainDeleteDoor()

void xrpl::test::XChain_test::testXChainDeleteDoor ( )

Definition at line 3607 of file XChain_test.cpp.

◆ testBadPublicKey()

void xrpl::test::XChain_test::testBadPublicKey ( )

Definition at line 3650 of file XChain_test.cpp.

◆ run()

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

Runs the suite.

Implements beast::unit_test::Suite.

Definition at line 3716 of file XChain_test.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 155 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 388 of file suite.h.

◆ pass()

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

Record a successful test condition.

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

◆ fail() [2/2]

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

Definition at line 509 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 223 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 405 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 234 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 418 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 433 of file suite.h.

◆ except() [2/4]

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

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

◆ except() [4/4]

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

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

◆ unexcept() [2/2]

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

Definition at line 271 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 278 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 484 of file suite.h.

◆ unexpected() [2/2]

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

Definition at line 291 of file suite.h.

◆ pThisSuite()

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

Definition at line 300 of file suite.h.

◆ propagateAbort()

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

Definition at line 528 of file suite.h.

◆ createMcBridgeObjects()

void xrpl::test::jtx::XChainBridgeObjects::createMcBridgeObjects ( Env & mcEnv)
inherited

Definition at line 448 of file xchain_bridge.cpp.

◆ createScBridgeObjects()

void xrpl::test::jtx::XChainBridgeObjects::createScBridgeObjects ( Env & scEnv)
inherited

Definition at line 465 of file xchain_bridge.cpp.

◆ createBridgeObjects()

void xrpl::test::jtx::XChainBridgeObjects::createBridgeObjects ( Env & mcEnv,
Env & scEnv )
inherited

Definition at line 482 of file xchain_bridge.cpp.

◆ attCreateAcctVec()

JValueVec xrpl::test::jtx::XChainBridgeObjects::attCreateAcctVec ( std::uint64_t createCount,
jtx::AnyAmount const & amt,
jtx::Account const & dst,
std::size_t const numAtts,
std::size_t const fromIdx = 0 )
inherited

Definition at line 198 of file xchain_bridge.h.

◆ createBridge()

json::Value xrpl::test::jtx::XChainBridgeObjects::createBridge ( Account const & acc,
json::Value const & bridge = json::ValueType::Null,
STAmount const & reward = XRP(1),
std::optional< STAmount > const & minAccountCreate = std::nullopt ) const
nodiscardinherited

Definition at line 221 of file xchain_bridge.h.

Member Data Documentation

◆ abort_

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

Definition at line 52 of file suite.h.

◆ aborted_

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

Definition at line 53 of file suite.h.

◆ runner_

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

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

◆ testcase

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

Memberspace for declaring test cases.

Definition at line 149 of file suite.h.

◆ mcDoor

Account const xrpl::test::jtx::XChainBridgeObjects::mcDoor
inherited

Definition at line 134 of file xchain_bridge.h.

◆ mcAlice

Account const xrpl::test::jtx::XChainBridgeObjects::mcAlice
inherited

Definition at line 135 of file xchain_bridge.h.

◆ mcBob

Account const xrpl::test::jtx::XChainBridgeObjects::mcBob
inherited

Definition at line 136 of file xchain_bridge.h.

◆ mcCarol

Account const xrpl::test::jtx::XChainBridgeObjects::mcCarol
inherited

Definition at line 137 of file xchain_bridge.h.

◆ mcGw

Account const xrpl::test::jtx::XChainBridgeObjects::mcGw
inherited

Definition at line 138 of file xchain_bridge.h.

◆ scDoor

Account const xrpl::test::jtx::XChainBridgeObjects::scDoor
inherited

Definition at line 139 of file xchain_bridge.h.

◆ scAlice

Account const xrpl::test::jtx::XChainBridgeObjects::scAlice
inherited

Definition at line 140 of file xchain_bridge.h.

◆ scBob

Account const xrpl::test::jtx::XChainBridgeObjects::scBob
inherited

Definition at line 141 of file xchain_bridge.h.

◆ scCarol

Account const xrpl::test::jtx::XChainBridgeObjects::scCarol
inherited

Definition at line 142 of file xchain_bridge.h.

◆ scGw

Account const xrpl::test::jtx::XChainBridgeObjects::scGw
inherited

Definition at line 143 of file xchain_bridge.h.

◆ scAttester

Account const xrpl::test::jtx::XChainBridgeObjects::scAttester
inherited

Definition at line 144 of file xchain_bridge.h.

◆ scReward

Account const xrpl::test::jtx::XChainBridgeObjects::scReward
inherited

Definition at line 145 of file xchain_bridge.h.

◆ mcuDoor

Account const xrpl::test::jtx::XChainBridgeObjects::mcuDoor
inherited

Definition at line 148 of file xchain_bridge.h.

◆ mcuAlice

Account const xrpl::test::jtx::XChainBridgeObjects::mcuAlice
inherited

Definition at line 149 of file xchain_bridge.h.

◆ mcuBob

Account const xrpl::test::jtx::XChainBridgeObjects::mcuBob
inherited

Definition at line 150 of file xchain_bridge.h.

◆ mcuCarol

Account const xrpl::test::jtx::XChainBridgeObjects::mcuCarol
inherited

Definition at line 151 of file xchain_bridge.h.

◆ mcuGw

Account const xrpl::test::jtx::XChainBridgeObjects::mcuGw
inherited

Definition at line 152 of file xchain_bridge.h.

◆ scuDoor

Account const xrpl::test::jtx::XChainBridgeObjects::scuDoor
inherited

Definition at line 153 of file xchain_bridge.h.

◆ scuAlice

Account const xrpl::test::jtx::XChainBridgeObjects::scuAlice
inherited

Definition at line 154 of file xchain_bridge.h.

◆ scuBob

Account const xrpl::test::jtx::XChainBridgeObjects::scuBob
inherited

Definition at line 155 of file xchain_bridge.h.

◆ scuCarol

Account const xrpl::test::jtx::XChainBridgeObjects::scuCarol
inherited

Definition at line 156 of file xchain_bridge.h.

◆ scuGw

Account const xrpl::test::jtx::XChainBridgeObjects::scuGw
inherited

Definition at line 157 of file xchain_bridge.h.

◆ mcUSD

IOU const xrpl::test::jtx::XChainBridgeObjects::mcUSD
inherited

Definition at line 159 of file xchain_bridge.h.

◆ scUSD

IOU const xrpl::test::jtx::XChainBridgeObjects::scUSD
inherited

Definition at line 160 of file xchain_bridge.h.

◆ jvXRPBridgeRPC

json::Value const xrpl::test::jtx::XChainBridgeObjects::jvXRPBridgeRPC
inherited

Definition at line 162 of file xchain_bridge.h.

◆ jvb

json::Value xrpl::test::jtx::XChainBridgeObjects::jvb
inherited

Definition at line 163 of file xchain_bridge.h.

◆ jvub

json::Value xrpl::test::jtx::XChainBridgeObjects::jvub
inherited

Definition at line 164 of file xchain_bridge.h.

◆ features

FeatureBitset const xrpl::test::jtx::XChainBridgeObjects::features
inherited

Definition at line 166 of file xchain_bridge.h.

◆ signers

std::vector<Signer> const xrpl::test::jtx::XChainBridgeObjects::signers
inherited

Definition at line 167 of file xchain_bridge.h.

◆ altSigners

std::vector<Signer> const xrpl::test::jtx::XChainBridgeObjects::altSigners
inherited

Definition at line 168 of file xchain_bridge.h.

◆ payee

std::vector<Account> const xrpl::test::jtx::XChainBridgeObjects::payee
inherited

Definition at line 169 of file xchain_bridge.h.

◆ payees

std::vector<Account> const xrpl::test::jtx::XChainBridgeObjects::payees
inherited

Definition at line 170 of file xchain_bridge.h.

◆ quorum

std::uint32_t const xrpl::test::jtx::XChainBridgeObjects::quorum {kUtXchainDefaultQuorum}
inherited

Definition at line 171 of file xchain_bridge.h.

◆ reward

STAmount const xrpl::test::jtx::XChainBridgeObjects::reward
inherited

Definition at line 173 of file xchain_bridge.h.

◆ splitRewardQuorum

STAmount const xrpl::test::jtx::XChainBridgeObjects::splitRewardQuorum
inherited

Definition at line 174 of file xchain_bridge.h.

◆ splitRewardEveryone

STAmount const xrpl::test::jtx::XChainBridgeObjects::splitRewardEveryone
inherited

Definition at line 175 of file xchain_bridge.h.

◆ tinyReward

STAmount const xrpl::test::jtx::XChainBridgeObjects::tinyReward
inherited

Definition at line 177 of file xchain_bridge.h.

◆ tinyRewardSplit

STAmount const xrpl::test::jtx::XChainBridgeObjects::tinyRewardSplit
inherited

Definition at line 178 of file xchain_bridge.h.

◆ tinyRewardRemainder

STAmount const xrpl::test::jtx::XChainBridgeObjects::tinyRewardRemainder
inherited

Definition at line 179 of file xchain_bridge.h.

◆ oneXrp

STAmount const xrpl::test::jtx::XChainBridgeObjects::oneXrp
inherited

Definition at line 181 of file xchain_bridge.h.

◆ xrpDust

STAmount const xrpl::test::jtx::XChainBridgeObjects::xrpDust
inherited

Definition at line 182 of file xchain_bridge.h.

◆ kDropPerXrp

int xrpl::test::jtx::XChainBridgeObjects::kDropPerXrp = 1000000
staticconstexprinherited

Definition at line 184 of file xchain_bridge.h.