Unit tests don't enable Tickets or SHAMapV2 by default:

Both Tickets and SHAMapV2 have been around for a while and don't
look like they will be enabled on the network soon.  So they are
removed from the supportedAmendments list.  This prevents Env
from automatically testing with Tickets or SHAMapV2 enabled,
although testing with those features can still be explicitly
specified.

Drive-by cleanups:

o supportedAmendments() returns a const reference rather than
  a fresh vector on each call.

o supportedAmendments() implementation moved from Amendments.cpp
  to Feature.cpp.  Amendments.cpp deleted.

o supportedAmendments() declared in Feature.h.  All other
  declarations deleted.

o preEnabledAmendments() removed, since it was empty and only
  used in one place.  It will be easy to re-add when it is needed.

o jtx::all_features_except() renamed to
  jtx::supported_features_except(), which is more descriptive.

o jtx::all_amendments() renamed to jxt::supported_amendments()

o jtx::with_features() renamed to with_only_features()

o Env_test.cpp adjusted since featureTickets is no longer
  automatically enabled for unit tests.
This commit is contained in:
Scott Schurr
2017-08-03 16:26:40 -07:00
committed by seelabs
parent 07e3f81b76
commit feb7582aca
34 changed files with 282 additions and 345 deletions

View File

@@ -993,10 +993,6 @@
</ClCompile>
<ClInclude Include="..\..\src\ripple\app\ledger\TransactionStateSF.h">
</ClInclude>
<ClCompile Include="..\..\src\ripple\app\main\Amendments.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\ripple\app\main\Application.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>

View File

@@ -1533,9 +1533,6 @@
<ClInclude Include="..\..\src\ripple\app\ledger\TransactionStateSF.h">
<Filter>ripple\app\ledger</Filter>
</ClInclude>
<ClCompile Include="..\..\src\ripple\app\main\Amendments.cpp">
<Filter>ripple\app\main</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ripple\app\main\Application.cpp">
<Filter>ripple\app\main</Filter>
</ClCompile>

View File

@@ -1,71 +0,0 @@
//------------------------------------------------------------------------------
/*
This file is part of rippled: https://github.com/ripple/rippled
Copyright (c) 2012, 2013 Ripple Labs Inc.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
//==============================================================================
#include <string>
#include <vector>
namespace ripple {
namespace detail {
/** Amendments that this server supports and enables by default */
std::vector<std::string>
preEnabledAmendments ()
{
return
{
};
}
/** Amendments that this server supports, but doesn't enable by default */
std::vector<std::string>
supportedAmendments ()
{
return
{
{ "C6970A8B603D8778783B61C0D445C23D1633CCFAEF0D43E7DBCD1521D34BD7C3 SHAMapV2" },
{ "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 MultiSign" },
{ "C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490 Tickets" },
{ "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC TrustSetAuth" },
{ "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE FeeEscalation" },
// The following will be supported in a future release (and uncommented at that time)
//{ "9178256A980A86CF3D70D0260A7DA6402AAFE43632FDBCB88037978404188871 OwnerPaysFee" },
{ "08DE7D96082187F6E6578530258C77FAABABE4C20474BDB82F04B021F1A68647 PayChan" },
{ "740352F2412A9909880C23A559FCECEDA3BE2126FED62FC7660D628A06927F11 Flow" },
{ "1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146 CryptoConditions" },
{ "532651B4FD58DF8922A49BA101AB3E996E5BFBF95A913B3E392504863E63B164 TickSize" },
{ "E2E6F2866106419B88C50045ACE96368558C345566AC8F2BDF5A5B5587F0E6FA fix1368" },
{ "07D43DCE529B15A10827E5E04943B496762F9A88E3268269D69C44BE49E21104 Escrow" },
{ "86E83A7D2ECE3AD5FA87AB2195AE015C950469ABF0B72EAACED318F74886AE90 CryptoConditionsSuite" },
{ "42EEA5E28A97824821D4EF97081FE36A54E9593C6E4F20CBAE098C69D2E072DC fix1373" },
{ "DC9CA96AEA1DCF83E527D1AFC916EFAF5D27388ECA4060A88817C1238CAEE0BF EnforceInvariants" },
{ "3012E8230864E95A58C60FD61430D7E1B4D3353195F2981DC12B0C7C0950FFAC FlowCross" },
{ "CC5ABAE4F3EC92E94A59B1908C2BE82D2228B6485C00AFF8F22DF930D89C194E SortedDirectories" },
{ "B4D44CC3111ADD964E846FC57760C8B50FFCD5A82C86A72756F6B058DDDF96AD fix1201" },
{ "6C92211186613F9647A89DFFBAB8F94C99D4C7E956D495270789128569177DA1 fix1512" },
{ "67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172 fix1513" },
{ "B9E739B8296B4A1BB29BE990B17D66E21B62A300A909F25AC55C22D6C72E1F9D fix1523" },
{ "1D3463A5891F9E589C5AE839FFAC4A917CE96197098A1EF22304E1BC5B98A454 fix1528" }
};
}
}
}

View File

@@ -51,6 +51,7 @@
#include <ripple/nodestore/DummyScheduler.h>
#include <ripple/overlay/Cluster.h>
#include <ripple/overlay/make_Overlay.h>
#include <ripple/protocol/Feature.h>
#include <ripple/protocol/STParsedJSON.h>
#include <ripple/protocol/Protocol.h>
#include <ripple/resource/Fees.h>
@@ -204,15 +205,6 @@ public:
}
};
/** Amendments that this server supports and enables by default */
std::vector<std::string>
preEnabledAmendments ();
/** Amendments that this server supports, but doesn't enable by default */
std::vector<std::string>
supportedAmendments ();
} // detail
//------------------------------------------------------------------------------
@@ -1111,7 +1103,6 @@ bool ApplicationImp::setup()
supportedAmendments.append (detail::supportedAmendments ());
Section enabledAmendments = config_->section (SECTION_AMENDMENTS);
enabledAmendments.append (detail::preEnabledAmendments ());
m_amendmentTable = make_AmendmentTable (
weeks{2},

View File

@@ -37,8 +37,8 @@
* 3) add a uint256 definition for the feature to the corresponding source
* file (Feature.cpp)
* 4) if the feature is going to be supported in the near future, add its
* sha512half value and name (matching exactly the featureName here) to the
* supportedAmendments in Amendments.cpp.
* sha512half value and name (matching exactly the featureName here) to
* the supportedAmendments in Feature.cpp.
*
*/
@@ -98,6 +98,10 @@ public:
bitsetIndexToFeature(size_t i) const;
};
/** Amendments that this server supports, but doesn't enable by default */
std::vector<std::string> const&
supportedAmendments ();
} // detail
boost::optional<uint256>

View File

@@ -77,6 +77,39 @@ detail::FeatureCollections::bitsetIndexToFeature(size_t i) const
static detail::FeatureCollections const featureCollections;
/** Amendments that this server supports, but doesn't enable by default */
std::vector<std::string> const&
detail::supportedAmendments ()
{
// Commented out amendments will be supported in a future release (and
// uncommented at that time).
static std::vector<std::string> const supported
{
// { "C6970A8B603D8778783B61C0D445C23D1633CCFAEF0D43E7DBCD1521D34BD7C3 SHAMapV2" },
{ "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 MultiSign" },
// { "C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490 Tickets" },
{ "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC TrustSetAuth" },
{ "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE FeeEscalation" },
// { "9178256A980A86CF3D70D0260A7DA6402AAFE43632FDBCB88037978404188871 OwnerPaysFee" },
{ "08DE7D96082187F6E6578530258C77FAABABE4C20474BDB82F04B021F1A68647 PayChan" },
{ "740352F2412A9909880C23A559FCECEDA3BE2126FED62FC7660D628A06927F11 Flow" },
{ "1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146 CryptoConditions" },
{ "532651B4FD58DF8922A49BA101AB3E996E5BFBF95A913B3E392504863E63B164 TickSize" },
{ "E2E6F2866106419B88C50045ACE96368558C345566AC8F2BDF5A5B5587F0E6FA fix1368" },
{ "07D43DCE529B15A10827E5E04943B496762F9A88E3268269D69C44BE49E21104 Escrow" },
{ "86E83A7D2ECE3AD5FA87AB2195AE015C950469ABF0B72EAACED318F74886AE90 CryptoConditionsSuite" },
{ "42EEA5E28A97824821D4EF97081FE36A54E9593C6E4F20CBAE098C69D2E072DC fix1373" },
{ "DC9CA96AEA1DCF83E527D1AFC916EFAF5D27388ECA4060A88817C1238CAEE0BF EnforceInvariants" },
{ "3012E8230864E95A58C60FD61430D7E1B4D3353195F2981DC12B0C7C0950FFAC FlowCross" },
{ "CC5ABAE4F3EC92E94A59B1908C2BE82D2228B6485C00AFF8F22DF930D89C194E SortedDirectories" },
{ "B4D44CC3111ADD964E846FC57760C8B50FFCD5A82C86A72756F6B058DDDF96AD fix1201" },
{ "6C92211186613F9647A89DFFBAB8F94C99D4C7E956D495270789128569177DA1 fix1512" },
{ "B9E739B8296B4A1BB29BE990B17D66E21B62A300A909F25AC55C22D6C72E1F9D fix1523" },
{ "1D3463A5891F9E589C5AE839FFAC4A917CE96197098A1EF22304E1BC5B98A454 fix1528" }
};
return supported;
}
//------------------------------------------------------------------------------
boost::optional<uint256>

View File

@@ -19,7 +19,6 @@
#include <BeastConfig.h>
#include <ripple/app/main/Amendments.cpp>
#include <ripple/app/main/Application.cpp>
#include <ripple/app/main/BasicApp.cpp>
#include <ripple/app/main/CollectorManager.cpp>

View File

@@ -34,12 +34,6 @@
namespace ripple
{
namespace detail {
extern
std::vector<std::string>
supportedAmendments ();
}
class AmendmentTable_test final : public beast::unit_test::suite
{
private:

View File

@@ -47,7 +47,7 @@ public:
testStepLimit(std::initializer_list<uint256> fs)
{
using namespace jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
auto const xrpMax = XRP(100000000000);
auto const gw = Account("gateway");
auto const USD = gw["USD"];
@@ -81,7 +81,7 @@ public:
testCrossingLimit(std::initializer_list<uint256> fs)
{
using namespace jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
auto const xrpMax = XRP(100000000000);
auto const gw = Account("gateway");
auto const USD = gw["USD"];
@@ -110,7 +110,7 @@ public:
testStepAndCrossingLimit(std::initializer_list<uint256> fs)
{
using namespace jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
auto const xrpMax = XRP(100000000000);
auto const gw = Account("gateway");
auto const USD = gw["USD"];

View File

@@ -38,7 +38,7 @@ public:
auto const USD = gw["USD"];
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), "alice", "bob", "carol", gw);
env.trust(USD(100), "alice", "bob", "carol");
env(pay("alice", "bob", USD(10)), delivermin(USD(10)), ter(temBAD_AMOUNT));
@@ -61,7 +61,7 @@ public:
}
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), "alice", "bob", gw);
env.trust(USD(1000), "alice", "bob");
env(pay(gw, "bob", USD(100)));
@@ -73,7 +73,7 @@ public:
}
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), "alice", "bob", "carol", gw);
env.trust(USD(1000), "bob", "carol");
env(pay(gw, "bob", USD(200)));
@@ -91,7 +91,7 @@ public:
}
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), "alice", "bob", "carol", "dan", gw);
env.trust(USD(1000), "bob", "carol", "dan");
env(pay(gw, "bob", USD(100)));

View File

@@ -41,7 +41,7 @@ class Discrepancy_test : public beast::unit_test::suite
{
testcase ("Discrepancy test : XRP Discrepancy");
using namespace test::jtx;
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
Account A1 {"A1"};
Account A2 {"A2"};

View File

@@ -215,7 +215,7 @@ struct Escrow_test : public beast::unit_test::suite
}
{ // Escrow enabled
Env env(*this, with_features(featureEscrow));
Env env(*this, with_only_features(featureEscrow));
env.fund(XRP(5000), "alice", "bob");
env(lockup("alice", "bob", XRP(1000), env.now() + 1s));
env.close();
@@ -237,7 +237,7 @@ struct Escrow_test : public beast::unit_test::suite
using namespace jtx;
using namespace std::chrono;
Env env(*this, with_features(featureEscrow));
Env env(*this, with_only_features(featureEscrow));
auto const alice = Account("alice");
env.fund(XRP(5000), alice, "bob");
@@ -261,7 +261,7 @@ struct Escrow_test : public beast::unit_test::suite
using namespace jtx;
using namespace std::chrono;
Env env(*this, with_features(featureEscrow));
Env env(*this, with_only_features(featureEscrow));
env.fund(XRP(5000), "alice", "bob");
env.close();
@@ -364,7 +364,7 @@ struct Escrow_test : public beast::unit_test::suite
using namespace std::chrono;
{ // Unconditional
Env env(*this, with_features(featureEscrow));
Env env(*this, with_only_features(featureEscrow));
env.fund(XRP(5000), "alice", "bob");
auto const seq = env.seq("alice");
env(lockup("alice", "alice", XRP(1000), env.now() + 1s));
@@ -379,7 +379,7 @@ struct Escrow_test : public beast::unit_test::suite
}
{ // Conditional
Env env(*this, with_features(featureEscrow));
Env env(*this, with_only_features(featureEscrow));
env.fund(XRP(5000), "alice", "bob");
auto const seq = env.seq("alice");
env(lockup("alice", "alice", XRP(1000), makeSlice(cb2), env.now() + 1s));
@@ -412,7 +412,7 @@ struct Escrow_test : public beast::unit_test::suite
{ // Test cryptoconditions
Env env(*this,
with_features(featureEscrow));
with_only_features(featureEscrow));
auto T = [&env](NetClock::duration const& d)
{ return env.now() + d; };
env.fund(XRP(5000), "alice", "bob", "carol");
@@ -460,7 +460,7 @@ struct Escrow_test : public beast::unit_test::suite
{ // Test cancel when condition is present
Env env(*this,
with_features(featureEscrow));
with_only_features(featureEscrow));
auto T = [&env](NetClock::duration const& d)
{ return env.now() + d; };
env.fund(XRP(5000), "alice", "bob", "carol");
@@ -477,7 +477,7 @@ struct Escrow_test : public beast::unit_test::suite
}
{
Env env(*this, with_features(featureEscrow));
Env env(*this, with_only_features(featureEscrow));
auto T = [&env](NetClock::duration const& d)
{ return env.now() + d; };
env.fund(XRP(5000), "alice", "bob", "carol");
@@ -497,7 +497,7 @@ struct Escrow_test : public beast::unit_test::suite
}
{ // Test long & short conditions during creation
Env env(*this, with_features(featureEscrow));
Env env(*this, with_only_features(featureEscrow));
auto T = [&env](NetClock::duration const& d)
{ return env.now() + d; };
env.fund(XRP(5000), "alice", "bob", "carol");
@@ -538,7 +538,7 @@ struct Escrow_test : public beast::unit_test::suite
{ // Test long and short conditions & fulfillments during finish
Env env(*this,
with_features(featureEscrow));
with_only_features(featureEscrow));
auto T = [&env](NetClock::duration const& d)
{ return env.now() + d; };
env.fund(XRP(5000), "alice", "bob", "carol");
@@ -623,7 +623,7 @@ struct Escrow_test : public beast::unit_test::suite
{ // Test empty condition during creation and
// empty condition & fulfillment during finish
Env env(*this, with_features(featureEscrow));
Env env(*this, with_only_features(featureEscrow));
auto T = [&env](NetClock::duration const& d)
{ return env.now() + d; };
env.fund(XRP(5000), "alice", "bob", "carol");
@@ -663,7 +663,7 @@ struct Escrow_test : public beast::unit_test::suite
{ // Test a condition other than PreimageSha256, which
// would require a separate amendment
Env env(*this, with_features(featureEscrow));
Env env(*this, with_only_features(featureEscrow));
auto T = [&env](NetClock::duration const& d)
{ return env.now() + d; };
env.fund(XRP(5000), "alice", "bob", "carol");
@@ -696,7 +696,7 @@ struct Escrow_test : public beast::unit_test::suite
{
testcase ("Metadata & Ownership (without fix1523)");
Env env(*this, with_features(featureEscrow));
Env env(*this, with_only_features(featureEscrow));
env.fund(XRP(5000), alice, bruce, carol);
auto const seq = env.seq(alice);
@@ -718,7 +718,7 @@ struct Escrow_test : public beast::unit_test::suite
{
testcase ("Metadata (with fix1523, to self)");
Env env(*this, with_features(featureEscrow, fix1523));
Env env(*this, with_only_features(featureEscrow, fix1523));
env.fund(XRP(5000), alice, bruce, carol);
auto const aseq = env.seq(alice);
auto const bseq = env.seq(bruce);
@@ -777,7 +777,7 @@ struct Escrow_test : public beast::unit_test::suite
{
testcase ("Metadata (with fix1523, to other)");
Env env(*this, with_features(featureEscrow, fix1523));
Env env(*this, with_only_features(featureEscrow, fix1523));
env.fund(XRP(5000), alice, bruce, carol);
auto const aseq = env.seq(alice);
auto const bseq = env.seq(bruce);
@@ -856,7 +856,7 @@ struct Escrow_test : public beast::unit_test::suite
using namespace jtx;
using namespace std::chrono;
Env env(*this, with_features(featureEscrow));
Env env(*this, with_only_features(featureEscrow));
env.memoize("alice");
env.memoize("bob");

View File

@@ -82,7 +82,7 @@ struct Flow_test : public beast::unit_test::suite
auto const USD = gw["USD"];
{
// Pay USD, trivial path
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, gw);
env.trust (USD (1000), alice, bob);
@@ -92,7 +92,7 @@ struct Flow_test : public beast::unit_test::suite
}
{
// XRP transfer
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob);
env (pay (alice, bob, XRP (100)));
@@ -101,7 +101,7 @@ struct Flow_test : public beast::unit_test::suite
}
{
// Partial payments
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, gw);
env.trust (USD (1000), alice, bob);
@@ -115,7 +115,7 @@ struct Flow_test : public beast::unit_test::suite
}
{
// Pay by rippling through accounts, use path finder
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, dan);
env.trust (USDA (10), bob);
@@ -130,7 +130,7 @@ struct Flow_test : public beast::unit_test::suite
{
// Pay by rippling through accounts, specify path
// and charge a transfer fee
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, dan);
env.trust (USDA (10), bob);
@@ -148,7 +148,7 @@ struct Flow_test : public beast::unit_test::suite
{
// Pay by rippling through accounts, specify path and transfer fee
// Test that the transfer fee is not charged when alice issues
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, dan);
env.trust (USDA (10), bob);
@@ -164,7 +164,7 @@ struct Flow_test : public beast::unit_test::suite
{
// test best quality path is taken
// Paths: A->B->D->E ; A->C->D->E
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, dan, erin);
env.trust (USDA (10), bob, carol);
@@ -185,7 +185,7 @@ struct Flow_test : public beast::unit_test::suite
}
{
// Limit quality
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol);
env.trust (USDA (10), bob);
@@ -222,7 +222,7 @@ struct Flow_test : public beast::unit_test::suite
if (!hasFeature(featureFlow, fs) && bobDanQIn < 100 &&
bobAliceQOut < 100)
continue; // Bug in flow v1
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, carol, dan);
env(trust(bob, USDD(100)), qualityInPercent(bobDanQIn));
env(trust(bob, USDA(100)), qualityOutPercent(bobAliceQOut));
@@ -245,7 +245,7 @@ struct Flow_test : public beast::unit_test::suite
// bob -> alice -> carol; vary carolAliceQIn
for (auto carolAliceQIn : {80, 100, 120})
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, carol);
env(trust(bob, USDA(10)));
env(trust(carol, USDA(10)), qualityInPercent(carolAliceQIn));
@@ -261,7 +261,7 @@ struct Flow_test : public beast::unit_test::suite
// bob -> alice -> carol; bobAliceQOut varies.
for (auto bobAliceQOut : {80, 100, 120})
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, carol);
env(trust(bob, USDA(10)), qualityOutPercent(bobAliceQOut));
env(trust(carol, USDA(10)));
@@ -290,7 +290,7 @@ struct Flow_test : public beast::unit_test::suite
{
// simple IOU/IOU offer
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, gw);
env.trust (USD (1000), alice, bob, carol);
@@ -311,7 +311,7 @@ struct Flow_test : public beast::unit_test::suite
}
{
// simple IOU/XRP XRP/IOU offer
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, gw);
env.trust (USD (1000), alice, bob, carol);
@@ -335,7 +335,7 @@ struct Flow_test : public beast::unit_test::suite
}
{
// simple XRP -> USD through offer and sendmax
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, gw);
env.trust (USD (1000), alice, bob, carol);
@@ -356,7 +356,7 @@ struct Flow_test : public beast::unit_test::suite
}
{
// simple USD -> XRP through offer and sendmax
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, gw);
env.trust (USD (1000), alice, bob, carol);
@@ -377,7 +377,7 @@ struct Flow_test : public beast::unit_test::suite
}
{
// test unfunded offers are removed when payment succeeds
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, gw);
env.trust (USD (1000), alice, bob, carol);
@@ -423,7 +423,7 @@ struct Flow_test : public beast::unit_test::suite
// offer. When the payment fails `flow` should return the unfunded
// offer. This test is intentionally similar to the one that removes
// unfunded offers when the payment succeeds.
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, gw);
env.trust (USD (1000), alice, bob, carol);
@@ -498,7 +498,7 @@ struct Flow_test : public beast::unit_test::suite
// Without limits, the 0.4 USD would produce 1000 EUR in the forward
// pass. This test checks that the payment produces 1 EUR, as expected.
Env env (*this, with_features (fs));
Env env (*this, with_only_features (fs));
auto const closeTime = STAmountSO::soTime2 +
100 * env.closed ()->info ().closeTimeResolution;
@@ -541,7 +541,7 @@ struct Flow_test : public beast::unit_test::suite
{
// Simple payment through a gateway with a
// transfer rate
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, gw);
env(rate(gw, 1.25));
@@ -553,7 +553,7 @@ struct Flow_test : public beast::unit_test::suite
}
{
// transfer rate is not charged when issuer is src or dst
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, gw);
env(rate(gw, 1.25));
@@ -565,7 +565,7 @@ struct Flow_test : public beast::unit_test::suite
}
{
// transfer fee on an offer
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, gw);
env(rate(gw, 1.25));
@@ -583,7 +583,7 @@ struct Flow_test : public beast::unit_test::suite
{
// Transfer fee two consecutive offers
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, carol, gw);
env(rate(gw, 1.25));
@@ -606,7 +606,7 @@ struct Flow_test : public beast::unit_test::suite
{
// First pass through a strand redeems, second pass issues, no offers
// limiting step is not an endpoint
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
auto const USDA = alice["USD"];
auto const USDB = bob["USD"];
@@ -626,7 +626,7 @@ struct Flow_test : public beast::unit_test::suite
{
// First pass through a strand redeems, second pass issues, through an offer
// limiting step is not an endpoint
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
auto const USDA = alice["USD"];
auto const USDB = bob["USD"];
Account const dan ("dan");
@@ -653,7 +653,7 @@ struct Flow_test : public beast::unit_test::suite
{
// Offer where the owner is also the issuer, owner pays fee
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, gw);
env(rate(gw, 1.25));
@@ -668,7 +668,7 @@ struct Flow_test : public beast::unit_test::suite
if (!hasFeature(featureOwnerPaysFee, fs))
{
// Offer where the owner is also the issuer, sender pays fee
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
env.fund (XRP (10000), alice, bob, gw);
env(rate(gw, 1.25));
@@ -696,7 +696,7 @@ struct Flow_test : public beast::unit_test::suite
Account const bob ("bob");
Account const carol ("carol");
Env env (*this, with_features (fs));
Env env (*this, with_only_features (fs));
auto const closeTime = fix1141Time() +
100 * env.closed ()->info ().closeTimeResolution;
@@ -810,7 +810,7 @@ struct Flow_test : public beast::unit_test::suite
auto const USD = gw1["USD"];
auto const EUR = gw2["EUR"];
Env env (*this, with_features (fs));
Env env (*this, with_only_features (fs));
auto const closeTime =
fix1141Time () + 100 * env.closed ()->info ().closeTimeResolution;
@@ -884,7 +884,7 @@ struct Flow_test : public beast::unit_test::suite
auto const USD = gw1["USD"];
auto const EUR = gw2["EUR"];
Env env (*this, with_features (fs));
Env env (*this, with_only_features (fs));
auto const closeTime =
fix1141Time () + 100 * env.closed ()->info ().closeTimeResolution;
@@ -952,7 +952,7 @@ struct Flow_test : public beast::unit_test::suite
using namespace jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
// Need new behavior from `accountHolds`
auto const closeTime = fix1141Time() +
@@ -983,7 +983,7 @@ struct Flow_test : public beast::unit_test::suite
using namespace jtx;
{
// Test reverse
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
auto closeTime = fix1298Time();
if (withFix)
closeTime += env.closed()->info().closeTimeResolution;
@@ -1015,7 +1015,7 @@ struct Flow_test : public beast::unit_test::suite
}
{
// Test forward
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
auto closeTime = fix1298Time();
if (withFix)
closeTime += env.closed()->info().closeTimeResolution;
@@ -1055,7 +1055,7 @@ struct Flow_test : public beast::unit_test::suite
testcase("ReexecuteDirectStep");
using namespace jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
auto const alice = Account("alice");
auto const bob = Account("bob");
@@ -1111,7 +1111,7 @@ struct Flow_test : public beast::unit_test::suite
testcase("ripd1443");
using namespace jtx;
Env env(*this, with_features(featureFlow));
Env env(*this, with_only_features(featureFlow));
auto const timeDelta = env.closed ()->info ().closeTimeResolution;
auto const d = withFix ? 100*timeDelta : -100*timeDelta;
auto closeTime = fix1443Time() + d;
@@ -1164,7 +1164,7 @@ struct Flow_test : public beast::unit_test::suite
testcase("ripd1449");
using namespace jtx;
Env env(*this, with_features(featureFlow));
Env env(*this, with_only_features(featureFlow));
auto const timeDelta = env.closed ()->info ().closeTimeResolution;
auto const d = withFix ? 100*timeDelta : -100*timeDelta;
auto closeTime = fix1449Time() + d;
@@ -1210,7 +1210,7 @@ struct Flow_test : public beast::unit_test::suite
using namespace jtx;
Env env(*this, with_features (fs));
Env env(*this, with_only_features (fs));
auto const ann = Account("ann");
auto const gw = Account("gateway");
@@ -1244,7 +1244,7 @@ struct Flow_test : public beast::unit_test::suite
auto const alice = Account("alice");
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice);

View File

@@ -58,7 +58,7 @@ class Freeze_test : public beast::unit_test::suite
testcase("RippleState Freeze");
using namespace test::jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
Account G1 {"G1"};
Account alice {"alice"};
@@ -212,7 +212,7 @@ class Freeze_test : public beast::unit_test::suite
testcase("Global Freeze");
using namespace test::jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
Account G1 {"G1"};
Account A1 {"A1"};
@@ -370,7 +370,7 @@ class Freeze_test : public beast::unit_test::suite
testcase("No Freeze");
using namespace test::jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
Account G1 {"G1"};
Account A1 {"A1"};
@@ -424,7 +424,7 @@ class Freeze_test : public beast::unit_test::suite
testcase("Offers for Frozen Trust Lines");
using namespace test::jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
Account G1 {"G1"};
Account A2 {"A2"};

View File

@@ -39,7 +39,7 @@ public:
void test_noReserve()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice", KeyType::secp256k1};
// Pay alice enough to meet the initial reserve, but not enough to
@@ -87,7 +87,7 @@ public:
void test_signerListSet()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice", KeyType::ed25519};
env.fund(XRP(1000), alice);
@@ -132,7 +132,7 @@ public:
void test_phantomSigners()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice", KeyType::ed25519};
env.fund(XRP(1000), alice);
env.close();
@@ -233,7 +233,7 @@ public:
void test_fee ()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice", KeyType::ed25519};
env.fund(XRP(1000), alice);
env.close();
@@ -283,7 +283,7 @@ public:
void test_misorderedSigners()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice", KeyType::ed25519};
env.fund(XRP(1000), alice);
env.close();
@@ -305,7 +305,7 @@ public:
void test_masterSigners()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice", KeyType::ed25519};
Account const becky {"becky", KeyType::secp256k1};
Account const cheri {"cheri", KeyType::ed25519};
@@ -357,7 +357,7 @@ public:
void test_regularSigners()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice", KeyType::secp256k1};
Account const becky {"becky", KeyType::ed25519};
Account const cheri {"cheri", KeyType::secp256k1};
@@ -415,7 +415,7 @@ public:
void test_regularSignersUsingSubmitMulti()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice", KeyType::secp256k1};
Account const becky {"becky", KeyType::ed25519};
Account const cheri {"cheri", KeyType::secp256k1};
@@ -618,7 +618,7 @@ public:
void test_heterogeneousSigners()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice", KeyType::secp256k1};
Account const becky {"becky", KeyType::ed25519};
Account const cheri {"cheri", KeyType::secp256k1};
@@ -733,7 +733,7 @@ public:
void test_keyDisable()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice", KeyType::ed25519};
env.fund(XRP(1000), alice);
@@ -808,7 +808,7 @@ public:
void test_regKey()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice", KeyType::secp256k1};
env.fund(XRP(1000), alice);
@@ -840,7 +840,7 @@ public:
void test_txTypes()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice", KeyType::secp256k1};
Account const becky {"becky", KeyType::ed25519};
Account const zelda {"zelda", KeyType::secp256k1};
@@ -924,7 +924,7 @@ public:
// Verify that the text returned for signature failures is correct.
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
// lambda that submits an STTx and returns the resulting JSON.
auto submitSTTx = [&env] (STTx const& stx)
@@ -1058,7 +1058,7 @@ public:
void test_noMultiSigners()
{
using namespace jtx;
Env env {*this, with_features(featureMultiSign)};
Env env {*this, with_only_features(featureMultiSign)};
Account const alice {"alice", KeyType::ed25519};
Account const becky {"becky", KeyType::secp256k1};
env.fund(XRP(1000), alice, becky);

View File

@@ -120,7 +120,7 @@ public:
// not used for the payment.
using namespace jtx;
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -171,7 +171,7 @@ public:
testcase ("Removing Canceled Offers");
using namespace jtx;
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -241,7 +241,7 @@ public:
auto const USD = gw["USD"];
auto const EUR = gw["EUR"];
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
env.fund (XRP (10000), alice, bob, carol, gw);
env.trust (USD (1000), alice, bob, carol);
@@ -310,7 +310,7 @@ public:
if (!withFix && fs.size())
continue;
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
auto closeTime = [&]
{
@@ -391,7 +391,7 @@ public:
{
// No ripple with an implied account step after an offer
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -420,7 +420,7 @@ public:
}
{
// Make sure payment works with default flags
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -475,7 +475,7 @@ public:
// No crossing:
{
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -500,7 +500,7 @@ public:
// Partial cross:
{
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -534,7 +534,7 @@ public:
// if an offer were added. Attempt to sell IOUs to
// buy XRP. If it fully crosses, we succeed.
{
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -600,7 +600,7 @@ public:
// Fill or Kill - unless we fully cross, just charge
// a fee and not place the offer on the books:
{
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -645,7 +645,7 @@ public:
// Immediate or Cancel - cross as much as possible
// and add nothing on the books:
{
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -701,7 +701,7 @@ public:
// tfPassive -- place the offer without crossing it.
{
Env env (*this, with_features (fs));
Env env (*this, with_only_features (fs));
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -758,7 +758,7 @@ public:
// tfPassive -- cross only offers of better quality.
{
Env env (*this, with_features (fs));
Env env (*this, with_only_features (fs));
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -810,7 +810,7 @@ public:
auto const alice = Account {"alice"};
auto const USD = gw["USD"];
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -914,7 +914,7 @@ public:
Json::StaticString const key ("Expiration");
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -987,7 +987,7 @@ public:
auto const usdOffer = USD (1000);
auto const xrpOffer = XRP (1000);
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1053,7 +1053,7 @@ public:
auto const USD = gw["USD"];
auto const BTC = gw["BTC"];
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1168,7 +1168,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1255,7 +1255,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1315,7 +1315,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1365,7 +1365,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1398,7 +1398,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1432,7 +1432,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1497,7 +1497,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1530,7 +1530,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1622,7 +1622,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1666,7 +1666,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1718,7 +1718,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1788,7 +1788,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1846,7 +1846,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1886,7 +1886,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1932,7 +1932,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -1980,7 +1980,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -2089,7 +2089,7 @@ public:
auto const gw = Account("gateway");
auto const USD = gw["USD"];
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -2251,7 +2251,7 @@ public:
auto const usdOffer = USD(1000);
auto const xrpOffer = XRP(1000);
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -2336,7 +2336,7 @@ public:
auto const usdOffer = USD(1000);
auto const eurOffer = EUR(1000);
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -2433,7 +2433,7 @@ public:
auto const usdOffer = USD(1000);
auto const eurOffer = EUR(1000);
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -2531,7 +2531,7 @@ public:
auto const gw = Account("gateway");
auto const USD = gw["USD"];
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -2708,7 +2708,7 @@ public:
auto const bob = Account("bob");
auto const USD = gw["USD"];
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -2788,7 +2788,7 @@ public:
auto const gw1 = Account("gateway1");
auto const USD = gw1["USD"];
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -3113,7 +3113,7 @@ public:
auto const gw = Account("gateway");
auto const USD = gw["USD"];
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -3176,7 +3176,7 @@ public:
auto const USD = gw1["USD"];
auto const EUR = gw2["EUR"];
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -3297,7 +3297,7 @@ public:
// correctly now.
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -3349,7 +3349,8 @@ public:
// The problem was identified when featureOwnerPaysFee was enabled,
// so make sure that gets included.
Env env {*this, with_features(fs) | with_features(featureOwnerPaysFee)};
Env env {*this,
with_only_features(fs) | with_only_features(featureOwnerPaysFee)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -3427,7 +3428,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -3482,7 +3483,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -3522,7 +3523,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -3571,7 +3572,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -3625,7 +3626,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time () +
100 * env.closed ()->info ().closeTimeResolution;
@@ -3684,7 +3685,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time() +
100 * env.closed()->info().closeTimeResolution;
@@ -3767,7 +3768,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time() +
100 * env.closed()->info().closeTimeResolution;
@@ -3919,7 +3920,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time() +
100 * env.closed()->info().closeTimeResolution;
@@ -4048,7 +4049,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time() +
100 * env.closed()->info().closeTimeResolution;
@@ -4120,7 +4121,7 @@ public:
using namespace jtx;
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
auto const closeTime =
fix1449Time() +
100 * env.closed()->info().closeTimeResolution;
@@ -4242,7 +4243,7 @@ public:
testcase("RippleConnect Smoketest payment flow");
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time() +
100 * env.closed()->info().closeTimeResolution;
@@ -4335,7 +4336,7 @@ public:
using namespace jtx;
Env env {*this, with_features (fs)};
Env env {*this, with_only_features (fs)};
auto const closeTime =
fix1449Time() +
100 * env.closed()->info().closeTimeResolution;
@@ -4413,7 +4414,7 @@ public:
// Try to set tick size without enabling feature
{
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
auto const gw = Account {"gateway"};
env.fund (XRP(10000), gw);
@@ -4422,7 +4423,8 @@ public:
env(txn, ter(temDISABLED));
}
auto const fsPlus = with_features(fs) | with_features(featureTickSize);
auto const fsPlus =
with_only_features(fs) | with_only_features(featureTickSize);
// Try to set tick size out of range
{

View File

@@ -1025,7 +1025,7 @@ public:
{
testcase("Path Find: CNY");
using namespace jtx;
Env env{*this, all_features_except(featureFlow)};
Env env{*this, supported_features_except(featureFlow)};
Account A1 {"A1"};
Account A2 {"A2"};

View File

@@ -632,7 +632,7 @@ struct PayStrandAllPairs_test : public beast::unit_test::suite
using RippleCalc = ::ripple::path::RippleCalc;
ExistingElementPool eep;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
auto const closeTime = fix1298Time() +
100 * env.closed()->info().closeTimeResolution;
@@ -910,7 +910,7 @@ struct PayStrand_test : public beast::unit_test::suite
};
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, gw);
env.trust(USD(1000), alice, bob);
env.trust(EUR(1000), alice, bob);
@@ -951,7 +951,7 @@ struct PayStrand_test : public beast::unit_test::suite
};
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, carol, gw);
test(env, USD, boost::none, STPath(), terNO_LINE);
@@ -1134,7 +1134,7 @@ struct PayStrand_test : public beast::unit_test::suite
// cannot have more than one offer with the same output issue
using namespace jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, carol, gw);
env.trust(USD(10000), alice, bob, carol);
@@ -1156,7 +1156,7 @@ struct PayStrand_test : public beast::unit_test::suite
}
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, noripple(gw));
env.trust(USD(1000), alice, bob);
env(pay(gw, alice, USD(100)));
@@ -1165,7 +1165,7 @@ struct PayStrand_test : public beast::unit_test::suite
{
// check global freeze
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, gw);
env.trust(USD(1000), alice, bob);
env(pay(gw, alice, USD(100)));
@@ -1190,7 +1190,7 @@ struct PayStrand_test : public beast::unit_test::suite
}
{
// Freeze between gw and alice
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, gw);
env.trust(USD(1000), alice, bob);
env(pay(gw, alice, USD(100)));
@@ -1203,7 +1203,7 @@ struct PayStrand_test : public beast::unit_test::suite
// check no auth
// An account may require authorization to receive IOUs from an
// issuer
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, gw);
env(fset(gw, asfRequireAuth));
env.trust(USD(1000), alice, bob);
@@ -1231,7 +1231,7 @@ struct PayStrand_test : public beast::unit_test::suite
}
{
// Check path with sendMax and node with correct sendMax already set
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, gw);
env.trust(USD(1000), alice, bob);
env.trust(EUR(1000), alice, bob);
@@ -1246,7 +1246,7 @@ struct PayStrand_test : public beast::unit_test::suite
{
// last step xrp from offer
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, gw);
env.trust(USD(1000), alice, bob);
env(pay(gw, alice, USD(100)));
@@ -1287,7 +1287,7 @@ struct PayStrand_test : public beast::unit_test::suite
if (hasFeature(fix1373, fs))
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, gw);
env.trust(USD(1000), alice, bob);
@@ -1319,7 +1319,7 @@ struct PayStrand_test : public beast::unit_test::suite
}
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, carol, gw);
env.trust(USD(10000), alice, bob, carol);
@@ -1337,7 +1337,7 @@ struct PayStrand_test : public beast::unit_test::suite
}
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, carol, gw);
env.trust(USD(10000), alice, bob, carol);
@@ -1371,7 +1371,7 @@ struct PayStrand_test : public beast::unit_test::suite
auto const CNY = gw["CNY"];
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, carol, gw);
env.trust(USD(10000), alice, bob, carol);
@@ -1396,7 +1396,7 @@ struct PayStrand_test : public beast::unit_test::suite
ter(expectedResult));
}
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, carol, gw);
env.trust(USD(10000), alice, bob, carol);
@@ -1431,7 +1431,7 @@ struct PayStrand_test : public beast::unit_test::suite
auto const gw = Account("gw");
auto const USD = gw["USD"];
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(10000), alice, bob, gw);
STAmount sendMax{USD.issue(), 100, 1};

View File

@@ -52,13 +52,13 @@ struct SetAuth_test : public beast::unit_test::suite
auto const gw = Account("gw");
auto const USD = gw["USD"];
{
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
env.fund(XRP(100000), "alice", gw);
env(fset(gw, asfRequireAuth));
env(auth(gw, "alice", "USD"), ter(tecNO_LINE_REDUNDANT));
}
{
Env env(*this, with_features(featureTrustSetAuth));
Env env(*this, with_only_features(featureTrustSetAuth));
env.fund(XRP(100000), "alice", "bob", gw);
env(fset(gw, asfRequireAuth));
env(auth(gw, "alice", "USD"));

View File

@@ -126,7 +126,7 @@ class Ticket_test : public beast::unit_test::suite
testcase ("Cancel Nonexistent");
using namespace test::jtx;
Env env {*this, with_features (featureTickets)};
Env env {*this, with_only_features (featureTickets)};
env (ticket::cancel (env.master, idOne), ter (tecNO_ENTRY));
}
@@ -135,7 +135,7 @@ class Ticket_test : public beast::unit_test::suite
testcase ("Create/Cancel Ticket with Bad Fee, Fail Preflight");
using namespace test::jtx;
Env env {*this, with_features (featureTickets)};
Env env {*this, with_only_features (featureTickets)};
env (ticket::create (env.master), fee (XRP (-1)), ter (temBAD_FEE));
env (ticket::cancel (env.master, idOne), fee (XRP (-1)), ter (temBAD_FEE));
@@ -146,7 +146,7 @@ class Ticket_test : public beast::unit_test::suite
testcase ("Create Tickets with Nonexistent Accounts");
using namespace test::jtx;
Env env {*this, with_features (featureTickets)};
Env env {*this, with_only_features (featureTickets)};
Account alice {"alice"};
env.memoize (alice);
@@ -162,7 +162,7 @@ class Ticket_test : public beast::unit_test::suite
testcase ("Create Tickets with Same Account and Target");
using namespace test::jtx;
Env env {*this, with_features (featureTickets)};
Env env {*this, with_only_features (featureTickets)};
env (ticket::create (env.master, env.master));
auto cr = checkTicketMeta (env);
@@ -183,7 +183,7 @@ class Ticket_test : public beast::unit_test::suite
testcase ("Create Ticket and Then Cancel by Creator");
using namespace test::jtx;
Env env {*this, with_features (featureTickets)};
Env env {*this, with_only_features (featureTickets)};
// create and verify
env (ticket::create (env.master));
@@ -215,7 +215,7 @@ class Ticket_test : public beast::unit_test::suite
testcase ("Create Ticket Insufficient Reserve");
using namespace test::jtx;
Env env {*this, with_features (featureTickets)};
Env env {*this, with_only_features (featureTickets)};
Account alice {"alice"};
env.fund (env.current ()->fees ().accountReserve (0), alice);
@@ -229,7 +229,7 @@ class Ticket_test : public beast::unit_test::suite
testcase ("Create Ticket and Then Cancel by Target");
using namespace test::jtx;
Env env {*this, with_features (featureTickets)};
Env env {*this, with_only_features (featureTickets)};
Account alice {"alice"};
env.fund (XRP (10000), alice);
@@ -275,7 +275,7 @@ class Ticket_test : public beast::unit_test::suite
testcase ("Create Ticket with Future Expiration");
using namespace test::jtx;
Env env {*this, with_features (featureTickets)};
Env env {*this, with_only_features (featureTickets)};
// create and verify
uint32_t expire =
@@ -300,7 +300,7 @@ class Ticket_test : public beast::unit_test::suite
testcase ("Create Ticket with Zero Expiration");
using namespace test::jtx;
Env env {*this, with_features (featureTickets)};
Env env {*this, with_only_features (featureTickets)};
// create and verify
env (ticket::create (env.master, 0u), ter (temBAD_EXPIRATION));
@@ -311,7 +311,7 @@ class Ticket_test : public beast::unit_test::suite
testcase ("Create Ticket with Past Expiration");
using namespace test::jtx;
Env env {*this, with_features (featureTickets)};
Env env {*this, with_only_features (featureTickets)};
env.timeKeeper ().adjustCloseTime (days {2});
env.close ();
@@ -340,7 +340,7 @@ class Ticket_test : public beast::unit_test::suite
testcase ("Create Ticket and Allow to Expire");
using namespace test::jtx;
Env env {*this, with_features (featureTickets)};
Env env {*this, with_only_features (featureTickets)};
// create and verify
uint32_t expire =

View File

@@ -51,7 +51,7 @@ class TrustAndBalance_test : public beast::unit_test::suite
testcase ("Payment to Nonexistent Account");
using namespace test::jtx;
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
env (pay (env.master, "alice", XRP(1)), ter(tecNO_DST_INSUF_XRP));
env.close();
}
@@ -167,7 +167,7 @@ class TrustAndBalance_test : public beast::unit_test::suite
testcase ("Direct Payment, Ripple");
using namespace test::jtx;
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
Account alice {"alice"};
Account bob {"bob"};
@@ -210,7 +210,7 @@ class TrustAndBalance_test : public beast::unit_test::suite
(subscribe ? "With " : "Without ") + " Subscribe");
using namespace test::jtx;
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
auto wsc = test::makeWSClient(env.app().config());
Account gw {"gateway"};
Account alice {"alice"};
@@ -288,7 +288,7 @@ class TrustAndBalance_test : public beast::unit_test::suite
testcase ("Payments With Paths and Fees");
using namespace test::jtx;
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
Account gw {"gateway"};
Account alice {"alice"};
Account bob {"bob"};
@@ -336,7 +336,7 @@ class TrustAndBalance_test : public beast::unit_test::suite
testcase ("Indirect Payment");
using namespace test::jtx;
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
Account gw {"gateway"};
Account alice {"alice"};
Account bob {"bob"};
@@ -378,7 +378,7 @@ class TrustAndBalance_test : public beast::unit_test::suite
(with_rate ? "With " : "Without ") + " Xfer Fee, ");
using namespace test::jtx;
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
Account gw {"gateway"};
Account amazon {"amazon"};
Account alice {"alice"};
@@ -443,7 +443,7 @@ class TrustAndBalance_test : public beast::unit_test::suite
testcase ("Set Invoice ID on Payment");
using namespace test::jtx;
Env env {*this, with_features(fs)};
Env env {*this, with_only_features(fs)};
Account alice {"alice"};
auto wsc = test::makeWSClient(env.app().config());

View File

@@ -36,12 +36,6 @@
namespace ripple {
namespace detail {
extern
std::vector<std::string>
supportedAmendments ();
}
namespace test {
class TxQ_test : public beast::unit_test::suite
@@ -1568,7 +1562,7 @@ public:
{
using namespace jtx;
using namespace std::chrono;
Env env(*this, with_features(featureTickets));
Env env(*this, with_only_features(featureTickets));
auto const alice = Account("alice");
env.memoize(alice);
env.memoize("bob");

View File

@@ -56,13 +56,6 @@
namespace ripple {
namespace detail {
extern
std::vector<std::string>
supportedAmendments ();
}
namespace test {
namespace jtx {
@@ -84,7 +77,7 @@ noripple (Account const& account, Args const&... args)
*/
template <class... Args>
FeatureBitset
with_features (uint256 const& key, Args const&... args)
with_only_features (uint256 const& key, Args const&... args)
{
return makeFeatureBitset(
std::array<uint256, 1 + sizeof...(args)>{{key, args...}});
@@ -100,7 +93,7 @@ with_features (uint256 const& key, Args const&... args)
*/
template<class Col>
FeatureBitset
with_features (Col&& keys)
with_only_features (Col&& keys)
{
return makeFeatureBitset(std::forward<Col>(keys));
}
@@ -109,7 +102,7 @@ constexpr FeatureBitset no_features = {};
inline
FeatureBitset
all_amendments()
supported_amendments()
{
static const FeatureBitset ids = []{
auto const& sa = ripple::detail::supportedAmendments();
@@ -137,9 +130,9 @@ all_amendments()
*/
template<class Col>
FeatureBitset
all_features_except (Col const& keys)
supported_features_except (Col const& keys)
{
return all_amendments() & ~makeFeatureBitset(keys);
return supported_amendments() & ~makeFeatureBitset(keys);
}
/**
@@ -152,9 +145,9 @@ all_features_except (Col const& keys)
*/
template <class... Args>
FeatureBitset
all_features_except (uint256 const& key, Args const&... args)
supported_features_except (uint256 const& key, Args const&... args)
{
return all_features_except(
return supported_features_except(
std::array<uint256, 1 + sizeof...(args)>{{key, args...}});
}
@@ -250,8 +243,8 @@ public:
* @param suite_ the current unit_test::suite
* @param config The desired Config - ownership will be taken by moving
* the pointer. See envconfig and related functions for common config tweaks.
* @param args with_features() to explicitly enable or all_features_except() to
* enable all and disable specific features
* @param args with_only_features() to explicitly enable or
* supported_features_except() to enable all and disable specific features.
*/
// VFALCO Could wrap the suite::log in a Journal here
Env (beast::unit_test::suite& suite_,
@@ -277,9 +270,9 @@ public:
* features.
*
* This constructor will create an Env with the standard Env configuration
* (from envconfig()) and features explicitly specified. Use with_features(...)
* or all_features_except(...) to create a collection of features appropriate
* for passing here.
* (from envconfig()) and features explicitly specified. Use
* with_only_features(...) or supported_features_except(...) to create a
* collection of features appropriate for passing here.
*
* @param suite_ the current unit_test::suite
* @param args collection of features
@@ -305,7 +298,8 @@ public:
Env (beast::unit_test::suite& suite_,
std::unique_ptr<Config> config,
std::unique_ptr<Logs> logs = nullptr)
: Env(suite_, std::move(config), all_amendments(), std::move(logs))
: Env(suite_, std::move(config),
supported_amendments(), std::move(logs))
{
}

View File

@@ -301,7 +301,7 @@ public:
env(pay(env.master, "alice", XRP(1000)), fee(none), ter(temMALFORMED));
env(pay(env.master, "alice", XRP(1000)), fee(1), ter(telINSUF_FEE_P));
env(pay(env.master, "alice", XRP(1000)), seq(none), ter(temMALFORMED));
env(pay(env.master, "alice", XRP(1000)), seq(20), ter(terPRE_SEQ));
env(pay(env.master, "alice", XRP(1000)), seq(20), ter(terPRE_SEQ));
env(pay(env.master, "alice", XRP(1000)), sig(none), ter(temMALFORMED));
env(pay(env.master, "alice", XRP(1000)), sig("bob"), ter(tefBAD_AUTH_MASTER));
@@ -355,7 +355,7 @@ public:
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
env.fund(XRP(10000), "alice");
env(signers("alice", 1,
{ { "alice", 1 }, { "bob", 2 } }), ter(temBAD_SIGNER));
@@ -384,7 +384,7 @@ public:
ticket::create("alice", 60, "bob");
{
Env env(*this, with_features(featureTickets));
Env env(*this, with_only_features(featureTickets));
env.fund(XRP(10000), "alice");
env(noop("alice"), require(owners("alice", 0), tickets("alice", 0)));
env(ticket::create("alice"), require(owners("alice", 1), tickets("alice", 1)));
@@ -632,7 +632,7 @@ public:
{
testcase("Env features");
using namespace jtx;
auto const supported = all_amendments();
auto const supported = supported_amendments();
// this finds a feature that is not in
// the supported amendments list and tests that it can be
@@ -655,7 +655,7 @@ public:
return;
}
auto const neverSupported = with_features(*neverSupportedFeat);
auto const neverSupported = with_only_features(*neverSupportedFeat);
auto hasFeature = [](Env& env, uint256 const& f)
{
@@ -674,22 +674,23 @@ public:
}
{
// a Env with_features has *only* those features
Env env{*this, with_features(featureEscrow, featureTickets)};
// a Env with_only_features has *only* those features
Env env{*this, with_only_features(featureEscrow, featureFlow)};
BEAST_EXPECT(env.app().config().features.size() == 2);
foreachFeature(supported, [&](uint256 const& f) {
bool const has = (f == featureEscrow || f == featureTickets);
bool const has = (f == featureEscrow || f == featureFlow);
this->BEAST_EXPECT(has == hasFeature(env, f));
});
}
{
// a Env all_features_except is missing *only* those features
Env env{*this, all_features_except(featureEscrow, featureTickets)};
// a Env supported_features_except is missing *only* those features
Env env{*this,
supported_features_except(featureEscrow, featureFlow)};
BEAST_EXPECT(
env.app().config().features.size() == (supported.count() - 2));
foreachFeature(supported, [&](uint256 const& f) {
bool hasnot = (f == featureEscrow || f == featureTickets);
bool hasnot = (f == featureEscrow || f == featureFlow);
this->BEAST_EXPECT(hasnot != hasFeature(env, f));
});
}
@@ -701,7 +702,8 @@ public:
// the two supported ones
Env env{
*this,
with_features(featureEscrow, featureTickets) | neverSupported};
with_only_features(
featureEscrow, featureFlow) | neverSupported};
// this app will have just 2 supported amendments and
// one additional never supported feature flag
@@ -709,7 +711,7 @@ public:
BEAST_EXPECT(hasFeature(env, *neverSupportedFeat));
foreachFeature(supported, [&](uint256 const& f) {
bool has = (f == featureEscrow || f == featureTickets);
bool has = (f == featureEscrow || f == featureFlow);
this->BEAST_EXPECT(has == hasFeature(env, f));
});
}
@@ -719,7 +721,7 @@ public:
// and omit a few standard amendments
// the unsupported features should be enabled
Env env{*this,
all_features_except(featureEscrow, featureTickets) |
supported_features_except(featureEscrow, featureFlow) |
neverSupported};
// this app will have all supported amendments minus 2 and then the
@@ -729,7 +731,7 @@ public:
(supported.count() - 2 + 1));
BEAST_EXPECT(hasFeature(env, *neverSupportedFeat));
foreachFeature(supported, [&](uint256 const& f) {
bool hasnot = (f == featureEscrow || f == featureTickets);
bool hasnot = (f == featureEscrow || f == featureFlow);
this->BEAST_EXPECT(hasnot != hasFeature(env, f));
});
}
@@ -738,7 +740,7 @@ public:
// add a feature that is NOT in the supported amendments list
// along with all supported amendments
// the unsupported features should be enabled
Env env{*this, all_amendments() | neverSupported};
Env env{*this, supported_amendments() | neverSupported};
// this app will have all supported amendments and then the
// one additional never supported feature flag

View File

@@ -28,7 +28,7 @@ struct BookDirs_test : public beast::unit_test::suite
void test_bookdir(std::initializer_list<uint256> fs)
{
using namespace jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
auto gw = Account("gw");
auto USD = gw["USD"];
env.fund(XRP(1000000), "alice", "bob", "gw");

View File

@@ -88,7 +88,7 @@ struct Directory_test : public beast::unit_test::suite
{
testcase ("Directory Ordering (without 'SortedDirectories' amendment");
Env env(*this, all_features_except(featureSortedDirectories));
Env env(*this, supported_features_except(featureSortedDirectories));
env.fund(XRP(10000000), alice, bob, gw);
// Insert 400 offers from Alice, then one from Bob:
@@ -116,7 +116,7 @@ struct Directory_test : public beast::unit_test::suite
{
testcase ("Directory Ordering (with 'SortedDirectories' amendment)");
Env env(*this, with_features(featureSortedDirectories));
Env env(*this, with_only_features(featureSortedDirectories));
env.fund(XRP(10000000), alice, gw);
for (std::size_t i = 1; i <= 400; ++i)
@@ -184,7 +184,8 @@ struct Directory_test : public beast::unit_test::suite
beast::xor_shift_engine eng;
Env env(*this, with_features(featureSortedDirectories, featureMultiSign));
Env env(*this,
with_only_features(featureSortedDirectories, featureMultiSign));
env.fund(XRP(1000000), alice, charlie, gw);
env.close();
@@ -288,7 +289,7 @@ struct Directory_test : public beast::unit_test::suite
testcase("RIPD-1353 Empty Offer Directories");
using namespace jtx;
Env env(*this, with_features(featureSortedDirectories));
Env env(*this, with_only_features(featureSortedDirectories));
auto const gw = Account{"gateway"};
auto const alice = Account{"alice"};
@@ -348,7 +349,7 @@ struct Directory_test : public beast::unit_test::suite
testcase("Empty Chain on Delete");
using namespace jtx;
Env env(*this, with_features(featureSortedDirectories));
Env env(*this, with_only_features(featureSortedDirectories));
auto const gw = Account{"gateway"};
auto const alice = Account{"alice"};

View File

@@ -60,7 +60,7 @@ class PaymentSandbox_test : public beast::unit_test::suite
testcase ("selfFunding");
using namespace jtx;
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
Account const gw1 ("gw1");
Account const gw2 ("gw2");
Account const snd ("snd");
@@ -101,7 +101,7 @@ class PaymentSandbox_test : public beast::unit_test::suite
testcase ("subtractCredits");
using namespace jtx;
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
Account const gw1 ("gw1");
Account const gw2 ("gw2");
Account const alice ("alice");
@@ -266,7 +266,7 @@ class PaymentSandbox_test : public beast::unit_test::suite
using namespace jtx;
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
Account const gw ("gw");
Account const alice ("alice");
@@ -312,7 +312,7 @@ class PaymentSandbox_test : public beast::unit_test::suite
return env.current ()->fees ().accountReserve (count);
};
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
Account const alice ("alice");
env.fund (reserve(env, 1), alice);
@@ -340,7 +340,7 @@ class PaymentSandbox_test : public beast::unit_test::suite
testcase ("balanceHook");
using namespace jtx;
Env env (*this, with_features(fs));
Env env (*this, with_only_features(fs));
Account const gw ("gw");
auto const USD = gw["USD"];

View File

@@ -59,7 +59,7 @@ public:
void testSignerLists()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice"};
env.fund(XRP(1000), alice);
@@ -165,7 +165,7 @@ public:
void testSignerListsV2()
{
using namespace jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice {"alice"};
env.fund(XRP(1000), alice);

View File

@@ -237,7 +237,7 @@ public:
{
testcase ("Setting transfer rate (without fix1201)");
doTests (all_features_except(fix1201),
doTests (supported_features_except(fix1201),
{
{ 1.0, tesSUCCESS, 1.0 },
{ 1.1, tesSUCCESS, 1.1 },
@@ -250,7 +250,7 @@ public:
{
testcase ("Setting transfer rate (with fix1201)");
doTests (all_amendments(),
doTests (supported_amendments(),
{
{ 1.0, tesSUCCESS, 1.0 },
{ 1.1, tesSUCCESS, 1.1 },
@@ -290,16 +290,16 @@ public:
};
// Test gateway with allowed transfer rates
runTest (Env{*this, all_features_except(fix1201)}, 1.02);
runTest (Env{*this, all_features_except(fix1201)}, 1);
runTest (Env{*this, all_features_except(fix1201)}, 2);
runTest (Env{*this, all_features_except(fix1201)}, 2.1);
runTest (Env{*this, all_amendments()}, 1.02);
runTest (Env{*this, all_amendments()}, 2);
runTest (Env{*this, supported_features_except(fix1201)}, 1.02);
runTest (Env{*this, supported_features_except(fix1201)}, 1);
runTest (Env{*this, supported_features_except(fix1201)}, 2);
runTest (Env{*this, supported_features_except(fix1201)}, 2.1);
runTest (Env{*this, supported_amendments()}, 1.02);
runTest (Env{*this, supported_amendments()}, 2);
// Test gateway when amendment is set after transfer rate
{
Env env (*this, all_features_except(fix1201));
Env env (*this, supported_features_except(fix1201));
Account const alice ("alice");
Account const bob ("bob");
Account const gw ("gateway");
@@ -371,7 +371,7 @@ public:
void testRequireAuthWithDir()
{
using namespace test::jtx;
Env env(*this, with_features(featureMultiSign));
Env env(*this, with_only_features(featureMultiSign));
Account const alice ("alice");
Account const bob ("bob");

View File

@@ -116,7 +116,7 @@ class Feature_test : public beast::unit_test::suite
using namespace test::jtx;
Env env {*this,
with_features(featureEscrow, featureCryptoConditions)};
with_only_features(featureEscrow, featureCryptoConditions)};
// The amendment table has to be modified
// since that is what feature RPC actually checks
env.app().getAmendmentTable().enable(featureEscrow);
@@ -220,7 +220,7 @@ class Feature_test : public beast::unit_test::suite
using namespace test::jtx;
Env env {*this,
with_features(featureCryptoConditions)};
with_only_features(featureCryptoConditions)};
// The amendment table has to be modified
// since that is what feature RPC actually checks
env.app().getAmendmentTable().enable(featureCryptoConditions);

View File

@@ -34,7 +34,7 @@ public:
{
using namespace std::chrono_literals;
using namespace jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
// Gateway account and assets
Account const alice {"alice"};

View File

@@ -2254,7 +2254,8 @@ public:
// "b" (not in the ledger) is rDg53Haik2475DJx8bjMDSDPj4VX7htaMd.
// "c" (phantom signer) is rPcNzota6B8YBokhYtcTNqQVCngtbnWfux.
test::jtx::Env env(*this, test::jtx::with_features(featureMultiSign));
test::jtx::Env env(*this,
test::jtx::with_only_features(featureMultiSign));
env.fund(test::jtx::XRP(100000), a, ed, g);
env.close();

View File

@@ -268,7 +268,7 @@ public:
using namespace test::jtx;
using namespace std::chrono;
Env env { *this, envconfig(validator, ""),
with_features(featureMultiSign, featureTickets,
with_only_features(featureMultiSign, featureTickets,
featureEscrow, featurePayChan) };
Account const gw { "gateway" };
auto const USD = gw["USD"];

View File

@@ -72,7 +72,7 @@ public:
testcase("Set noripple on a line with negative balance");
using namespace jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
auto const gw = Account("gateway");
auto const alice = Account("alice");
@@ -118,7 +118,7 @@ public:
testcase("pairwise NoRipple");
using namespace jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
auto const alice = Account("alice");
auto const bob = Account("bob");
@@ -155,7 +155,7 @@ public:
testcase("Set default ripple on an account and check new trustlines");
using namespace jtx;
Env env(*this, with_features(fs));
Env env(*this, with_only_features(fs));
auto const gw = Account("gateway");
auto const alice = Account("alice");