diff --git a/src/ripple/core/Config.h b/src/ripple/core/Config.h index 034f81e38..c4a5076e7 100644 --- a/src/ripple/core/Config.h +++ b/src/ripple/core/Config.h @@ -174,10 +174,10 @@ public: // Servers operating as validators disable path finding by // default by setting the `PATH_SEARCH_MAX` option to 0 // unless it is explicitly set in the configuration file. - int PATH_SEARCH_OLD = 7; - int PATH_SEARCH = 7; + int PATH_SEARCH_OLD = 2; + int PATH_SEARCH = 2; int PATH_SEARCH_FAST = 2; - int PATH_SEARCH_MAX = 10; + int PATH_SEARCH_MAX = 3; // Validation std::optional diff --git a/src/test/app/Path_test.cpp b/src/test/app/Path_test.cpp index 32eb19905..b83b0d00d 100644 --- a/src/test/app/Path_test.cpp +++ b/src/test/app/Path_test.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include namespace ripple { @@ -171,6 +172,21 @@ IPE(Issue const& iss) class Path_test : public beast::unit_test::suite { + jtx::Env + pathTestEnv() + { + // These tests were originally written with search parameters that are + // different from the current defaults. This function creates an env + // with the search parameters that the tests were written for. + using namespace jtx; + return Env(*this, envconfig([](std::unique_ptr cfg) { + cfg->PATH_SEARCH_OLD = 7; + cfg->PATH_SEARCH = 7; + cfg->PATH_SEARCH_MAX = 10; + return cfg; + })); + } + public: class gate { @@ -314,7 +330,7 @@ public: testcase("source currency limits"); using namespace std::chrono_literals; using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); auto const gw = Account("gateway"); env.fund(XRP(10000), "alice", "bob", gw); env.trust(gw["USD"](100), "alice", "bob"); @@ -396,7 +412,7 @@ public: { testcase("no direct path no intermediary no alternatives"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); env.fund(XRP(10000), "alice", "bob"); auto const result = @@ -409,7 +425,7 @@ public: { testcase("direct path no intermediary"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); env.fund(XRP(10000), "alice", "bob"); env.trust(Account("alice")["USD"](700), "bob"); @@ -426,7 +442,7 @@ public: { testcase("payment auto path find"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); auto const gw = Account("gateway"); auto const USD = gw["USD"]; env.fund(XRP(10000), "alice", "bob", gw); @@ -445,7 +461,7 @@ public: { testcase("path find"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); auto const gw = Account("gateway"); auto const USD = gw["USD"]; env.fund(XRP(10000), "alice", "bob", gw); @@ -467,7 +483,7 @@ public: { using namespace jtx; testcase("XRP to XRP"); - Env env(*this); + Env env = pathTestEnv(); env.fund(XRP(10000), "alice", "bob"); auto const result = find_paths(env, "alice", "bob", XRP(5)); @@ -481,7 +497,7 @@ public: using namespace jtx; { - Env env(*this); + Env env = pathTestEnv(); env.fund(XRP(10000), "alice", "bob", "carol", "dan", "edward"); env.trust(Account("alice")["USD"](10), "bob"); env.trust(Account("bob")["USD"](10), "carol"); @@ -500,7 +516,7 @@ public: } { - Env env(*this); + Env env = pathTestEnv(); auto const gw = Account("gateway"); auto const USD = gw["USD"]; env.fund(XRP(10000), "alice", "bob", "carol", gw); @@ -534,7 +550,7 @@ public: { testcase("alternative path consume both"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); auto const gw = Account("gateway"); auto const USD = gw["USD"]; auto const gw2 = Account("gateway2"); @@ -563,7 +579,7 @@ public: { testcase("alternative paths consume best transfer"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); auto const gw = Account("gateway"); auto const USD = gw["USD"]; auto const gw2 = Account("gateway2"); @@ -592,7 +608,7 @@ public: { testcase("alternative paths - consume best transfer first"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); auto const gw = Account("gateway"); auto const USD = gw["USD"]; auto const gw2 = Account("gateway2"); @@ -623,7 +639,7 @@ public: { testcase("alternative paths - limit returned paths to best quality"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); auto const gw = Account("gateway"); auto const USD = gw["USD"]; auto const gw2 = Account("gateway2"); @@ -658,7 +674,7 @@ public: { testcase("path negative: Issue #5"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); env.fund(XRP(10000), "alice", "bob", "carol", "dan"); env.trust(Account("bob")["USD"](100), "alice", "carol", "dan"); env.trust(Account("alice")["USD"](100), "dan"); @@ -696,7 +712,7 @@ public: { testcase("path negative: ripple-client issue #23: smaller"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); env.fund(XRP(10000), "alice", "bob", "carol", "dan"); env.trust(Account("alice")["USD"](40), "bob"); env.trust(Account("dan")["USD"](20), "bob"); @@ -715,7 +731,7 @@ public: { testcase("path negative: ripple-client issue #23: larger"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); env.fund(XRP(10000), "alice", "bob", "carol", "dan", "edward"); env.trust(Account("alice")["USD"](120), "edward"); env.trust(Account("edward")["USD"](25), "bob"); @@ -742,7 +758,7 @@ public: { testcase("via gateway"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); auto const gw = Account("gateway"); auto const AUD = gw["AUD"]; env.fund(XRP(10000), "alice", "bob", "carol", gw); @@ -764,7 +780,7 @@ public: { testcase("path find"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); env.fund(XRP(10000), "alice", "bob", "carol"); env.trust(Account("alice")["USD"](1000), "bob"); env.trust(Account("bob")["USD"](1000), "carol"); @@ -782,7 +798,7 @@ public: { testcase("quality set and test"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); env.fund(XRP(10000), "alice", "bob"); env(trust("bob", Account("alice")["USD"](1000)), json("{\"" + sfQualityIn.fieldName + "\": 2000}"), @@ -828,7 +844,7 @@ public: { testcase("trust normal clear"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); env.fund(XRP(10000), "alice", "bob"); env.trust(Account("bob")["USD"](1000), "alice"); env.trust(Account("alice")["USD"](1000), "bob"); @@ -878,7 +894,7 @@ public: { testcase("trust auto clear"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); env.fund(XRP(10000), "alice", "bob"); env.trust(Account("bob")["USD"](1000), "alice"); env(pay("bob", "alice", Account("bob")["USD"](50))); @@ -931,7 +947,7 @@ public: { testcase("Path Find: XRP -> XRP and XRP -> IOU"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); Account A1{"A1"}; Account A2{"A2"}; Account A3{"A3"}; @@ -1018,7 +1034,7 @@ public: { testcase("Path Find: non-XRP -> XRP"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); Account A1{"A1"}; Account A2{"A2"}; Account G3{"G3"}; @@ -1055,7 +1071,7 @@ public: { testcase("Path Find: Bitstamp and SnapSwap, liquidity with no offers"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); Account A1{"A1"}; Account A2{"A2"}; Account G1BS{"G1BS"}; @@ -1135,7 +1151,7 @@ public: { testcase("Path Find: non-XRP -> non-XRP, same currency"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); Account A1{"A1"}; Account A2{"A2"}; Account A3{"A3"}; @@ -1264,7 +1280,7 @@ public: { testcase("Path Find: non-XRP -> non-XRP, same currency)"); using namespace jtx; - Env env(*this); + Env env = pathTestEnv(); Account A1{"A1"}; Account A2{"A2"}; Account A3{"A3"}; @@ -1315,7 +1331,7 @@ public: auto const USD = gw["USD"]; { // XRP -> IOU receive max - Env env(*this); + Env env = pathTestEnv(); env.fund(XRP(10000), alice, bob, charlie, gw); env.close(); env.trust(USD(100), alice, bob, charlie); @@ -1338,7 +1354,7 @@ public: } { // IOU -> XRP receive max - Env env(*this); + Env env = pathTestEnv(); env.fund(XRP(10000), alice, bob, charlie, gw); env.close(); env.trust(USD(100), alice, bob, charlie);