Change features default behavior in Env (RIPD-1460):

Enable all supported amendments in Env by default. Rename `features()`
to `with_features()` and add `all_features_except()` to support feature
subsets in Env. Refactor internal feature handling based on a bitset.
This commit is contained in:
Mike Ellery
2017-05-01 16:03:44 -07:00
committed by seelabs
parent 3dfb4a13f1
commit 56946e8128
36 changed files with 749 additions and 367 deletions

View File

@@ -175,7 +175,7 @@ struct PayChan_test : public beast::unit_test::suite
testcase ("simple");
using namespace jtx;
using namespace std::literals::chrono_literals;
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
auto const alice = Account ("alice");
auto const bob = Account ("bob");
auto USDA = alice["USD"];
@@ -347,7 +347,7 @@ struct PayChan_test : public beast::unit_test::suite
auto const carol = Account ("carol");
{
// If dst claims after cancel after, channel closes
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
env.fund (XRP (10000), alice, bob);
auto const pk = alice.pk ();
auto const settleDelay = 100s;
@@ -386,7 +386,7 @@ struct PayChan_test : public beast::unit_test::suite
}
{
// Third party can close after cancel after
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
env.fund (XRP (10000), alice, bob, carol);
auto const pk = alice.pk ();
auto const settleDelay = 100s;
@@ -416,7 +416,7 @@ struct PayChan_test : public beast::unit_test::suite
testcase ("expiration");
using namespace jtx;
using namespace std::literals::chrono_literals;
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
auto const alice = Account ("alice");
auto const bob = Account ("bob");
auto const carol = Account ("carol");
@@ -477,7 +477,7 @@ struct PayChan_test : public beast::unit_test::suite
testcase ("settle delay");
using namespace jtx;
using namespace std::literals::chrono_literals;
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
auto const alice = Account ("alice");
auto const bob = Account ("bob");
env.fund (XRP (10000), alice, bob);
@@ -537,7 +537,7 @@ struct PayChan_test : public beast::unit_test::suite
testcase ("close dry");
using namespace jtx;
using namespace std::literals::chrono_literals;
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
auto const alice = Account ("alice");
auto const bob = Account ("bob");
env.fund (XRP (10000), alice, bob);
@@ -573,7 +573,7 @@ struct PayChan_test : public beast::unit_test::suite
testcase ("default amount");
using namespace jtx;
using namespace std::literals::chrono_literals;
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
auto const alice = Account ("alice");
auto const bob = Account ("bob");
env.fund (XRP (10000), alice, bob);
@@ -632,7 +632,7 @@ struct PayChan_test : public beast::unit_test::suite
using namespace std::literals::chrono_literals;
{
// Create a channel where dst disallows XRP
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
auto const alice = Account ("alice");
auto const bob = Account ("bob");
env.fund (XRP (10000), alice, bob);
@@ -648,7 +648,7 @@ struct PayChan_test : public beast::unit_test::suite
{
// Claim to a channel where dst disallows XRP
// (channel is created before disallow xrp is set)
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
auto const alice = Account ("alice");
auto const bob = Account ("bob");
env.fund (XRP (10000), alice, bob);
@@ -674,7 +674,7 @@ struct PayChan_test : public beast::unit_test::suite
using namespace jtx;
using namespace std::literals::chrono_literals;
// Create a channel where dst disallows XRP
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
auto const alice = Account ("alice");
auto const bob = Account ("bob");
env.fund (XRP (10000), alice, bob);
@@ -699,7 +699,7 @@ struct PayChan_test : public beast::unit_test::suite
testcase ("Multiple channels to the same account");
using namespace jtx;
using namespace std::literals::chrono_literals;
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
auto const alice = Account ("alice");
auto const bob = Account ("bob");
env.fund (XRP (10000), alice, bob);
@@ -721,7 +721,7 @@ struct PayChan_test : public beast::unit_test::suite
testcase ("RPC");
using namespace jtx;
using namespace std::literals::chrono_literals;
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
auto const alice = Account ("alice");
auto const bob = Account ("bob");
env.fund (XRP (10000), alice, bob);
@@ -791,7 +791,7 @@ struct PayChan_test : public beast::unit_test::suite
testcase ("Optional Fields");
using namespace jtx;
using namespace std::literals::chrono_literals;
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
auto const alice = Account ("alice");
auto const bob = Account ("bob");
auto const carol = Account ("carol");
@@ -831,7 +831,7 @@ struct PayChan_test : public beast::unit_test::suite
testcase ("malformed pk");
using namespace jtx;
using namespace std::literals::chrono_literals;
Env env (*this, features (featurePayChan));
Env env (*this, with_features (featurePayChan));
auto const alice = Account ("alice");
auto const bob = Account ("bob");
auto USDA = alice["USD"];