mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-01 16:05:52 +00:00
enable test w/ features
This commit is contained in:
@@ -203,14 +203,14 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testEnablement()
|
testEnablement(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Enablement");
|
testcase("Enablement");
|
||||||
|
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob");
|
env.fund(XRP(5000), "alice", "bob");
|
||||||
env(escrow("alice", "bob", XRP(1000)), finish_time(env.now() + 1s));
|
env(escrow("alice", "bob", XRP(1000)), finish_time(env.now() + 1s));
|
||||||
env.close();
|
env.close();
|
||||||
@@ -239,14 +239,14 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testTiming()
|
testTiming(FeatureBitset features)
|
||||||
{
|
{
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
|
|
||||||
{
|
{
|
||||||
testcase("Timing: Finish Only");
|
testcase("Timing: Finish Only");
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob");
|
env.fund(XRP(5000), "alice", "bob");
|
||||||
env.close();
|
env.close();
|
||||||
|
|
||||||
@@ -268,7 +268,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
testcase("Timing: Cancel Only");
|
testcase("Timing: Cancel Only");
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob");
|
env.fund(XRP(5000), "alice", "bob");
|
||||||
env.close();
|
env.close();
|
||||||
|
|
||||||
@@ -300,7 +300,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
testcase("Timing: Finish and Cancel -> Finish");
|
testcase("Timing: Finish and Cancel -> Finish");
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob");
|
env.fund(XRP(5000), "alice", "bob");
|
||||||
env.close();
|
env.close();
|
||||||
|
|
||||||
@@ -334,7 +334,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
testcase("Timing: Finish and Cancel -> Cancel");
|
testcase("Timing: Finish and Cancel -> Cancel");
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob");
|
env.fund(XRP(5000), "alice", "bob");
|
||||||
env.close();
|
env.close();
|
||||||
|
|
||||||
@@ -376,14 +376,14 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testTags()
|
testTags(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Tags");
|
testcase("Tags");
|
||||||
|
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
@@ -412,7 +412,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testDisallowXRP()
|
testDisallowXRP(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Disallow XRP");
|
testcase("Disallow XRP");
|
||||||
|
|
||||||
@@ -432,7 +432,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
{
|
{
|
||||||
// Ignore the "asfDisallowXRP" account flag, which we should
|
// Ignore the "asfDisallowXRP" account flag, which we should
|
||||||
// have been doing before.
|
// have been doing before.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
env.fund(XRP(5000), "bob", "george");
|
env.fund(XRP(5000), "bob", "george");
|
||||||
env(fset("george", asfDisallowXRP));
|
env(fset("george", asfDisallowXRP));
|
||||||
@@ -441,7 +441,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
test1571()
|
test1571(FeatureBitset features)
|
||||||
{
|
{
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
@@ -483,7 +483,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
{
|
{
|
||||||
testcase("Implied Finish Time (with fix1571)");
|
testcase("Implied Finish Time (with fix1571)");
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob", "carol");
|
env.fund(XRP(5000), "alice", "bob", "carol");
|
||||||
env.close();
|
env.close();
|
||||||
|
|
||||||
@@ -510,14 +510,14 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testFails()
|
testFails(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Failure Cases");
|
testcase("Failure Cases");
|
||||||
|
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob");
|
env.fund(XRP(5000), "alice", "bob");
|
||||||
env.close();
|
env.close();
|
||||||
|
|
||||||
@@ -642,7 +642,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testLockup()
|
testLockup(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Lockup");
|
testcase("Lockup");
|
||||||
|
|
||||||
@@ -651,7 +651,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
// Unconditional
|
// Unconditional
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob");
|
env.fund(XRP(5000), "alice", "bob");
|
||||||
auto const seq = env.seq("alice");
|
auto const seq = env.seq("alice");
|
||||||
env(escrow("alice", "alice", XRP(1000)),
|
env(escrow("alice", "alice", XRP(1000)),
|
||||||
@@ -675,7 +675,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
// Unconditionally pay from Alice to Bob. Zelda (neither source nor
|
// Unconditionally pay from Alice to Bob. Zelda (neither source nor
|
||||||
// destination) signs all cancels and finishes. This shows that
|
// destination) signs all cancels and finishes. This shows that
|
||||||
// Escrow will make a payment to Bob with no intervention from Bob.
|
// Escrow will make a payment to Bob with no intervention from Bob.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob", "zelda");
|
env.fund(XRP(5000), "alice", "bob", "zelda");
|
||||||
auto const seq = env.seq("alice");
|
auto const seq = env.seq("alice");
|
||||||
env(escrow("alice", "bob", XRP(1000)), finish_time(env.now() + 5s));
|
env(escrow("alice", "bob", XRP(1000)), finish_time(env.now() + 5s));
|
||||||
@@ -700,7 +700,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Bob sets DepositAuth so only Bob can finish the escrow.
|
// Bob sets DepositAuth so only Bob can finish the escrow.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
env.fund(XRP(5000), "alice", "bob", "zelda");
|
env.fund(XRP(5000), "alice", "bob", "zelda");
|
||||||
env(fset("bob", asfDepositAuth));
|
env(fset("bob", asfDepositAuth));
|
||||||
@@ -738,7 +738,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
{
|
{
|
||||||
// Bob sets DepositAuth but preauthorizes Zelda, so Zelda can
|
// Bob sets DepositAuth but preauthorizes Zelda, so Zelda can
|
||||||
// finish the escrow.
|
// finish the escrow.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
env.fund(XRP(5000), "alice", "bob", "zelda");
|
env.fund(XRP(5000), "alice", "bob", "zelda");
|
||||||
env(fset("bob", asfDepositAuth));
|
env(fset("bob", asfDepositAuth));
|
||||||
@@ -765,7 +765,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Conditional
|
// Conditional
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob");
|
env.fund(XRP(5000), "alice", "bob");
|
||||||
auto const seq = env.seq("alice");
|
auto const seq = env.seq("alice");
|
||||||
env(escrow("alice", "alice", XRP(1000)),
|
env(escrow("alice", "alice", XRP(1000)),
|
||||||
@@ -806,7 +806,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Self-escrowed conditional with DepositAuth.
|
// Self-escrowed conditional with DepositAuth.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
env.fund(XRP(5000), "alice", "bob");
|
env.fund(XRP(5000), "alice", "bob");
|
||||||
auto const seq = env.seq("alice");
|
auto const seq = env.seq("alice");
|
||||||
@@ -842,7 +842,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Self-escrowed conditional with DepositAuth and DepositPreauth.
|
// Self-escrowed conditional with DepositAuth and DepositPreauth.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
env.fund(XRP(5000), "alice", "bob", "zelda");
|
env.fund(XRP(5000), "alice", "bob", "zelda");
|
||||||
auto const seq = env.seq("alice");
|
auto const seq = env.seq("alice");
|
||||||
@@ -885,7 +885,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testEscrowConditions()
|
testEscrowConditions(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Escrow with CryptoConditions");
|
testcase("Escrow with CryptoConditions");
|
||||||
|
|
||||||
@@ -893,7 +893,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
|
|
||||||
{ // Test cryptoconditions
|
{ // Test cryptoconditions
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob", "carol");
|
env.fund(XRP(5000), "alice", "bob", "carol");
|
||||||
auto const seq = env.seq("alice");
|
auto const seq = env.seq("alice");
|
||||||
BEAST_EXPECT((*env.le("alice"))[sfOwnerCount] == 0);
|
BEAST_EXPECT((*env.le("alice"))[sfOwnerCount] == 0);
|
||||||
@@ -966,7 +966,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
env(cancel("bob", "carol", 1), ter(tecNO_TARGET));
|
env(cancel("bob", "carol", 1), ter(tecNO_TARGET));
|
||||||
}
|
}
|
||||||
{ // Test cancel when condition is present
|
{ // Test cancel when condition is present
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob", "carol");
|
env.fund(XRP(5000), "alice", "bob", "carol");
|
||||||
auto const seq = env.seq("alice");
|
auto const seq = env.seq("alice");
|
||||||
BEAST_EXPECT((*env.le("alice"))[sfOwnerCount] == 0);
|
BEAST_EXPECT((*env.le("alice"))[sfOwnerCount] == 0);
|
||||||
@@ -982,7 +982,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
BEAST_EXPECT(!env.le(keylet::escrow(Account("alice").id(), seq)));
|
BEAST_EXPECT(!env.le(keylet::escrow(Account("alice").id(), seq)));
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob", "carol");
|
env.fund(XRP(5000), "alice", "bob", "carol");
|
||||||
env.close();
|
env.close();
|
||||||
auto const seq = env.seq("alice");
|
auto const seq = env.seq("alice");
|
||||||
@@ -1004,7 +1004,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
env.require(balance("carol", XRP(5000)));
|
env.require(balance("carol", XRP(5000)));
|
||||||
}
|
}
|
||||||
{ // Test long & short conditions during creation
|
{ // Test long & short conditions during creation
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob", "carol");
|
env.fund(XRP(5000), "alice", "bob", "carol");
|
||||||
|
|
||||||
std::vector<std::uint8_t> v;
|
std::vector<std::uint8_t> v;
|
||||||
@@ -1061,7 +1061,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
env.require(balance("carol", XRP(6000)));
|
env.require(balance("carol", XRP(6000)));
|
||||||
}
|
}
|
||||||
{ // Test long and short conditions & fulfillments during finish
|
{ // Test long and short conditions & fulfillments during finish
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob", "carol");
|
env.fund(XRP(5000), "alice", "bob", "carol");
|
||||||
|
|
||||||
std::vector<std::uint8_t> cv;
|
std::vector<std::uint8_t> cv;
|
||||||
@@ -1207,7 +1207,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{ // Test empty condition during creation and
|
{ // Test empty condition during creation and
|
||||||
// empty condition & fulfillment during finish
|
// empty condition & fulfillment during finish
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob", "carol");
|
env.fund(XRP(5000), "alice", "bob", "carol");
|
||||||
|
|
||||||
env(escrow("alice", "carol", XRP(1000)),
|
env(escrow("alice", "carol", XRP(1000)),
|
||||||
@@ -1253,7 +1253,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{ // Test a condition other than PreimageSha256, which
|
{ // Test a condition other than PreimageSha256, which
|
||||||
// would require a separate amendment
|
// would require a separate amendment
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), "alice", "bob");
|
env.fund(XRP(5000), "alice", "bob");
|
||||||
|
|
||||||
std::array<std::uint8_t, 45> cb = {
|
std::array<std::uint8_t, 45> cb = {
|
||||||
@@ -1273,7 +1273,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testMetaAndOwnership()
|
testMetaAndOwnership(FeatureBitset features)
|
||||||
{
|
{
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
@@ -1285,7 +1285,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
{
|
{
|
||||||
testcase("Metadata to self");
|
testcase("Metadata to self");
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), alice, bruce, carol);
|
env.fund(XRP(5000), alice, bruce, carol);
|
||||||
auto const aseq = env.seq(alice);
|
auto const aseq = env.seq(alice);
|
||||||
auto const bseq = env.seq(bruce);
|
auto const bseq = env.seq(bruce);
|
||||||
@@ -1360,7 +1360,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
{
|
{
|
||||||
testcase("Metadata to other");
|
testcase("Metadata to other");
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), alice, bruce, carol);
|
env.fund(XRP(5000), alice, bruce, carol);
|
||||||
auto const aseq = env.seq(alice);
|
auto const aseq = env.seq(alice);
|
||||||
auto const bseq = env.seq(bruce);
|
auto const bseq = env.seq(bruce);
|
||||||
@@ -1450,13 +1450,13 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testConsequences()
|
testConsequences(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Consequences");
|
testcase("Consequences");
|
||||||
|
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
env.memoize("alice");
|
env.memoize("alice");
|
||||||
env.memoize("bob");
|
env.memoize("bob");
|
||||||
@@ -1510,7 +1510,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testEscrowWithTickets()
|
testEscrowWithTickets(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Escrow with tickets");
|
testcase("Escrow with tickets");
|
||||||
|
|
||||||
@@ -1521,7 +1521,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
// Create escrow and finish using tickets.
|
// Create escrow and finish using tickets.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), alice, bob);
|
env.fund(XRP(5000), alice, bob);
|
||||||
env.close();
|
env.close();
|
||||||
|
|
||||||
@@ -1582,7 +1582,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
// Create escrow and cancel using tickets.
|
// Create escrow and cancel using tickets.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), alice, bob);
|
env.fund(XRP(5000), alice, bob);
|
||||||
env.close();
|
env.close();
|
||||||
|
|
||||||
@@ -1649,14 +1649,14 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICEnablement()
|
testICEnablement(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("IC Enablement");
|
testcase("IC Enablement");
|
||||||
|
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -1699,14 +1699,14 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICTiming()
|
testICTiming(FeatureBitset features)
|
||||||
{
|
{
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
|
|
||||||
{
|
{
|
||||||
testcase("Timing: IC Finish Only");
|
testcase("Timing: IC Finish Only");
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -1738,7 +1738,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
testcase("Timing: IC Cancel Only");
|
testcase("Timing: IC Cancel Only");
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -1782,7 +1782,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
testcase("Timing: IC Finish and Cancel -> Finish");
|
testcase("Timing: IC Finish and Cancel -> Finish");
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -1828,7 +1828,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
testcase("Timing: IC Finish and Cancel -> Cancel");
|
testcase("Timing: IC Finish and Cancel -> Cancel");
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -1882,14 +1882,14 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICTags()
|
testICTags(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("IC Tags");
|
testcase("IC Tags");
|
||||||
|
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -1927,7 +1927,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testIC1571()
|
testIC1571(FeatureBitset features)
|
||||||
{
|
{
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
@@ -1963,7 +1963,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
fee(1500));
|
fee(1500));
|
||||||
env.close();
|
env.close();
|
||||||
env(finish(carol, alice, seq1), fee(1500));
|
env(finish(carol, alice, seq1), fee(1500));
|
||||||
BEAST_EXPECT(env.balance(bob).value() == USD(5100));
|
BEAST_EXPECT(env.balance(bob, USD.issue()).value() == USD(5100));
|
||||||
|
|
||||||
env.close();
|
env.close();
|
||||||
|
|
||||||
@@ -1979,13 +1979,13 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
condition(cb1),
|
condition(cb1),
|
||||||
fulfillment(fb1),
|
fulfillment(fb1),
|
||||||
fee(1500));
|
fee(1500));
|
||||||
BEAST_EXPECT(env.balance(bob).value() == USD(5200));
|
BEAST_EXPECT(env.balance(bob, USD.issue()).value() == USD(5200));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
testcase("IC Implied Finish Time (with fix1571)");
|
testcase("IC Implied Finish Time (with fix1571)");
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2021,19 +2021,19 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
condition(cb1),
|
condition(cb1),
|
||||||
fulfillment(fb1),
|
fulfillment(fb1),
|
||||||
fee(1500));
|
fee(1500));
|
||||||
BEAST_EXPECT(env.balance(bob).value() == USD(5100));
|
BEAST_EXPECT(env.balance(bob, USD.issue()).value() == USD(5100));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICFails()
|
testICFails(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("IC Failure Cases");
|
testcase("IC Failure Cases");
|
||||||
|
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2234,7 +2234,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICLockup()
|
testICLockup(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("IC Lockup");
|
testcase("IC Lockup");
|
||||||
|
|
||||||
@@ -2243,7 +2243,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
// Unconditional
|
// Unconditional
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2288,7 +2288,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
// Unconditionally pay from Alice to Bob. Zelda (neither source nor
|
// Unconditionally pay from Alice to Bob. Zelda (neither source nor
|
||||||
// destination) signs all cancels and finishes. This shows that
|
// destination) signs all cancels and finishes. This shows that
|
||||||
// Escrow will make a payment to Bob with no intervention from Bob.
|
// Escrow will make a payment to Bob with no intervention from Bob.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2337,7 +2337,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Bob sets DepositAuth so only Bob can finish the escrow.
|
// Bob sets DepositAuth so only Bob can finish the escrow.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2401,7 +2401,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
{
|
{
|
||||||
// Bob sets DepositAuth but preauthorizes Zelda, so Zelda can
|
// Bob sets DepositAuth but preauthorizes Zelda, so Zelda can
|
||||||
// finish the escrow.
|
// finish the escrow.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2452,7 +2452,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Conditional
|
// Conditional
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2511,7 +2511,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Self-escrowed conditional with DepositAuth.
|
// Self-escrowed conditional with DepositAuth.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2565,7 +2565,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Self-escrowed conditional with DepositAuth and DepositPreauth.
|
// Self-escrowed conditional with DepositAuth and DepositPreauth.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2629,7 +2629,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICEscrowConditions()
|
testICEscrowConditions(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("IC Escrow with CryptoConditions");
|
testcase("IC Escrow with CryptoConditions");
|
||||||
|
|
||||||
@@ -2637,7 +2637,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
|
|
||||||
{ // Test cryptoconditions
|
{ // Test cryptoconditions
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2730,7 +2730,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
env(cancel(bob, carol, 1), ter(tecNO_TARGET));
|
env(cancel(bob, carol, 1), ter(tecNO_TARGET));
|
||||||
}
|
}
|
||||||
{ // Test cancel when condition is present
|
{ // Test cancel when condition is present
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2770,7 +2770,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
BEAST_EXPECT(!env.le(keylet::escrow(Account(alice).id(), seq)));
|
BEAST_EXPECT(!env.le(keylet::escrow(Account(alice).id(), seq)));
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2808,7 +2808,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
env.require(balance(carol, USD(5000)));
|
env.require(balance(carol, USD(5000)));
|
||||||
}
|
}
|
||||||
{ // Test long & short conditions during creation
|
{ // Test long & short conditions during creation
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2886,7 +2886,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
env.require(balance(carol, USD(6000)));
|
env.require(balance(carol, USD(6000)));
|
||||||
}
|
}
|
||||||
{ // Test long and short conditions & fulfillments during finish
|
{ // Test long and short conditions & fulfillments during finish
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -3052,7 +3052,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{ // Test empty condition during creation and
|
{ // Test empty condition during creation and
|
||||||
// empty condition & fulfillment during finish
|
// empty condition & fulfillment during finish
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -3119,7 +3119,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{ // Test a condition other than PreimageSha256, which
|
{ // Test a condition other than PreimageSha256, which
|
||||||
// would require a separate amendment
|
// would require a separate amendment
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -3152,7 +3152,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICMetaAndOwnership()
|
testICMetaAndOwnership(FeatureBitset features)
|
||||||
{
|
{
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
@@ -3164,7 +3164,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
{
|
{
|
||||||
testcase("Metadata to self");
|
testcase("Metadata to self");
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), alice, bruce, carol);
|
env.fund(XRP(5000), alice, bruce, carol);
|
||||||
auto const aseq = env.seq(alice);
|
auto const aseq = env.seq(alice);
|
||||||
auto const bseq = env.seq(bruce);
|
auto const bseq = env.seq(bruce);
|
||||||
@@ -3239,7 +3239,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
{
|
{
|
||||||
testcase("Metadata to other");
|
testcase("Metadata to other");
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), alice, bruce, carol);
|
env.fund(XRP(5000), alice, bruce, carol);
|
||||||
auto const aseq = env.seq(alice);
|
auto const aseq = env.seq(alice);
|
||||||
auto const bseq = env.seq(bruce);
|
auto const bseq = env.seq(bruce);
|
||||||
@@ -3329,13 +3329,13 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICConsequences()
|
testICConsequences(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Consequences");
|
testcase("Consequences");
|
||||||
|
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
env.memoize("alice");
|
env.memoize("alice");
|
||||||
env.memoize("bob");
|
env.memoize("bob");
|
||||||
@@ -3389,7 +3389,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICEscrowWithTickets()
|
testICEscrowWithTickets(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Escrow with tickets");
|
testcase("Escrow with tickets");
|
||||||
|
|
||||||
@@ -3400,7 +3400,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
// Create escrow and finish using tickets.
|
// Create escrow and finish using tickets.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
env.fund(XRP(5000), alice, bob);
|
env.fund(XRP(5000), alice, bob);
|
||||||
|
|
||||||
@@ -3463,7 +3463,7 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
// Create escrow and cancel using tickets.
|
// Create escrow and cancel using tickets.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(5000), alice, bob);
|
env.fund(XRP(5000), alice, bob);
|
||||||
env.close();
|
env.close();
|
||||||
|
|
||||||
@@ -3530,30 +3530,39 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
run() override
|
testWithFeats(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testEnablement();
|
testEnablement(features);
|
||||||
testTiming();
|
testTiming(features);
|
||||||
testTags();
|
testTags(features);
|
||||||
testDisallowXRP();
|
testDisallowXRP(features);
|
||||||
test1571();
|
test1571(features);
|
||||||
testFails();
|
testFails(features);
|
||||||
testLockup();
|
testLockup(features);
|
||||||
testEscrowConditions();
|
testEscrowConditions(features);
|
||||||
testMetaAndOwnership();
|
testMetaAndOwnership(features);
|
||||||
testConsequences();
|
testConsequences(features);
|
||||||
testEscrowWithTickets();
|
testEscrowWithTickets(features);
|
||||||
testICEnablement();
|
testICEnablement(features);
|
||||||
testICTiming();
|
testICTiming(features);
|
||||||
testICTags();
|
testICTags(features);
|
||||||
// testICDisallowXRP()
|
// testICDisallowXRP(features)
|
||||||
testIC1571();
|
testIC1571(features);
|
||||||
testICFails();
|
testICFails(features);
|
||||||
testICLockup();
|
testICLockup(features);
|
||||||
testICEscrowConditions();
|
testICEscrowConditions(features);
|
||||||
// testICMetaAndOwnership();
|
// testICMetaAndOwnership(features);
|
||||||
// testICConsequences();
|
// testICConsequences(features);
|
||||||
// testEscrowWithTickets();
|
// testEscrowWithTickets(features);
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
void
|
||||||
|
run() override
|
||||||
|
{
|
||||||
|
using namespace test::jtx;
|
||||||
|
FeatureBitset const all{supported_amendments()};
|
||||||
|
testWithFeats(all);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -206,12 +206,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testSimple()
|
testSimple(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("simple");
|
testcase("simple");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
env.fund(XRP(10000), alice, bob);
|
env.fund(XRP(10000), alice, bob);
|
||||||
@@ -373,7 +373,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testCancelAfter()
|
testCancelAfter(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("cancel after");
|
testcase("cancel after");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
@@ -383,7 +383,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
auto const carol = Account("carol");
|
auto const carol = Account("carol");
|
||||||
{
|
{
|
||||||
// If dst claims after cancel after, channel closes
|
// If dst claims after cancel after, channel closes
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice, bob);
|
env.fund(XRP(10000), alice, bob);
|
||||||
auto const pk = alice.pk();
|
auto const pk = alice.pk();
|
||||||
auto const settleDelay = 100s;
|
auto const settleDelay = 100s;
|
||||||
@@ -415,7 +415,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Third party can close after cancel after
|
// Third party can close after cancel after
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice, bob, carol);
|
env.fund(XRP(10000), alice, bob, carol);
|
||||||
auto const pk = alice.pk();
|
auto const pk = alice.pk();
|
||||||
auto const settleDelay = 100s;
|
auto const settleDelay = 100s;
|
||||||
@@ -438,12 +438,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testExpiration()
|
testExpiration(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("expiration");
|
testcase("expiration");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const carol = Account("carol");
|
auto const carol = Account("carol");
|
||||||
@@ -504,12 +504,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testSettleDelay()
|
testSettleDelay(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("settle delay");
|
testcase("settle delay");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
env.fund(XRP(10000), alice, bob);
|
env.fund(XRP(10000), alice, bob);
|
||||||
@@ -565,12 +565,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testCloseDry()
|
testCloseDry(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("close dry");
|
testcase("close dry");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
env.fund(XRP(10000), alice, bob);
|
env.fund(XRP(10000), alice, bob);
|
||||||
@@ -599,13 +599,13 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testDefaultAmount()
|
testDefaultAmount(FeatureBitset features)
|
||||||
{
|
{
|
||||||
// auth amount defaults to balance if not present
|
// auth amount defaults to balance if not present
|
||||||
testcase("default amount");
|
testcase("default amount");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
env.fund(XRP(10000), alice, bob);
|
env.fund(XRP(10000), alice, bob);
|
||||||
@@ -653,7 +653,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testDisallowXRP()
|
testDisallowXRP(FeatureBitset features)
|
||||||
{
|
{
|
||||||
// auth amount defaults to balance if not present
|
// auth amount defaults to balance if not present
|
||||||
testcase("Disallow XRP");
|
testcase("Disallow XRP");
|
||||||
@@ -675,7 +675,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
{
|
{
|
||||||
// Create a channel where dst disallows XRP. Ignore that flag,
|
// Create a channel where dst disallows XRP. Ignore that flag,
|
||||||
// since it's just advisory.
|
// since it's just advisory.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice, bob);
|
env.fund(XRP(10000), alice, bob);
|
||||||
env(fset(bob, asfDisallowXRP));
|
env(fset(bob, asfDisallowXRP));
|
||||||
auto const chan = channel(alice, bob, env.seq(alice));
|
auto const chan = channel(alice, bob, env.seq(alice));
|
||||||
@@ -700,7 +700,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
// Claim to a channel where dst disallows XRP (channel is
|
// Claim to a channel where dst disallows XRP (channel is
|
||||||
// created before disallow xrp is set). Ignore that flag
|
// created before disallow xrp is set). Ignore that flag
|
||||||
// since it is just advisory.
|
// since it is just advisory.
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice, bob);
|
env.fund(XRP(10000), alice, bob);
|
||||||
auto const chan = channel(alice, bob, env.seq(alice));
|
auto const chan = channel(alice, bob, env.seq(alice));
|
||||||
env(create(alice, bob, XRP(1000), 3600s, alice.pk()));
|
env(create(alice, bob, XRP(1000), 3600s, alice.pk()));
|
||||||
@@ -713,14 +713,14 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testDstTag()
|
testDstTag(FeatureBitset features)
|
||||||
{
|
{
|
||||||
// auth amount defaults to balance if not present
|
// auth amount defaults to balance if not present
|
||||||
testcase("Dst Tag");
|
testcase("Dst Tag");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
// Create a channel where dst disallows XRP
|
// Create a channel where dst disallows XRP
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
env.fund(XRP(10000), alice, bob);
|
env.fund(XRP(10000), alice, bob);
|
||||||
@@ -743,7 +743,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testDepositAuth()
|
testDepositAuth(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Deposit Authorization");
|
testcase("Deposit Authorization");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
@@ -753,7 +753,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const carol = Account("carol");
|
auto const carol = Account("carol");
|
||||||
{
|
{
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice, bob, carol);
|
env.fund(XRP(10000), alice, bob, carol);
|
||||||
|
|
||||||
env(fset(bob, asfDepositAuth));
|
env(fset(bob, asfDepositAuth));
|
||||||
@@ -866,13 +866,13 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testMultiple()
|
testMultiple(FeatureBitset features)
|
||||||
{
|
{
|
||||||
// auth amount defaults to balance if not present
|
// auth amount defaults to balance if not present
|
||||||
testcase("Multiple channels to the same account");
|
testcase("Multiple channels to the same account");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
env.fund(XRP(10000), alice, bob);
|
env.fund(XRP(10000), alice, bob);
|
||||||
@@ -889,13 +889,13 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testAccountChannelsRPC()
|
testAccountChannelsRPC(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("AccountChannels RPC");
|
testcase("AccountChannels RPC");
|
||||||
|
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const charlie = Account("charlie", KeyType::ed25519);
|
auto const charlie = Account("charlie", KeyType::ed25519);
|
||||||
@@ -944,7 +944,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testAccountChannelsRPCMarkers()
|
testAccountChannelsRPCMarkers(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Account channels RPC markers");
|
testcase("Account channels RPC markers");
|
||||||
|
|
||||||
@@ -963,7 +963,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
return r;
|
return r;
|
||||||
}();
|
}();
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice);
|
env.fund(XRP(10000), alice);
|
||||||
for (auto const& a : bobs)
|
for (auto const& a : bobs)
|
||||||
{
|
{
|
||||||
@@ -1060,7 +1060,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testAccountChannelsRPCSenderOnly()
|
testAccountChannelsRPCSenderOnly(FeatureBitset features)
|
||||||
{
|
{
|
||||||
// Check that the account_channels command only returns channels owned
|
// Check that the account_channels command only returns channels owned
|
||||||
// by the account
|
// by the account
|
||||||
@@ -1071,7 +1071,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice, bob);
|
env.fund(XRP(10000), alice, bob);
|
||||||
|
|
||||||
// Create a channel from alice to bob and from bob to alice
|
// Create a channel from alice to bob and from bob to alice
|
||||||
@@ -1097,12 +1097,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testAuthVerifyRPC()
|
testAuthVerifyRPC(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("PayChan Auth/Verify RPC");
|
testcase("PayChan Auth/Verify RPC");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const charlie = Account("charlie", KeyType::ed25519);
|
auto const charlie = Account("charlie", KeyType::ed25519);
|
||||||
@@ -1437,12 +1437,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testOptionalFields()
|
testOptionalFields(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Optional Fields");
|
testcase("Optional Fields");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const carol = Account("carol");
|
auto const carol = Account("carol");
|
||||||
@@ -1488,12 +1488,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testMalformedPK()
|
testMalformedPK(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("malformed pk");
|
testcase("malformed pk");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
env.fund(XRP(10000), alice, bob);
|
env.fund(XRP(10000), alice, bob);
|
||||||
@@ -1557,7 +1557,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testMetaAndOwnership()
|
testMetaAndOwnership(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Metadata & Ownership");
|
testcase("Metadata & Ownership");
|
||||||
|
|
||||||
@@ -1608,7 +1608,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
// Test with adding the paychan to the recipient's owner directory
|
// Test with adding the paychan to the recipient's owner directory
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice, bob);
|
env.fund(XRP(10000), alice, bob);
|
||||||
env(create(alice, bob, XRP(1000), settleDelay, pk));
|
env(create(alice, bob, XRP(1000), settleDelay, pk));
|
||||||
env.close();
|
env.close();
|
||||||
@@ -1665,7 +1665,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testAccountDelete()
|
testAccountDelete(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("Account Delete");
|
testcase("Account Delete");
|
||||||
using namespace test::jtx;
|
using namespace test::jtx;
|
||||||
@@ -1899,12 +1899,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testUsingTickets()
|
testUsingTickets(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("using tickets");
|
testcase("using tickets");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
env.fund(XRP(10000), alice, bob);
|
env.fund(XRP(10000), alice, bob);
|
||||||
@@ -2060,12 +2060,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICSimple()
|
testICSimple(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("ic simple");
|
testcase("ic simple");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
// <- setup tests
|
// <- setup tests
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
@@ -2261,7 +2261,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICCancelAfter()
|
testICCancelAfter(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("ic cancel after");
|
testcase("ic cancel after");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
@@ -2274,7 +2274,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
// If dst claims after cancel after, channel closes
|
// If dst claims after cancel after, channel closes
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
|
|
||||||
env.fund(XRP(10000), alice, bob, gw);
|
env.fund(XRP(10000), alice, bob, gw);
|
||||||
env.close();
|
env.close();
|
||||||
@@ -2324,7 +2324,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Third party can close after cancel after
|
// Third party can close after cancel after
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice, bob, carol, gw);
|
env.fund(XRP(10000), alice, bob, carol, gw);
|
||||||
env.close();
|
env.close();
|
||||||
env.trust(USD(100000), alice, bob, carol);
|
env.trust(USD(100000), alice, bob, carol);
|
||||||
@@ -2358,12 +2358,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICSettleDelay()
|
testICSettleDelay(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("ic settle delay");
|
testcase("ic settle delay");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const gw = Account{"gateway"};
|
auto const gw = Account{"gateway"};
|
||||||
@@ -2439,12 +2439,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICExpiration()
|
testICExpiration(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("ic expiration");
|
testcase("ic expiration");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const carol = Account("carol");
|
auto const carol = Account("carol");
|
||||||
@@ -2514,12 +2514,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICCloseDry()
|
testICCloseDry(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("ic close dry");
|
testcase("ic close dry");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const gw = Account{"gateway"};
|
auto const gw = Account{"gateway"};
|
||||||
@@ -2558,13 +2558,13 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICDefaultAmount()
|
testICDefaultAmount(FeatureBitset features)
|
||||||
{
|
{
|
||||||
// auth amount defaults to balance if not present
|
// auth amount defaults to balance if not present
|
||||||
testcase("ic default amount");
|
testcase("ic default amount");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const gw = Account{"gateway"};
|
auto const gw = Account{"gateway"};
|
||||||
@@ -2633,14 +2633,14 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICDstTag()
|
testICDstTag(FeatureBitset features)
|
||||||
{
|
{
|
||||||
// auth amount defaults to balance if not present
|
// auth amount defaults to balance if not present
|
||||||
testcase("IC Dst Tag");
|
testcase("IC Dst Tag");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
// Create a channel where dst disallows XRP
|
// Create a channel where dst disallows XRP
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const gw = Account{"gateway"};
|
auto const gw = Account{"gateway"};
|
||||||
@@ -2673,7 +2673,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICDepositAuth()
|
testICDepositAuth(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("IC Deposit Authorization");
|
testcase("IC Deposit Authorization");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
@@ -2686,7 +2686,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
auto const USD = gw["USD"];
|
auto const USD = gw["USD"];
|
||||||
|
|
||||||
{
|
{
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice, bob, carol, gw);
|
env.fund(XRP(10000), alice, bob, carol, gw);
|
||||||
env.close();
|
env.close();
|
||||||
env.trust(USD(100000), alice, bob, carol);
|
env.trust(USD(100000), alice, bob, carol);
|
||||||
@@ -2807,13 +2807,13 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICMultiple()
|
testICMultiple(FeatureBitset features)
|
||||||
{
|
{
|
||||||
// auth amount defaults to balance if not present
|
// auth amount defaults to balance if not present
|
||||||
testcase("IC Multiple channels to the same account");
|
testcase("IC Multiple channels to the same account");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const gw = Account{"gateway"};
|
auto const gw = Account{"gateway"};
|
||||||
@@ -2838,13 +2838,13 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICAccountChannelsRPC()
|
testICAccountChannelsRPC(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("AccountChannels RPC");
|
testcase("AccountChannels RPC");
|
||||||
|
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const charlie = Account("charlie", KeyType::ed25519);
|
auto const charlie = Account("charlie", KeyType::ed25519);
|
||||||
@@ -2902,7 +2902,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICAccountChannelsRPCMarkers()
|
testICAccountChannelsRPCMarkers(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("IC Account channels RPC markers");
|
testcase("IC Account channels RPC markers");
|
||||||
|
|
||||||
@@ -2923,7 +2923,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
return r;
|
return r;
|
||||||
}();
|
}();
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice, gw);
|
env.fund(XRP(10000), alice, gw);
|
||||||
env.close();
|
env.close();
|
||||||
env.trust(USD(100000), alice);
|
env.trust(USD(100000), alice);
|
||||||
@@ -3029,7 +3029,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICAccountChannelsRPCSenderOnly()
|
testICAccountChannelsRPCSenderOnly(FeatureBitset features)
|
||||||
{
|
{
|
||||||
// Check that the account_channels command only returns channels owned
|
// Check that the account_channels command only returns channels owned
|
||||||
// by the account
|
// by the account
|
||||||
@@ -3043,7 +3043,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
auto const gw = Account{"gateway"};
|
auto const gw = Account{"gateway"};
|
||||||
auto const USD = gw["USD"];
|
auto const USD = gw["USD"];
|
||||||
|
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice, bob, gw);
|
env.fund(XRP(10000), alice, bob, gw);
|
||||||
env.close();
|
env.close();
|
||||||
env.trust(USD(100000), alice, bob);
|
env.trust(USD(100000), alice, bob);
|
||||||
@@ -3074,12 +3074,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICAuthVerifyRPC()
|
testICAuthVerifyRPC(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("IC PayChan Auth/Verify RPC");
|
testcase("IC PayChan Auth/Verify RPC");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const charlie = Account("charlie", KeyType::ed25519);
|
auto const charlie = Account("charlie", KeyType::ed25519);
|
||||||
@@ -3423,12 +3423,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICOptionalFields()
|
testICOptionalFields(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("IC Optional Fields");
|
testcase("IC Optional Fields");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const carol = Account("carol");
|
auto const carol = Account("carol");
|
||||||
@@ -3484,12 +3484,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICMalformedPK()
|
testICMalformedPK(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("ic malformed pk");
|
testcase("ic malformed pk");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const gw = Account{"gateway"};
|
auto const gw = Account{"gateway"};
|
||||||
@@ -3561,7 +3561,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICMetaAndOwnership()
|
testICMetaAndOwnership(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("IC Metadata & Ownership");
|
testcase("IC Metadata & Ownership");
|
||||||
|
|
||||||
@@ -3622,7 +3622,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
// Test with adding the paychan to the recipient's owner directory
|
// Test with adding the paychan to the recipient's owner directory
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice, bob, gw);
|
env.fund(XRP(10000), alice, bob, gw);
|
||||||
env.close();
|
env.close();
|
||||||
env.trust(USD(100000), alice, bob);
|
env.trust(USD(100000), alice, bob);
|
||||||
@@ -3693,7 +3693,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICAccountDelete()
|
testICAccountDelete(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("IC Account Delete");
|
testcase("IC Account Delete");
|
||||||
using namespace test::jtx;
|
using namespace test::jtx;
|
||||||
@@ -3958,12 +3958,12 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICUsingTickets()
|
testICUsingTickets(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("ic using tickets");
|
testcase("ic using tickets");
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::literals::chrono_literals;
|
using namespace std::literals::chrono_literals;
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
auto const alice = Account("alice");
|
auto const alice = Account("alice");
|
||||||
auto const bob = Account("bob");
|
auto const bob = Account("bob");
|
||||||
auto const gw = Account{"gateway"};
|
auto const gw = Account{"gateway"};
|
||||||
@@ -4135,7 +4135,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
testICAutoTL()
|
testICAutoTL(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testcase("IC Auto Trust Line");
|
testcase("IC Auto Trust Line");
|
||||||
using namespace test::jtx;
|
using namespace test::jtx;
|
||||||
@@ -4149,7 +4149,7 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
|
|
||||||
{
|
{
|
||||||
// test trust line missing
|
// test trust line missing
|
||||||
Env env(*this);
|
Env env(*this, features);
|
||||||
env.fund(XRP(10000), alice, bob, gw);
|
env.fund(XRP(10000), alice, bob, gw);
|
||||||
env.close();
|
env.close();
|
||||||
env.trust(USD(100000), alice);
|
env.trust(USD(100000), alice);
|
||||||
@@ -4207,48 +4207,57 @@ struct PayChan_test : public beast::unit_test::suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
run() override
|
testWithFeats(FeatureBitset features)
|
||||||
{
|
{
|
||||||
testSimple();
|
testSimple(features);
|
||||||
testCancelAfter();
|
testCancelAfter(features);
|
||||||
testSettleDelay();
|
testSettleDelay(features);
|
||||||
testExpiration();
|
testExpiration(features);
|
||||||
testCloseDry();
|
testCloseDry(features);
|
||||||
testDefaultAmount();
|
testDefaultAmount(features);
|
||||||
testDisallowXRP();
|
testDisallowXRP(features);
|
||||||
testDstTag();
|
testDstTag(features);
|
||||||
testDepositAuth();
|
testDepositAuth(features);
|
||||||
testMultiple();
|
testMultiple(features);
|
||||||
testAccountChannelsRPC();
|
testAccountChannelsRPC(features);
|
||||||
testAccountChannelsRPCMarkers();
|
testAccountChannelsRPCMarkers(features);
|
||||||
testAccountChannelsRPCSenderOnly();
|
testAccountChannelsRPCSenderOnly(features);
|
||||||
testAuthVerifyRPC();
|
testAuthVerifyRPC(features);
|
||||||
testOptionalFields();
|
testOptionalFields(features);
|
||||||
testMalformedPK();
|
testMalformedPK(features);
|
||||||
testMetaAndOwnership();
|
testMetaAndOwnership(features);
|
||||||
testAccountDelete();
|
testAccountDelete(features);
|
||||||
testUsingTickets();
|
testUsingTickets(features);
|
||||||
testICSimple();
|
testICSimple(features);
|
||||||
testICCancelAfter();
|
testICCancelAfter(features);
|
||||||
testICSettleDelay();
|
testICSettleDelay(features);
|
||||||
testICExpiration();
|
testICExpiration(features);
|
||||||
testICCloseDry();
|
testICCloseDry(features);
|
||||||
testICDefaultAmount();
|
testICDefaultAmount(features);
|
||||||
testICDstTag();
|
testICDstTag(features);
|
||||||
testICDepositAuth();
|
testICDepositAuth(features);
|
||||||
testICMultiple();
|
testICMultiple(features);
|
||||||
/*
|
/*
|
||||||
// testICAccountChannelsRPC();
|
// testICAccountChannelsRPC(features);
|
||||||
// testICAccountChannelsRPCMarkers();
|
// testICAccountChannelsRPCMarkers(features);
|
||||||
// testICAccountChannelsRPCSenderOnly();
|
// testICAccountChannelsRPCSenderOnly(features);
|
||||||
// testICAuthVerifyRPC();
|
// testICAuthVerifyRPC(features);
|
||||||
*/
|
*/
|
||||||
testICOptionalFields();
|
testICOptionalFields(features);
|
||||||
testICMalformedPK();
|
testICMalformedPK(features);
|
||||||
testICMetaAndOwnership();
|
testICMetaAndOwnership(features);
|
||||||
// testICAccountDelete();
|
// testICAccountDelete(features);
|
||||||
testICUsingTickets();
|
testICUsingTickets(features);
|
||||||
testICAutoTL();
|
testICAutoTL(features);
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
void
|
||||||
|
run() override
|
||||||
|
{
|
||||||
|
using namespace test::jtx;
|
||||||
|
FeatureBitset const all{supported_amendments()};
|
||||||
|
testWithFeats(all);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user