diff --git a/src/test/app/AMMClawback_test.cpp b/src/test/app/AMMClawback_test.cpp index a452186f2..2395452cb 100644 --- a/src/test/app/AMMClawback_test.cpp +++ b/src/test/app/AMMClawback_test.cpp @@ -2048,7 +2048,7 @@ class AMMClawback_test : public beast::unit_test::suite void run() override { - FeatureBitset const all{jtx::supported_amendments()}; + FeatureBitset const all{jtx::testable_amendments()}; testInvalidRequest(); testFeatureDisabled(all - featureAMMClawback); diff --git a/src/test/app/AMMExtended_test.cpp b/src/test/app/AMMExtended_test.cpp index cbedc6b02..0da9f2da2 100644 --- a/src/test/app/AMMExtended_test.cpp +++ b/src/test/app/AMMExtended_test.cpp @@ -1408,7 +1408,7 @@ private: testOffers() { using namespace jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; testRmFundedOffer(all); testEnforceNoRipple(all); testFillModes(all); @@ -2642,8 +2642,8 @@ private: for (auto const withFix : {true, false}) { auto const feats = withFix - ? supported_amendments() - : supported_amendments() - FeatureBitset{fix1781}; + ? testable_amendments() + : testable_amendments() - FeatureBitset{fix1781}; // Payment path starting with XRP Env env(*this, feats); @@ -3591,7 +3591,7 @@ private: testFlow() { using namespace jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; testFalseDry(all); testBookStep(all); @@ -3604,7 +3604,7 @@ private: testCrossingLimits() { using namespace jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; testStepLimit(all); } @@ -3612,14 +3612,14 @@ private: testDeliverMin() { using namespace jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; test_convert_all_of_an_asset(all); } void testDepositAuth() { - auto const supported{jtx::supported_amendments()}; + auto const supported{jtx::testable_amendments()}; testPayment(supported - featureDepositPreauth); testPayment(supported); testPayIOU(); @@ -3629,7 +3629,7 @@ private: testFreeze() { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testRippleState(sa); testGlobalFreeze(sa); testOffersWhenFrozen(sa); @@ -3639,7 +3639,7 @@ private: testMultisign() { using namespace jtx; - auto const all = supported_amendments(); + auto const all = testable_amendments(); testTxMultisign( all - featureMultiSignReserve - featureExpandedSignerList); @@ -3651,7 +3651,7 @@ private: testPayStrand() { using namespace jtx; - auto const all = supported_amendments(); + auto const all = testable_amendments(); testToStrand(all); testRIPD1373(all); diff --git a/src/test/app/AMM_test.cpp b/src/test/app/AMM_test.cpp index b95b5495a..bcc3bc5ef 100644 --- a/src/test/app/AMM_test.cpp +++ b/src/test/app/AMM_test.cpp @@ -65,7 +65,7 @@ private: {}, 0, {}, - {supported_amendments() | featureSingleAssetVault}); + {testable_amendments() | featureSingleAssetVault}); // XRP to IOU, without featureSingleAssetVault testAMM( @@ -76,7 +76,7 @@ private: {}, 0, {}, - {supported_amendments() - featureSingleAssetVault}); + {testable_amendments() - featureSingleAssetVault}); // IOU to IOU testAMM( @@ -1372,7 +1372,7 @@ private: testcase("Deposit"); using namespace jtx; - auto const all = supported_amendments(); + auto const all = testable_amendments(); // Equal deposit: 1000000 tokens, 10% of the current pool testAMM([&](AMM& ammAlice, Env& env) { @@ -1674,7 +1674,7 @@ private: testcase("Invalid Withdraw"); using namespace jtx; - auto const all = supported_amendments(); + auto const all = testable_amendments(); testAMM( [&](AMM& ammAlice, Env& env) { @@ -2246,7 +2246,7 @@ private: testcase("Withdraw"); using namespace jtx; - auto const all = supported_amendments(); + auto const all = testable_amendments(); // Equal withdrawal by Carol: 1000000 of tokens, 10% of the current // pool @@ -2624,7 +2624,7 @@ private: { testcase("Fee Vote"); using namespace jtx; - auto const all = supported_amendments(); + auto const all = testable_amendments(); // One vote sets fee to 1%. testAMM([&](AMM& ammAlice, Env& env) { @@ -4444,7 +4444,7 @@ private: { testcase("Amendment"); using namespace jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; FeatureBitset const noAMM{all - featureAMM}; FeatureBitset const noNumber{all - fixUniversalNumber}; FeatureBitset const noAMMAndNumber{ @@ -5105,7 +5105,7 @@ private: testcase("Auto Delete"); using namespace jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; { Env env( @@ -5616,7 +5616,7 @@ private: { testcase("Fix Default Inner Object"); using namespace jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; auto test = [&](FeatureBitset features, TER const& err1, @@ -6327,7 +6327,7 @@ private: {{xrpPool, iouPool}}, 889, std::nullopt, - {jtx::supported_amendments()}); + {jtx::testable_amendments()}); } void @@ -6564,7 +6564,8 @@ private: } // If featureAMMClawback is enabled, AMMCreate is allowed for // clawback-enabled issuer. Clawback from the AMM Account is not - // allowed, which will return tecAMM_ACCOUNT. We can only use + // allowed, which will return tecAMM_ACCOUNT or tecPSEUDO_ACCOUNT, + // depending on whether SingleAssetVault is enabled. We can only use // AMMClawback transaction to claw back from AMM Account. else { @@ -6575,13 +6576,16 @@ private: // By doing this, we make the clawback transaction's Amount field's // subfield `issuer` to be the AMM account, which means // we are clawing back from an AMM account. This should return an - // tecAMM_ACCOUNT error because regular Clawback transaction is not + // error because regular Clawback transaction is not // allowed for clawing back from an AMM account. Please notice the // `issuer` subfield represents the account being clawed back, which // is confusing. + auto const error = features[featureSingleAssetVault] + ? ter{tecPSEUDO_ACCOUNT} + : ter{tecAMM_ACCOUNT}; Issue usd(USD.issue().currency, amm.ammAccount()); auto amount = amountFromString(usd, "10"); - env(claw(gw, amount), ter(tecAMM_ACCOUNT)); + env(claw(gw, amount), error); } } @@ -6760,10 +6764,10 @@ private: // testCase( // "tecDUPLICATE", - // supported_amendments() - featureSingleAssetVault); + // testable_amendments() - featureSingleAssetVault); // testCase( // "terADDRESS_COLLISION", - // supported_amendments() | featureSingleAssetVault); + // testable_amendments() | featureSingleAssetVault); // } void @@ -7172,16 +7176,16 @@ private: }; testCase( - "tecDUPLICATE", supported_amendments() - featureSingleAssetVault); + "tecDUPLICATE", testable_amendments() - featureSingleAssetVault); testCase( "terADDRESS_COLLISION", - supported_amendments() | featureSingleAssetVault); + testable_amendments() | featureSingleAssetVault); } void run() override { - FeatureBitset const all{jtx::supported_amendments()}; + FeatureBitset const all{jtx::testable_amendments()}; testInvalidInstance(); testInstanceCreate(); testInvalidDeposit(all); @@ -7215,6 +7219,8 @@ private: testFixAMMOfferBlockedByLOB(all); testLPTokenBalance(all); testAMMClawback(all); + testAMMClawback(all - featureSingleAssetVault); + testAMMClawback(all - featureAMMClawback - featureSingleAssetVault); testAMMClawback(all - featureAMMClawback); testAMMDepositWithFrozenAssets(all); testAMMDepositWithFrozenAssets(all - featureAMMClawback); diff --git a/src/test/app/AccountDelete_test.cpp b/src/test/app/AccountDelete_test.cpp index 7437e731d..e7142057e 100644 --- a/src/test/app/AccountDelete_test.cpp +++ b/src/test/app/AccountDelete_test.cpp @@ -1263,8 +1263,7 @@ public: }; using namespace test::jtx; - auto const sa = - (supported_amendments() | featureCredentials) - featureXahauGenesis; + auto const sa = testable_amendments(); testWithFeatures(sa); } }; diff --git a/src/test/app/AccountTxPaging_test.cpp b/src/test/app/AccountTxPaging_test.cpp index 4e828832e..3ef28257e 100644 --- a/src/test/app/AccountTxPaging_test.cpp +++ b/src/test/app/AccountTxPaging_test.cpp @@ -267,7 +267,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testAccountTxPaging(sa - featureXahauGenesis); } }; diff --git a/src/test/app/AmendmentTable_test.cpp b/src/test/app/AmendmentTable_test.cpp index 5ba820da9..407b2fafe 100644 --- a/src/test/app/AmendmentTable_test.cpp +++ b/src/test/app/AmendmentTable_test.cpp @@ -1288,7 +1288,7 @@ public: void run() override { - FeatureBitset const all{test::jtx::supported_amendments()}; + FeatureBitset const all{test::jtx::testable_amendments()}; FeatureBitset const fixMajorityCalc{fixAmendmentMajorityCalc}; testConstruct(); diff --git a/src/test/app/BaseFee_test.cpp b/src/test/app/BaseFee_test.cpp index dc513a0b7..db89a5194 100644 --- a/src/test/app/BaseFee_test.cpp +++ b/src/test/app/BaseFee_test.cpp @@ -826,7 +826,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testWithFeats(sa); testWithFeats(sa - fixXahauV1); } diff --git a/src/test/app/Batch_test.cpp b/src/test/app/Batch_test.cpp index 558001a7c..ca5d6bfd8 100644 --- a/src/test/app/Batch_test.cpp +++ b/src/test/app/Batch_test.cpp @@ -3831,10 +3831,7 @@ class Batch_test : public beast::unit_test::suite // this also makes sure tfInnerBatchTxn won't block delegated // MPTokenIssuanceSet with granular permission { - test::jtx::Env env{ - *this, - envconfig(), - features | featureMPTokensV1 | featurePermissionDelegation}; + test::jtx::Env env{*this, envconfig(), features}; Account alice{"alice"}; Account bob{"bob"}; env.fund(XRP(100000), alice, bob); @@ -4181,7 +4178,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments() | featureBatch; + auto const sa = testable_amendments(); testWithFeats(sa); } }; diff --git a/src/test/app/Check_test.cpp b/src/test/app/Check_test.cpp index 99b0c8dba..be38b2231 100644 --- a/src/test/app/Check_test.cpp +++ b/src/test/app/Check_test.cpp @@ -2720,7 +2720,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testWithFeats(sa - featureCheckCashMakesTrustLine); testWithFeats(sa - disallowIncoming); testWithFeats(sa); diff --git a/src/test/app/ClaimReward_test.cpp b/src/test/app/ClaimReward_test.cpp index e571a7156..d90d8acae 100644 --- a/src/test/app/ClaimReward_test.cpp +++ b/src/test/app/ClaimReward_test.cpp @@ -1123,7 +1123,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testWithFeats(sa); } }; diff --git a/src/test/app/Clawback_test.cpp b/src/test/app/Clawback_test.cpp index 1e6993f2d..b58a38d59 100644 --- a/src/test/app/Clawback_test.cpp +++ b/src/test/app/Clawback_test.cpp @@ -962,7 +962,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments() | featureMPTokensV1}; + FeatureBitset const all{testable_amendments()}; testWithFeats(all - featureMPTokensV1); testWithFeats(all); diff --git a/src/test/app/Credentials_test.cpp b/src/test/app/Credentials_test.cpp index b7a967272..3bbbe3ab5 100644 --- a/src/test/app/Credentials_test.cpp +++ b/src/test/app/Credentials_test.cpp @@ -1085,9 +1085,7 @@ struct Credentials_test : public beast::unit_test::suite run() override { using namespace test::jtx; - FeatureBitset const all{ - (supported_amendments() | featureCredentials) - - featureXahauGenesis}; + FeatureBitset const all{testable_amendments()}; testSuccessful(all); testCredentialsDelete(all); testCreateFailed(all); diff --git a/src/test/app/Cron_test.cpp b/src/test/app/Cron_test.cpp index 02f4ba8c1..c1fbddd94 100644 --- a/src/test/app/Cron_test.cpp +++ b/src/test/app/Cron_test.cpp @@ -487,7 +487,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testWithFeats(sa); } }; diff --git a/src/test/app/CrossingLimits_test.cpp b/src/test/app/CrossingLimits_test.cpp index ff4650a1f..6e7693619 100644 --- a/src/test/app/CrossingLimits_test.cpp +++ b/src/test/app/CrossingLimits_test.cpp @@ -522,7 +522,7 @@ public: testOfferOverflow(features); }; using namespace jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testAll(sa); testAll(sa - featureFlowSortStrands); testAll(sa - featurePermissionedDEX); diff --git a/src/test/app/DID_test.cpp b/src/test/app/DID_test.cpp index 385be5322..21056a8bf 100644 --- a/src/test/app/DID_test.cpp +++ b/src/test/app/DID_test.cpp @@ -386,7 +386,7 @@ struct DID_test : public beast::unit_test::suite run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments() | featureDID}; + FeatureBitset const all{testable_amendments()}; testEnabled(all); testAccountReserve(all); testSetInvalid(all); diff --git a/src/test/app/Delegate_test.cpp b/src/test/app/Delegate_test.cpp index c3495790f..44cb6a54b 100644 --- a/src/test/app/Delegate_test.cpp +++ b/src/test/app/Delegate_test.cpp @@ -31,7 +31,7 @@ class Delegate_test : public beast::unit_test::suite testcase("test featurePermissionDelegation not enabled"); using namespace jtx; - Env env{*this, supported_amendments() - featurePermissionDelegation}; + Env env{*this, testable_amendments() - featurePermissionDelegation}; Account gw{"gateway"}; Account alice{"alice"}; Account bob{"bob"}; @@ -51,7 +51,7 @@ class Delegate_test : public beast::unit_test::suite testcase("test valid request creating, updating, deleting permissions"); using namespace jtx; - Env env(*this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account gw{"gateway"}; Account alice{"alice"}; env.fund(XRP(100000), gw, alice); @@ -144,7 +144,7 @@ class Delegate_test : public beast::unit_test::suite testcase("test invalid DelegateSet"); using namespace jtx; - Env env(*this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account gw{"gateway"}; Account alice{"alice"}; Account bob{"bob"}; @@ -243,8 +243,7 @@ class Delegate_test : public beast::unit_test::suite // test reserve for DelegateSet { - Env env( - *this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; Account carol{"carol"}; @@ -270,10 +269,7 @@ class Delegate_test : public beast::unit_test::suite // test reserve when sending transaction on behalf of other account { - Env env( - *this, - supported_amendments() | featurePermissionDelegation | - featureDID); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; @@ -304,7 +300,7 @@ class Delegate_test : public beast::unit_test::suite testcase("test fee"); using namespace jtx; - Env env(*this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; Account carol{"carol"}; @@ -390,7 +386,7 @@ class Delegate_test : public beast::unit_test::suite testcase("test sequence"); using namespace jtx; - Env env(*this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; Account carol{"carol"}; @@ -443,7 +439,7 @@ class Delegate_test : public beast::unit_test::suite testcase("test deleting account"); using namespace jtx; - Env env(*this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; env.fund(XRP(100000), alice, bob); @@ -479,7 +475,7 @@ class Delegate_test : public beast::unit_test::suite testcase("test delegate transaction"); using namespace jtx; - Env env(*this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; Account carol{"carol"}; @@ -547,8 +543,7 @@ class Delegate_test : public beast::unit_test::suite // test PaymentMint and PaymentBurn { - Env env( - *this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; Account gw{"gateway"}; @@ -662,8 +657,7 @@ class Delegate_test : public beast::unit_test::suite // test PaymentMint won't affect Payment transaction level delegation. { - Env env( - *this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; Account gw{"gateway"}; @@ -722,8 +716,7 @@ class Delegate_test : public beast::unit_test::suite // test TrustlineUnfreeze, TrustlineFreeze and TrustlineAuthorize { - Env env( - *this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account gw{"gw"}; Account alice{"alice"}; Account bob{"bob"}; @@ -844,8 +837,7 @@ class Delegate_test : public beast::unit_test::suite // test mix of transaction level delegation and granular delegation { - Env env( - *this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account gw{"gw"}; Account alice{"alice"}; Account bob{"bob"}; @@ -905,8 +897,7 @@ class Delegate_test : public beast::unit_test::suite // tfFullyCanonicalSig won't block delegated transaction { - Env env( - *this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account gw{"gw"}; Account alice{"alice"}; Account bob{"bob"}; @@ -934,8 +925,7 @@ class Delegate_test : public beast::unit_test::suite // AccountMessageKeySet,AccountTransferRateSet, and AccountTickSizeSet // granular permissions { - Env env( - *this, supported_amendments() | featurePermissionDelegation); + Env env(*this); auto const alice = Account{"alice"}; auto const bob = Account{"bob"}; env.fund(XRP(10000), alice, bob); @@ -1098,8 +1088,7 @@ class Delegate_test : public beast::unit_test::suite // can not set AccountSet flags on behalf of other account { - Env env( - *this, supported_amendments() | featurePermissionDelegation); + Env env(*this); auto const alice = Account{"alice"}; auto const bob = Account{"bob"}; env.fund(XRP(10000), alice, bob); @@ -1195,8 +1184,7 @@ class Delegate_test : public beast::unit_test::suite // tfFullyCanonicalSig won't block delegated transaction { - Env env( - *this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; env.fund(XRP(10000), alice, bob); @@ -1225,10 +1213,7 @@ class Delegate_test : public beast::unit_test::suite // test MPTokenIssuanceUnlock and MPTokenIssuanceLock permissions { - Env env( - *this, - supported_amendments() | featureMPTokensV1 | - featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; env.fund(XRP(100000), alice, bob); @@ -1276,10 +1261,7 @@ class Delegate_test : public beast::unit_test::suite // test mix of granular and transaction level permission { - Env env( - *this, - supported_amendments() | featureMPTokensV1 | - featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; env.fund(XRP(100000), alice, bob); @@ -1332,10 +1314,7 @@ class Delegate_test : public beast::unit_test::suite // tfFullyCanonicalSig won't block delegated transaction { - Env env( - *this, - supported_amendments() | featureMPTokensV1 | - featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; env.fund(XRP(100000), alice, bob); @@ -1362,7 +1341,7 @@ class Delegate_test : public beast::unit_test::suite testcase("test single sign"); using namespace jtx; - Env env(*this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; Account carol{"carol"}; @@ -1392,7 +1371,7 @@ class Delegate_test : public beast::unit_test::suite testcase("test single sign with bad secret"); using namespace jtx; - Env env(*this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; Account carol{"carol"}; @@ -1423,7 +1402,7 @@ class Delegate_test : public beast::unit_test::suite testcase("test multi sign"); using namespace jtx; - Env env(*this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; Account carol{"carol"}; @@ -1462,7 +1441,7 @@ class Delegate_test : public beast::unit_test::suite testcase("test multi sign which does not meet quorum"); using namespace jtx; - Env env(*this, supported_amendments() | featurePermissionDelegation); + Env env(*this); Account alice{"alice"}; Account bob{"bob"}; Account carol{"carol"}; diff --git a/src/test/app/DeliverMin_test.cpp b/src/test/app/DeliverMin_test.cpp index 83d7c4a1b..a9373fb00 100644 --- a/src/test/app/DeliverMin_test.cpp +++ b/src/test/app/DeliverMin_test.cpp @@ -142,7 +142,7 @@ public: run() override { using namespace jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); test_convert_all_of_an_asset(sa - featurePermissionedDEX); test_convert_all_of_an_asset(sa); } diff --git a/src/test/app/DepositAuth_test.cpp b/src/test/app/DepositAuth_test.cpp index 1e7c26207..9fe65e493 100644 --- a/src/test/app/DepositAuth_test.cpp +++ b/src/test/app/DepositAuth_test.cpp @@ -352,27 +352,27 @@ struct DepositAuth_test : public beast::unit_test::suite auto const noRippleNext = i & 0x2; auto const withDepositAuth = i & 0x4; testIssuer( - supported_amendments() | featureDepositAuth, + testable_amendments() | featureDepositAuth, noRipplePrev, noRippleNext, withDepositAuth); if (!withDepositAuth) testIssuer( - supported_amendments() - featureDepositAuth, + testable_amendments() - featureDepositAuth, noRipplePrev, noRippleNext, withDepositAuth); testNonIssuer( - supported_amendments() | featureDepositAuth, + testable_amendments() | featureDepositAuth, noRipplePrev, noRippleNext, withDepositAuth); if (!withDepositAuth) testNonIssuer( - supported_amendments() - featureDepositAuth, + testable_amendments() - featureDepositAuth, noRipplePrev, noRippleNext, withDepositAuth); @@ -382,7 +382,7 @@ struct DepositAuth_test : public beast::unit_test::suite void run() override { - auto const all{jtx::supported_amendments() - featureXahauGenesis}; + auto const all{jtx::testable_amendments() - featureXahauGenesis}; testEnable(all); testPayIOU(all); testPayXRP(all); @@ -1561,9 +1561,7 @@ struct DepositPreauth_test : public beast::unit_test::suite void run() override { - auto const all{ - (jtx::supported_amendments() | featureCredentials) - - featureXahauGenesis}; + auto const all{jtx::testable_amendments() - featureXahauGenesis}; testEnable(all); testInvalid(all); testPayment(all - featureDepositPreauth - featureCredentials); diff --git a/src/test/app/Discrepancy_test.cpp b/src/test/app/Discrepancy_test.cpp index 481e946e1..ecc9a741e 100644 --- a/src/test/app/Discrepancy_test.cpp +++ b/src/test/app/Discrepancy_test.cpp @@ -154,7 +154,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testXRPDiscrepancy(sa - featureTouch - featurePermissionedDEX); testXRPDiscrepancy(sa - featurePermissionedDEX); testXRPDiscrepancy(sa); diff --git a/src/test/app/Escrow_test.cpp b/src/test/app/Escrow_test.cpp index ff2d53276..43715a876 100644 --- a/src/test/app/Escrow_test.cpp +++ b/src/test/app/Escrow_test.cpp @@ -344,7 +344,7 @@ struct Escrow_test : public beast::unit_test::suite { // Respect the "asfDisallowXRP" account flag: - Env env(*this, supported_amendments() - featureDepositAuth); + Env env(*this, testable_amendments() - featureDepositAuth); env.fund(XRP(5000), "bob", "george"); env(fset("george", asfDisallowXRP)); @@ -372,7 +372,7 @@ struct Escrow_test : public beast::unit_test::suite { testcase("Implied Finish Time (without fix1571)"); - Env env(*this, supported_amendments() - fix1571); + Env env(*this, testable_amendments() - fix1571); auto const baseFee = env.current()->fees().base; env.fund(XRP(5000), "alice", "bob", "carol"); env.close(); @@ -1864,7 +1864,7 @@ struct Escrow_test : public beast::unit_test::suite { // Respect the "asfDisallowXRP" account flag: - Env env(*this, supported_amendments() - featureDepositAuth); + Env env(*this, testable_amendments() - featureDepositAuth); env.fund(XRP(5000), bob, george, gw); env.close(); env.trust(USD(10000), bob, george); @@ -1900,7 +1900,7 @@ struct Escrow_test : public beast::unit_test::suite { testcase("IOU Implied Finish Time (without fix1571)"); - Env env(*this, supported_amendments() - fix1571); + Env env(*this, testable_amendments() - fix1571); auto const alice = Account("alice"); auto const bob = Account("bob"); auto const carol = Account("carol"); @@ -4765,7 +4765,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments() | featureCredentials}; + FeatureBitset const all{testable_amendments()}; testWithFeats(all - featurePaychanAndEscrowForTokens); testWithFeats(all); testIOUWithFeats(all - featureClawback); diff --git a/src/test/app/FixNFTokenPageLinks_test.cpp b/src/test/app/FixNFTokenPageLinks_test.cpp index f87d70aac..a54e88996 100644 --- a/src/test/app/FixNFTokenPageLinks_test.cpp +++ b/src/test/app/FixNFTokenPageLinks_test.cpp @@ -139,7 +139,7 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite { // Verify that the LedgerStateFix transaction is disabled // without the fixNFTokenPageLinks amendment. - Env env{*this, supported_amendments() - fixNFTokenPageLinks}; + Env env{*this, testable_amendments() - fixNFTokenPageLinks}; env.fund(XRP(1000), alice); auto const linkFixFee = drops(env.current()->fees().increment); @@ -148,7 +148,7 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite ter(temDISABLED)); } - Env env{*this, supported_amendments()}; + Env env{*this, testable_amendments()}; env.fund(XRP(1000), alice); std::uint32_t const ticketSeq = env.seq(alice); env(ticket::create(alice, 1)); @@ -206,7 +206,7 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite Account const alice("alice"); - Env env{*this, supported_amendments()}; + Env env{*this, testable_amendments()}; env.fund(XRP(1000), alice); // These cases all return the same TER code, but they exercise @@ -259,7 +259,7 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite Account const carol("carol"); Account const daria("daria"); - Env env{*this, supported_amendments() - fixNFTokenPageLinks}; + Env env{*this, testable_amendments() - fixNFTokenPageLinks}; env.fund(XRP(1000), alice, bob, carol, daria); //********************************************************************** diff --git a/src/test/app/Flow_test.cpp b/src/test/app/Flow_test.cpp index 0953b6f44..0f40d70b5 100644 --- a/src/test/app/Flow_test.cpp +++ b/src/test/app/Flow_test.cpp @@ -1194,8 +1194,8 @@ struct Flow_test : public beast::unit_test::suite { auto const feats = [&withFix]() -> FeatureBitset { if (withFix) - return supported_amendments(); - return supported_amendments() - FeatureBitset{fix1781}; + return testable_amendments(); + return testable_amendments() - FeatureBitset{fix1781}; }(); { // Payment path starting with XRP @@ -1332,7 +1332,7 @@ struct Flow_test : public beast::unit_test::suite testRIPD1449(); using namespace jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testWithFeats(sa - featurePermissionedDEX); testWithFeats(sa); testEmptyStrand(sa); @@ -1345,7 +1345,7 @@ struct Flow_manual_test : public Flow_test run() override { using namespace jtx; - auto const all = supported_amendments(); + auto const all = testable_amendments(); FeatureBitset const f1513{fix1513}; FeatureBitset const permDex{featurePermissionedDEX}; diff --git a/src/test/app/Freeze_test.cpp b/src/test/app/Freeze_test.cpp index d2f08c6d3..0cd6d6e45 100644 --- a/src/test/app/Freeze_test.cpp +++ b/src/test/app/Freeze_test.cpp @@ -2007,7 +2007,7 @@ public: testNFTOffersWhenFreeze(features); }; using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testAll( sa - featureDeepFreeze - featurePermissionedDEX - fixEnforceNFTokenTrustlineV2); diff --git a/src/test/app/GenesisMint_test.cpp b/src/test/app/GenesisMint_test.cpp index 941debc7c..09c963ff2 100644 --- a/src/test/app/GenesisMint_test.cpp +++ b/src/test/app/GenesisMint_test.cpp @@ -698,7 +698,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testWithFeats(sa); testWithFeats(sa - fixXahauV1); testWithFeats(sa - fixHookAPI20251128); diff --git a/src/test/app/HookAPI_test.cpp b/src/test/app/HookAPI_test.cpp index d60336ee6..9958e6dd5 100644 --- a/src/test/app/HookAPI_test.cpp +++ b/src/test/app/HookAPI_test.cpp @@ -4617,7 +4617,7 @@ public: run() override { using namespace test::jtx; - testWithFeatures(supported_amendments()); + testWithFeatures(testable_amendments()); } }; diff --git a/src/test/app/Import_test.cpp b/src/test/app/Import_test.cpp index c4bb2089b..b92d89d46 100644 --- a/src/test/app/Import_test.cpp +++ b/src/test/app/Import_test.cpp @@ -6275,7 +6275,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; testWithFeats(all - fixXahauV2); testWithFeats(all - featureZeroB2M); testWithFeats(all); diff --git a/src/test/app/Invoke_test.cpp b/src/test/app/Invoke_test.cpp index cac5a4d3e..86f068a95 100644 --- a/src/test/app/Invoke_test.cpp +++ b/src/test/app/Invoke_test.cpp @@ -262,7 +262,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; testWithFeats(all); } diff --git a/src/test/app/LPTokenTransfer_test.cpp b/src/test/app/LPTokenTransfer_test.cpp index 5fd505b5f..fd382afc9 100644 --- a/src/test/app/LPTokenTransfer_test.cpp +++ b/src/test/app/LPTokenTransfer_test.cpp @@ -388,7 +388,7 @@ public: void run() override { - FeatureBitset const all{jtx::supported_amendments()}; + FeatureBitset const all{jtx::testable_amendments()}; testDirectStep(all); testBookStep(all); diff --git a/src/test/app/LedgerMaster_test.cpp b/src/test/app/LedgerMaster_test.cpp index 9bb75d3c8..2adce5b8b 100644 --- a/src/test/app/LedgerMaster_test.cpp +++ b/src/test/app/LedgerMaster_test.cpp @@ -336,7 +336,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments() - featureXahauGenesis}; + FeatureBitset const all{testable_amendments() - featureXahauGenesis}; testCanSkipPinnedGap(); testWithFeats(all); testPinUnpinSymmetry(); diff --git a/src/test/app/MPToken_test.cpp b/src/test/app/MPToken_test.cpp index de0030367..666805b12 100644 --- a/src/test/app/MPToken_test.cpp +++ b/src/test/app/MPToken_test.cpp @@ -2341,8 +2341,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{ - supported_amendments() | featureMPTokensV1 | featureCredentials}; + FeatureBitset const all{testable_amendments()}; // MPTokenIssuanceCreate testCreateValidation(all - featureSingleAssetVault); diff --git a/src/test/app/MultiSign_test.cpp b/src/test/app/MultiSign_test.cpp index 791e00fd3..7a2c5855a 100644 --- a/src/test/app/MultiSign_test.cpp +++ b/src/test/app/MultiSign_test.cpp @@ -1476,7 +1476,7 @@ public: Account const cheri{"cheri", KeyType::secp256k1}; Account const daria{"daria", KeyType::ed25519}; - Env env{*this, supported_amendments() - featureMultiSignReserve}; + Env env{*this, testable_amendments() - featureMultiSignReserve}; env.fund(XRP(1000), alice, becky, cheri, daria); env.close(); @@ -1733,7 +1733,7 @@ public: run() override { using namespace jtx; - auto const all = supported_amendments(); + auto const all = testable_amendments(); // The reserve required on a signer list changes based on // featureMultiSignReserve. Limits on the number of signers diff --git a/src/test/app/NFTokenAuth_test.cpp b/src/test/app/NFTokenAuth_test.cpp index 9558a03f7..1a59dc579 100644 --- a/src/test/app/NFTokenAuth_test.cpp +++ b/src/test/app/NFTokenAuth_test.cpp @@ -599,7 +599,7 @@ public: run() override { using namespace test::jtx; - static FeatureBitset const all{supported_amendments()}; + static FeatureBitset const all{testable_amendments()}; static std::array const features = { all - fixEnforceNFTokenTrustlineV2, all}; diff --git a/src/test/app/NFTokenBurn_test.cpp b/src/test/app/NFTokenBurn_test.cpp index 03f492f13..3889323e1 100644 --- a/src/test/app/NFTokenBurn_test.cpp +++ b/src/test/app/NFTokenBurn_test.cpp @@ -1386,7 +1386,7 @@ protected: { using namespace test::jtx; static FeatureBitset const all{ - supported_amendments() - featureXahauGenesis}; + testable_amendments() - featureXahauGenesis}; static FeatureBitset const fixNFTV1_2{fixNonFungibleTokensV1_2}; static FeatureBitset const fixNFTDir{fixNFTokenDirV1}; static FeatureBitset const fixNFTRemint{fixNFTokenRemint}; diff --git a/src/test/app/NFTokenDir_test.cpp b/src/test/app/NFTokenDir_test.cpp index fe21e0273..df4078159 100644 --- a/src/test/app/NFTokenDir_test.cpp +++ b/src/test/app/NFTokenDir_test.cpp @@ -1100,7 +1100,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; FeatureBitset const fixNFTDir{ fixNFTokenDirV1, featureNonFungibleTokensV1_1}; diff --git a/src/test/app/NFToken_test.cpp b/src/test/app/NFToken_test.cpp index 00d2f7ebf..292becbe0 100644 --- a/src/test/app/NFToken_test.cpp +++ b/src/test/app/NFToken_test.cpp @@ -8083,9 +8083,7 @@ public: run(std::uint32_t instance, bool last = false) { using namespace test::jtx; - static FeatureBitset const all{ - supported_amendments() | featureNFTokenMintOffer | - featureDynamicNFT}; + static FeatureBitset const all{testable_amendments()}; static FeatureBitset const fixNFTDir{fixNFTokenDirV1}; static std::array const feats{ diff --git a/src/test/app/Offer_test.cpp b/src/test/app/Offer_test.cpp index f55265765..4fe9fdf13 100644 --- a/src/test/app/Offer_test.cpp +++ b/src/test/app/Offer_test.cpp @@ -5578,8 +5578,7 @@ public: run(std::uint32_t instance, bool last = false) { using namespace jtx; - static FeatureBitset const all{ - supported_amendments() - featureXahauGenesis}; + static FeatureBitset const all{testable_amendments()}; static FeatureBitset const takerDryOffer{fixTakerDryOfferRemoval}; static FeatureBitset const rmSmallIncreasedQOffers{ fixRmSmallIncreasedQOffers}; @@ -5663,7 +5662,7 @@ class Offer_manual_test : public OfferBaseUtil_test run() override { using namespace jtx; - FeatureBitset const all{supported_amendments() - featureXahauGenesis}; + FeatureBitset const all{testable_amendments()}; FeatureBitset const f1513{fix1513}; FeatureBitset const immediateOfferKilled{featureImmediateOfferKilled}; FeatureBitset const takerDryOffer{fixTakerDryOfferRemoval}; diff --git a/src/test/app/Oracle_test.cpp b/src/test/app/Oracle_test.cpp index a96897039..aaa7f9a74 100644 --- a/src/test/app/Oracle_test.cpp +++ b/src/test/app/Oracle_test.cpp @@ -783,7 +783,7 @@ private: testcase("Amendment"); using namespace jtx; - auto const features = supported_amendments() - featurePriceOracle; + auto const features = testable_amendments() - featurePriceOracle; Account const owner("owner"); Env env(*this, features); auto const baseFee = @@ -806,7 +806,7 @@ public: run() override { using namespace jtx; - auto const all = supported_amendments(); + auto const all = testable_amendments(); testInvalidSet(); testInvalidDelete(); testCreate(); diff --git a/src/test/app/Path_test.cpp b/src/test/app/Path_test.cpp index effe167ad..b9cd375e5 100644 --- a/src/test/app/Path_test.cpp +++ b/src/test/app/Path_test.cpp @@ -90,16 +90,12 @@ class Path_test : public beast::unit_test::suite // 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; - }), - supported_amendments() | featureCredentials | - featurePermissionedDomains | featurePermissionedDEX); + 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: diff --git a/src/test/app/PayChan_test.cpp b/src/test/app/PayChan_test.cpp index cd35ccb28..508ff228f 100644 --- a/src/test/app/PayChan_test.cpp +++ b/src/test/app/PayChan_test.cpp @@ -3041,7 +3041,7 @@ struct PayChan_test : public beast::unit_test::suite auto const USD = gw["USD"]; { // Ignore the flag since it this is Issued Currency - Env env(*this, supported_amendments() - featureDepositAuth); + Env env(*this, testable_amendments() - featureDepositAuth); env.fund(XRP(10000), alice, bob, gw); env.close(); env.trust(USD(100000), alice, bob); @@ -3072,7 +3072,7 @@ struct PayChan_test : public beast::unit_test::suite { // Ignore the flag since it this is Issued Currency - Env env(*this, supported_amendments() - featureDepositAuth); + Env env(*this, testable_amendments() - featureDepositAuth); env.fund(XRP(10000), alice, bob, gw); env.close(); env.trust(USD(100000), alice, bob); @@ -4244,8 +4244,7 @@ struct PayChan_test : public beast::unit_test::suite { // Test without adding the paychan to the recipient's owner // directory - Env env( - *this, supported_amendments() - fixPayChanRecipientOwnerDir); + Env env(*this, testable_amendments() - fixPayChanRecipientOwnerDir); env.fund(XRP(10000), alice, bob, gw); env.close(); env.trust(USD(100000), alice, bob); @@ -4305,8 +4304,7 @@ struct PayChan_test : public beast::unit_test::suite { // Test removing paychans created before adding to the recipient's // owner directory - Env env( - *this, supported_amendments() - fixPayChanRecipientOwnerDir); + Env env(*this, testable_amendments() - fixPayChanRecipientOwnerDir); env.fund(XRP(10000), alice, bob, gw); env.close(); env.trust(USD(100000), alice, bob); @@ -4382,8 +4380,8 @@ struct PayChan_test : public beast::unit_test::suite for (bool const withOwnerDirFix : {false, true}) { auto const amd = withOwnerDirFix - ? supported_amendments() - : supported_amendments() - fixPayChanRecipientOwnerDir; + ? testable_amendments() + : testable_amendments() - fixPayChanRecipientOwnerDir; Env env{*this, amd}; env.fund(XRP(10000), alice, bob, carol, gw); @@ -4503,8 +4501,7 @@ struct PayChan_test : public beast::unit_test::suite { // test resurrected account - Env env{ - *this, supported_amendments() - fixPayChanRecipientOwnerDir}; + Env env{*this, testable_amendments() - fixPayChanRecipientOwnerDir}; env.fund(XRP(10000), alice, bob, carol, gw); env.close(); @@ -5990,7 +5987,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments() | featureCredentials}; + FeatureBitset const all{testable_amendments()}; testWithFeats(all - disallowIncoming); testWithFeats( all - disallowIncoming - featurePaychanAndEscrowForTokens); diff --git a/src/test/app/PayStrand_test.cpp b/src/test/app/PayStrand_test.cpp index 13ccfe4cf..9bb7e86fb 100644 --- a/src/test/app/PayStrand_test.cpp +++ b/src/test/app/PayStrand_test.cpp @@ -1267,7 +1267,7 @@ struct PayStrand_test : public beast::unit_test::suite run() override { using namespace jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testToStrand(sa - featurePermissionedDEX); testToStrand(sa); diff --git a/src/test/app/PermissionedDEX_test.cpp b/src/test/app/PermissionedDEX_test.cpp index 6903445d7..3fd3a35f4 100644 --- a/src/test/app/PermissionedDEX_test.cpp +++ b/src/test/app/PermissionedDEX_test.cpp @@ -1551,9 +1551,7 @@ public: void run() override { - FeatureBitset const all{ - jtx::supported_amendments() | featureCredentials | - featurePermissionedDomains | featurePermissionedDEX}; + FeatureBitset const all{jtx::testable_amendments()}; // Test domain offer (w/o hyrbid) testOfferCreate(all); diff --git a/src/test/app/PermissionedDomains_test.cpp b/src/test/app/PermissionedDomains_test.cpp index d4164e729..9bfb54569 100644 --- a/src/test/app/PermissionedDomains_test.cpp +++ b/src/test/app/PermissionedDomains_test.cpp @@ -53,10 +53,9 @@ exceptionExpected(Env& env, Json::Value const& jv) class PermissionedDomains_test : public beast::unit_test::suite { FeatureBitset withoutFeature_{ - supported_amendments() - featurePermissionedDomains}; + testable_amendments() - featurePermissionedDomains}; FeatureBitset withFeature_{ - supported_amendments() // - | featurePermissionedDomains | featureCredentials}; + testable_amendments() | featurePermissionedDomains}; // Verify that each tx type can execute if the feature is enabled. void @@ -81,7 +80,7 @@ class PermissionedDomains_test : public beast::unit_test::suite void testCredentialsDisabled() { - auto amendments = supported_amendments() | featureCredentials; + auto amendments = testable_amendments(); amendments.set(featurePermissionedDomains); amendments.reset(featureCredentials); testcase("Credentials disabled"); diff --git a/src/test/app/PreviousTxn_test.cpp b/src/test/app/PreviousTxn_test.cpp index 62d33b958..280073e5b 100644 --- a/src/test/app/PreviousTxn_test.cpp +++ b/src/test/app/PreviousTxn_test.cpp @@ -302,7 +302,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testcase("With fixProvisionalDoubleThreading enabled"); testPreviousTxnID(sa); diff --git a/src/test/app/PseudoTx_test.cpp b/src/test/app/PseudoTx_test.cpp index d96828a50..53adf795c 100644 --- a/src/test/app/PseudoTx_test.cpp +++ b/src/test/app/PseudoTx_test.cpp @@ -115,7 +115,7 @@ struct PseudoTx_test : public beast::unit_test::suite run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; FeatureBitset const xrpFees{featureXRPFees}; testPrevented(all - featureXRPFees); diff --git a/src/test/app/ReducedOffer_test.cpp b/src/test/app/ReducedOffer_test.cpp index 546a07d93..5142aaab0 100644 --- a/src/test/app/ReducedOffer_test.cpp +++ b/src/test/app/ReducedOffer_test.cpp @@ -82,8 +82,8 @@ public: // Make one test run without fixReducedOffersV1 and one with. for (FeatureBitset features : - {supported_amendments() - fixReducedOffersV1, - supported_amendments() | fixReducedOffersV1}) + {testable_amendments() - fixReducedOffersV1, + testable_amendments() | fixReducedOffersV1}) { Env env{*this, features}; @@ -238,8 +238,8 @@ public: // Make one test run without fixReducedOffersV1 and one with. for (FeatureBitset features : - {supported_amendments() - fixReducedOffersV1, - supported_amendments() | fixReducedOffersV1}) + {testable_amendments() - fixReducedOffersV1, + testable_amendments() | fixReducedOffersV1}) { // Make sure none of the offers we generate are under funded. Env env{*this, features}; @@ -401,8 +401,8 @@ public: // Make one test run without fixReducedOffersV1 and one with. for (FeatureBitset features : - {supported_amendments() - fixReducedOffersV1, - supported_amendments() | fixReducedOffersV1}) + {testable_amendments() - fixReducedOffersV1, + testable_amendments() | fixReducedOffersV1}) { Env env{*this, features}; @@ -509,8 +509,8 @@ public: // Make one test run without fixReducedOffersV1 and one with. for (FeatureBitset features : - {supported_amendments() - fixReducedOffersV1, - supported_amendments() | fixReducedOffersV1}) + {testable_amendments() - fixReducedOffersV1, + testable_amendments() | fixReducedOffersV1}) { Env env{*this, features}; @@ -639,8 +639,8 @@ public: // Make one test run without fixReducedOffersV2 and one with. for (FeatureBitset features : - {supported_amendments() - fixReducedOffersV2, - supported_amendments() | fixReducedOffersV2}) + {testable_amendments() - fixReducedOffersV2, + testable_amendments() | fixReducedOffersV2}) { // Make sure none of the offers we generate are under funded. Env env{*this, features}; diff --git a/src/test/app/Regression_test.cpp b/src/test/app/Regression_test.cpp index c96566f8d..47a9dafa6 100644 --- a/src/test/app/Regression_test.cpp +++ b/src/test/app/Regression_test.cpp @@ -338,7 +338,7 @@ struct Regression_test : public beast::unit_test::suite run() override { using namespace test::jtx; - auto const all{jtx::supported_amendments() - featureXahauGenesis}; + auto const all{jtx::testable_amendments() - featureXahauGenesis}; testOffer1(all); testLowBalanceDestroy(all); testSecp256r1key(all); diff --git a/src/test/app/Remit_test.cpp b/src/test/app/Remit_test.cpp index 12284c9f4..16ce39056 100644 --- a/src/test/app/Remit_test.cpp +++ b/src/test/app/Remit_test.cpp @@ -2955,7 +2955,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testWithFeats(sa - featureXahauGenesis); testWithFeats(sa); } diff --git a/src/test/app/SetAuth_test.cpp b/src/test/app/SetAuth_test.cpp index 28a5b3be9..4c6356077 100644 --- a/src/test/app/SetAuth_test.cpp +++ b/src/test/app/SetAuth_test.cpp @@ -74,7 +74,7 @@ struct SetAuth_test : public beast::unit_test::suite run() override { using namespace jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testAuth(sa - featurePermissionedDEX); testAuth(sa); } diff --git a/src/test/app/SetHookTSH_test.cpp b/src/test/app/SetHookTSH_test.cpp index d96cc1ec9..b691d20d6 100644 --- a/src/test/app/SetHookTSH_test.cpp +++ b/src/test/app/SetHookTSH_test.cpp @@ -8538,6 +8538,9 @@ public: run(std::uint32_t instance, bool last = false) { using namespace test::jtx; + // using `supported_amendments()` instead of new `testable_amendments()` + // in testTSH to fail tests when amendments become supported without + // transaction tests implemented static FeatureBitset const all{supported_amendments()}; static std::array const feats{ diff --git a/src/test/app/SetHook_test.cpp b/src/test/app/SetHook_test.cpp index 58204230f..5069b058a 100644 --- a/src/test/app/SetHook_test.cpp +++ b/src/test/app/SetHook_test.cpp @@ -217,7 +217,11 @@ public: std::string featureName = featureToName(feature); std::optional featureHash = getRegisteredFeature(featureName); - if (featureHash.has_value()) + + if (featureHash.has_value() && + // If an unsupported amendment is set here, an error will occur + // in AmendmentTableImpl::enable(). + ripple::detail::supportedAmendments().contains(featureName)) { std::string hashString = to_string(featureHash.value()); jsonValue["ledger"]["accountState"][1]["Amendments"].append( @@ -12751,7 +12755,14 @@ public: testcase("Test util_keylet"); using namespace jtx; - Env env{*this, features}; + FeatureBitset supportedFeatures; + foreachFeature(features, [&](uint256 const& feature) { + std::string featureName = featureToName(feature); + if (ripple::detail::supportedAmendments().contains(featureName)) + supportedFeatures.set(featureToBitsetIndex(feature)); + }); + + Env env{*this, supportedFeatures}; auto const alice = Account{"alice"}; auto const bob = Account{"bob"}; @@ -15046,7 +15057,7 @@ public: run(std::uint32_t instance, bool last = false) { using namespace test::jtx; - static FeatureBitset const all{supported_amendments()}; + static FeatureBitset const all{testable_amendments()}; static std::array const feats{ all, diff --git a/src/test/app/SetRegularKey_test.cpp b/src/test/app/SetRegularKey_test.cpp index 6a3a5ff2a..78b75fc45 100644 --- a/src/test/app/SetRegularKey_test.cpp +++ b/src/test/app/SetRegularKey_test.cpp @@ -32,7 +32,7 @@ public: using namespace test::jtx; testcase("Set regular key"); - Env env{*this, supported_amendments() - fixMasterKeyAsRegularKey}; + Env env{*this, testable_amendments() - fixMasterKeyAsRegularKey}; Account const alice("alice"); Account const bob("bob"); env.fund(XRP(10000), alice, bob); @@ -72,7 +72,7 @@ public: using namespace test::jtx; testcase("Set regular key"); - Env env{*this, supported_amendments() | fixMasterKeyAsRegularKey}; + Env env{*this, testable_amendments() | fixMasterKeyAsRegularKey}; Account const alice("alice"); Account const bob("bob"); env.fund(XRP(10000), alice, bob); @@ -109,7 +109,7 @@ public: // See https://ripplelabs.atlassian.net/browse/RIPD-1721. testcase( "Set regular key to master key (before fixMasterKeyAsRegularKey)"); - Env env{*this, supported_amendments() - fixMasterKeyAsRegularKey}; + Env env{*this, testable_amendments() - fixMasterKeyAsRegularKey}; Account const alice("alice"); env.fund(XRP(10000), alice); @@ -139,7 +139,7 @@ public: testcase( "Set regular key to master key (after fixMasterKeyAsRegularKey)"); - Env env{*this, supported_amendments() | fixMasterKeyAsRegularKey}; + Env env{*this, testable_amendments() | fixMasterKeyAsRegularKey}; Account const alice("alice"); env.fund(XRP(10000), alice); diff --git a/src/test/app/SetRemarks_test.cpp b/src/test/app/SetRemarks_test.cpp index 37b1a94b8..f6c4857c3 100644 --- a/src/test/app/SetRemarks_test.cpp +++ b/src/test/app/SetRemarks_test.cpp @@ -598,7 +598,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testWithFeats(sa); } }; diff --git a/src/test/app/SetTrust_test.cpp b/src/test/app/SetTrust_test.cpp index 9b4048bf9..18457b5fa 100644 --- a/src/test/app/SetTrust_test.cpp +++ b/src/test/app/SetTrust_test.cpp @@ -648,7 +648,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testWithFeats(sa - disallowIncoming); testWithFeats(sa); } diff --git a/src/test/app/TheoreticalQuality_test.cpp b/src/test/app/TheoreticalQuality_test.cpp index dcffd810e..a8713ec69 100644 --- a/src/test/app/TheoreticalQuality_test.cpp +++ b/src/test/app/TheoreticalQuality_test.cpp @@ -359,7 +359,7 @@ public: // Tests are sped up by a factor of 2 if a new environment isn't created // on every iteration. - Env env(*this, supported_amendments()); + Env env(*this, testable_amendments()); for (int i = 0; i < numTestIterations; ++i) { auto const iterAsStr = std::to_string(i); @@ -434,7 +434,7 @@ public: // Speed up tests by creating the environment outside the loop // (factor of 2 speedup on the DirectStep tests) - Env env(*this, supported_amendments()); + Env env(*this, testable_amendments()); for (int i = 0; i < numTestIterations; ++i) { auto const iterAsStr = std::to_string(i); diff --git a/src/test/app/Ticket_test.cpp b/src/test/app/Ticket_test.cpp index 8d03e3fef..ab348af6a 100644 --- a/src/test/app/Ticket_test.cpp +++ b/src/test/app/Ticket_test.cpp @@ -933,7 +933,7 @@ class Ticket_test : public beast::unit_test::suite // Try the test without featureTicketBatch enabled. using namespace test::jtx; { - Env env{*this, features - featureTicketBatch}; + Env env{*this, testable_amendments() - featureTicketBatch}; Account alice{"alice"}; env.fund(XRP(10000), alice); @@ -957,7 +957,7 @@ class Ticket_test : public beast::unit_test::suite } // Try the test with featureTicketBatch enabled. { - Env env{*this, supported_amendments()}; + Env env{*this, testable_amendments()}; Account alice{"alice"}; env.fund(XRP(10000), alice); @@ -990,7 +990,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments() - featureXahauGenesis}; + FeatureBitset const all{testable_amendments() - featureXahauGenesis}; testTicketNotEnabled(all); testTicketCreatePreflightFail(all); testTicketCreatePreclaimFail(all); diff --git a/src/test/app/Touch_test.cpp b/src/test/app/Touch_test.cpp index cbc6b3586..07ca8a081 100644 --- a/src/test/app/Touch_test.cpp +++ b/src/test/app/Touch_test.cpp @@ -1408,7 +1408,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testAllTxns(sa); testAllTxns(sa - fixHookAPI20251128); testAllTxns(sa - featureTouch - fixHookAPI20251128); diff --git a/src/test/app/TrustAndBalance_test.cpp b/src/test/app/TrustAndBalance_test.cpp index ac177a09b..5d549bde2 100644 --- a/src/test/app/TrustAndBalance_test.cpp +++ b/src/test/app/TrustAndBalance_test.cpp @@ -480,7 +480,7 @@ public: }; using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testWithFeatures(sa - featurePermissionedDEX); testWithFeatures(sa); } diff --git a/src/test/app/TxQ_test.cpp b/src/test/app/TxQ_test.cpp index d592bd7ba..863564809 100644 --- a/src/test/app/TxQ_test.cpp +++ b/src/test/app/TxQ_test.cpp @@ -5120,7 +5120,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments() - featureXahauGenesis}; + FeatureBitset const all{testable_amendments() - featureXahauGenesis}; testQueueSeq(all); testQueueTicket(all); testTecResult(all); @@ -5147,7 +5147,7 @@ public: runMetaInfo() { using namespace test::jtx; - FeatureBitset const all{supported_amendments() - featureXahauGenesis}; + FeatureBitset const all{testable_amendments() - featureXahauGenesis}; testAcctInQueueButEmpty(all); testRPC(all); testExpirationReplacement(all); diff --git a/src/test/app/URIToken_test.cpp b/src/test/app/URIToken_test.cpp index 4ba83c57a..b0c99af77 100644 --- a/src/test/app/URIToken_test.cpp +++ b/src/test/app/URIToken_test.cpp @@ -2682,7 +2682,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testWithFeats(sa); testWithFeats(sa - fixXahauV1); } diff --git a/src/test/app/Vault_test.cpp b/src/test/app/Vault_test.cpp index 795f97480..a9e099e09 100644 --- a/src/test/app/Vault_test.cpp +++ b/src/test/app/Vault_test.cpp @@ -339,10 +339,7 @@ class Vault_test : public beast::unit_test::suite Account const& owner, Account const& depositor, Account const& charlie)> setup) { - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1 | featurePermissionedDomains}; + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account issuer{"issuer"}; Account owner{"owner"}; Account depositor{"depositor"}; @@ -417,9 +414,8 @@ class Vault_test : public beast::unit_test::suite struct CaseArgs { - FeatureBitset features = supported_amendments() | - featureSingleAssetVault | featureMPTokensV1 | - featurePermissionedDomains; + FeatureBitset features = + testable_amendments() | featureSingleAssetVault; }; auto testCase = [&, this]( @@ -497,8 +493,7 @@ class Vault_test : public beast::unit_test::suite env(tx, ter{temDISABLED}); } }, - {.features = supported_amendments() - featureSingleAssetVault - - featureMPTokensV1}); + {.features = testable_amendments() - featureSingleAssetVault}); testCase([&](Env& env, Account const& issuer, @@ -629,8 +624,7 @@ class Vault_test : public beast::unit_test::suite env(tx, ter{temDISABLED}); } }, - {.features = (supported_amendments() | featureSingleAssetVault | - featureMPTokensV1) - + {.features = (testable_amendments() | featureSingleAssetVault) - featurePermissionedDomains}); testCase([&](Env& env, @@ -955,10 +949,7 @@ class Vault_test : public beast::unit_test::suite Account const& depositor, Asset const& asset, Vault& vault)> test) { - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1 | featurePermissionedDomains}; + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account issuer{"issuer"}; Account owner{"owner"}; Account depositor{"depositor"}; @@ -1100,10 +1091,7 @@ class Vault_test : public beast::unit_test::suite { { testcase("IOU fail create frozen"); - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1}; + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account issuer{"issuer"}; Account owner{"owner"}; env.fund(XRP(1000), issuer, owner); @@ -1122,10 +1110,7 @@ class Vault_test : public beast::unit_test::suite { testcase("IOU fail create no ripling"); - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1}; + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account issuer{"issuer"}; Account owner{"owner"}; env.fund(XRP(1000), issuer, owner); @@ -1143,10 +1128,7 @@ class Vault_test : public beast::unit_test::suite { testcase("IOU no issuer"); - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1}; + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account issuer{"issuer"}; Account owner{"owner"}; env.fund(XRP(1000), owner); @@ -1165,10 +1147,7 @@ class Vault_test : public beast::unit_test::suite { testcase("IOU fail create vault for AMM LPToken"); - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1}; + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account const gw("gateway"); Account const alice("alice"); Account const carol("carol"); @@ -1218,10 +1197,8 @@ class Vault_test : public beast::unit_test::suite testCreateFailMPT() { using namespace test::jtx; - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1}; + + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account issuer{"issuer"}; Account owner{"owner"}; Account depositor{"depositor"}; @@ -1242,10 +1219,8 @@ class Vault_test : public beast::unit_test::suite testNonTransferableShares() { using namespace test::jtx; - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1}; + + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account issuer{"issuer"}; Account owner{"owner"}; Account depositor{"depositor"}; @@ -1371,10 +1346,7 @@ class Vault_test : public beast::unit_test::suite Vault& vault, MPTTester& mptt)> test, CaseArgs args = {}) { - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1}; + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account issuer{"issuer"}; Account owner{"owner"}; Account depositor{"depositor"}; @@ -1770,10 +1742,7 @@ class Vault_test : public beast::unit_test::suite { testcase("MPT shares to a vault"); - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1}; + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account owner{"owner"}; Account issuer{"issuer"}; env.fund(XRP(1000000), owner, issuer); @@ -1820,10 +1789,7 @@ class Vault_test : public beast::unit_test::suite std::function issuanceId, std::function vaultBalance)> test) { - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1}; + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account const owner{"owner"}; Account const issuer{"issuer"}; Account const charlie{"charlie"}; @@ -2266,11 +2232,7 @@ class Vault_test : public beast::unit_test::suite { testcase("private vault"); - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1 | featureCredentials | - featurePermissionedDomains}; + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account issuer{"issuer"}; Account owner{"owner"}; Account depositor{"depositor"}; @@ -2553,11 +2515,7 @@ class Vault_test : public beast::unit_test::suite { testcase("private XRP vault"); - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1 | featureCredentials | - featurePermissionedDomains}; + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account owner{"owner"}; Account depositor{"depositor"}; Account alice{"charlie"}; @@ -2660,10 +2618,7 @@ class Vault_test : public beast::unit_test::suite using namespace test::jtx; testcase("failed pseudo-account allocation"); - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1}; + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account const owner{"owner"}; Vault vault{env}; env.fund(XRP(1000), owner); @@ -2690,10 +2645,7 @@ class Vault_test : public beast::unit_test::suite testRPC() { testcase("RPC"); - Env env{ - *this, - supported_amendments() | featureSingleAssetVault | - featureMPTokensV1}; + Env env{*this, testable_amendments() | featureSingleAssetVault}; Account const owner{"owner"}; Account const issuer{"issuer"}; Vault vault{env}; diff --git a/src/test/app/Wildcard_test.cpp b/src/test/app/Wildcard_test.cpp index af9c2ffd1..c27cc2034 100644 --- a/src/test/app/Wildcard_test.cpp +++ b/src/test/app/Wildcard_test.cpp @@ -112,7 +112,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testWithFeats(sa); } }; diff --git a/src/test/app/XChain_test.cpp b/src/test/app/XChain_test.cpp index f6c7ed922..364e999b5 100644 --- a/src/test/app/XChain_test.cpp +++ b/src/test/app/XChain_test.cpp @@ -192,7 +192,7 @@ struct SEnv }; // XEnv class used for XChain tests. The only difference with SEnv is that it -// funds some default accounts, and that it enables `supported_amendments() | +// funds some default accounts, and that it enables `testable_amendments() | // FeatureBitset{featureXChainBridge}` by default. // ----------------------------------------------------------------------------- template @@ -526,7 +526,7 @@ struct XChain_test : public beast::unit_test::suite, // coverage test: BridgeCreate::preflight() - create bridge when feature // disabled. { - Env env(*this, supported_amendments() - featureXChainBridge); + Env env(*this, testable_amendments() - featureXChainBridge); env(create_bridge(Account::master, jvb), ter(temDISABLED)); } diff --git a/src/test/app/XahauGenesis_test.cpp b/src/test/app/XahauGenesis_test.cpp index 15612be4c..93605ae41 100644 --- a/src/test/app/XahauGenesis_test.cpp +++ b/src/test/app/XahauGenesis_test.cpp @@ -4700,8 +4700,17 @@ struct XahauGenesis_test : public beast::unit_test::suite using namespace std::chrono_literals; testcase("test claim reward elapsed_since_last == 1"); + FeatureBitset supportedFeatures; + foreachFeature(features, [&](uint256 const& feature) { + std::string featureName = featureToName(feature); + if (ripple::detail::supportedAmendments().contains(featureName)) + supportedFeatures.set(featureToBitsetIndex(feature)); + }); + Env env{ - *this, makeNetworkConfig(21337), features - featureXahauGenesis}; + *this, + makeNetworkConfig(21337), + supportedFeatures - featureXahauGenesis}; double const rateDrops = 0.00333333333 * 1'000'000; STAmount const feesXRP = XRP(1); @@ -4782,8 +4791,17 @@ struct XahauGenesis_test : public beast::unit_test::suite using namespace std::chrono_literals; testcase("test claim reward elapsed_since_last == 0"); + FeatureBitset supportedFeatures; + foreachFeature(features, [&](uint256 const& feature) { + std::string featureName = featureToName(feature); + if (ripple::detail::supportedAmendments().contains(featureName)) + supportedFeatures.set(featureToBitsetIndex(feature)); + }); + Env env{ - *this, makeNetworkConfig(21337), features - featureXahauGenesis}; + *this, + makeNetworkConfig(21337), + supportedFeatures - featureXahauGenesis}; STAmount const feesXRP = XRP(1); @@ -4973,18 +4991,26 @@ struct XahauGenesis_test : public beast::unit_test::suite { using namespace jtx; using namespace std::chrono_literals; + testcase("test claim reward elapsed_since_last < 0"); + FeatureBitset supportedFeatures; + foreachFeature(features, [&](uint256 const& feature) { + std::string featureName = featureToName(feature); + if (ripple::detail::supportedAmendments().contains(featureName)) + supportedFeatures.set(featureToBitsetIndex(feature)); + }); + Env env{ *this, makeGenesisConfig( - features - featureXahauGenesis, + supportedFeatures - featureXahauGenesis, 21337, "10", "1000000", "200000", 0), - features - featureXahauGenesis}; + supportedFeatures - featureXahauGenesis}; STAmount const feesXRP = XRP(1); @@ -5727,7 +5753,7 @@ struct XahauGenesis_test : public beast::unit_test::suite run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testGovernHookWithFeats(sa); testRewardHookWithFeats(sa); testRewardHookWithFeats(sa - fix240819); diff --git a/src/test/app/tx/apply_test.cpp b/src/test/app/tx/apply_test.cpp index 44a2c10b4..0f5ccf5a5 100644 --- a/src/test/app/tx/apply_test.cpp +++ b/src/test/app/tx/apply_test.cpp @@ -55,7 +55,7 @@ public: { test::jtx::Env no_fully_canonical( *this, - test::jtx::supported_amendments() - + test::jtx::testable_amendments() - featureRequireFullyCanonicalSig); Validity valid = checkValidity( @@ -71,7 +71,7 @@ public: { test::jtx::Env fully_canonical( - *this, test::jtx::supported_amendments()); + *this, test::jtx::testable_amendments()); Validity valid = checkValidity( fully_canonical.app().getHashRouter(), diff --git a/src/test/consensus/NegativeUNL_test.cpp b/src/test/consensus/NegativeUNL_test.cpp index 35ff4fd0d..4a5eaf2b6 100644 --- a/src/test/consensus/NegativeUNL_test.cpp +++ b/src/test/consensus/NegativeUNL_test.cpp @@ -178,7 +178,7 @@ class NegativeUNL_test : public beast::unit_test::suite testcase("Create UNLModify Tx and apply to ledgers"); - jtx::Env env(*this, jtx::supported_amendments() | featureNegativeUNL); + jtx::Env env(*this, jtx::testable_amendments() | featureNegativeUNL); std::vector publicKeys = createPublicKeys(3); // genesis ledger auto l = std::make_shared( @@ -492,7 +492,7 @@ class NegativeUNLNoAmendment_test : public beast::unit_test::suite { testcase("No negative UNL amendment"); - jtx::Env env(*this, jtx::supported_amendments() - featureNegativeUNL); + jtx::Env env(*this, jtx::testable_amendments() - featureNegativeUNL); std::vector publicKeys = createPublicKeys(1); // genesis ledger auto l = std::make_shared( @@ -548,7 +548,7 @@ struct NetworkHistory }; NetworkHistory(beast::unit_test::suite& suite, Parameter const& p) - : env(suite, jtx::supported_amendments() | featureNegativeUNL) + : env(suite, jtx::testable_amendments() | featureNegativeUNL) , param(p) , validations(env.app().getValidations()) { diff --git a/src/test/consensus/UNLReport_test.cpp b/src/test/consensus/UNLReport_test.cpp index a44b909d9..d5a46c35b 100644 --- a/src/test/consensus/UNLReport_test.cpp +++ b/src/test/consensus/UNLReport_test.cpp @@ -462,7 +462,7 @@ class UNLReport_test : public beast::unit_test::suite run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testWithFeats(sa); } }; @@ -474,7 +474,7 @@ class UNLReportNoAmendment_test : public beast::unit_test::suite { testcase("No UNL report amendment"); - jtx::Env env(*this, jtx::supported_amendments() - featureXahauGenesis); + jtx::Env env(*this, jtx::testable_amendments() - featureXahauGenesis); std::vector publicKeys = createUNLRPublicKeys(1); // genesis ledger auto l = std::make_shared( @@ -662,7 +662,7 @@ struct URNetworkHistory : env(suite, p.withVL ? jtx::network::makeNetworkVLConfig(21337, keys) : jtx::envconfig(), - jtx::supported_amendments() | featureNegativeUNL) + jtx::testable_amendments()) , param(p) , validations(env.app().getValidations()) { diff --git a/src/test/jtx/AMMTest.h b/src/test/jtx/AMMTest.h index 28b9affa8..17011d763 100644 --- a/src/test/jtx/AMMTest.h +++ b/src/test/jtx/AMMTest.h @@ -40,7 +40,7 @@ struct TestAMMArg std::optional> pool = std::nullopt; std::uint16_t tfee = 0; std::optional ter = std::nullopt; - std::vector features = {supported_amendments()}; + std::vector features = {testable_amendments()}; bool noLog = false; }; @@ -95,7 +95,7 @@ protected: std::optional> const& pool = std::nullopt, std::uint16_t tfee = 0, std::optional const& ter = std::nullopt, - std::vector const& features = {supported_amendments()}); + std::vector const& features = {testable_amendments()}); void testAMM( diff --git a/src/test/jtx/Env.h b/src/test/jtx/Env.h index 4fb04a80a..755b091d1 100644 --- a/src/test/jtx/Env.h +++ b/src/test/jtx/Env.h @@ -91,6 +91,27 @@ supported_amendments() return ids; } +inline FeatureBitset +testable_amendments() +{ + static FeatureBitset const ids = [] { + auto const& sa = allAmendments(); + std::vector feats; + feats.reserve(sa.size()); + for (auto const& [s, vote] : sa) + { + (void)vote; + if (auto const f = getRegisteredFeature(s)) + feats.push_back(*f); + else + Throw( + "Unknown feature: " + s + " in allAmendments."); + } + return FeatureBitset(feats); + }(); + return ids; +} + //------------------------------------------------------------------------------ class SuiteLogs : public Logs @@ -236,7 +257,7 @@ public: beast::severities::Severity thresh = beast::severities::kError) : Env(suite_, std::move(config), - supported_amendments(), + testable_amendments(), std::move(logs), thresh) { diff --git a/src/test/jtx/Env_test.cpp b/src/test/jtx/Env_test.cpp index b5ee0ac79..04fa2d6e4 100644 --- a/src/test/jtx/Env_test.cpp +++ b/src/test/jtx/Env_test.cpp @@ -922,7 +922,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments() - featureXahauGenesis}; + FeatureBitset const all{testable_amendments() - featureXahauGenesis}; testAccount(); testAmount(); testEnv(all); diff --git a/src/test/jtx/impl/AMMTest.cpp b/src/test/jtx/impl/AMMTest.cpp index c5211d352..2652dfcb2 100644 --- a/src/test/jtx/impl/AMMTest.cpp +++ b/src/test/jtx/impl/AMMTest.cpp @@ -193,7 +193,7 @@ AMMTest::pathTestEnv() cfg->PATH_SEARCH_MAX = 10; return cfg; }), - supported_amendments() - featureXahauGenesis - featureTouch); + testable_amendments() - featureXahauGenesis - featureTouch); } Json::Value diff --git a/src/test/jtx/impl/xchain_bridge.cpp b/src/test/jtx/impl/xchain_bridge.cpp index 86e9deda7..b16e3fd1f 100644 --- a/src/test/jtx/impl/xchain_bridge.cpp +++ b/src/test/jtx/impl/xchain_bridge.cpp @@ -389,7 +389,7 @@ XChainBridgeObjects::XChainBridgeObjects() bridge_rpc(mcDoor, xrpIssue(), Account::master, xrpIssue())) , jvb(bridge(mcDoor, xrpIssue(), Account::master, xrpIssue())) , jvub(bridge(mcuDoor, xrpIssue(), Account::master, xrpIssue())) - , features(supported_amendments() | FeatureBitset{featureXChainBridge}) + , features(testable_amendments()) , signers([] { constexpr int numSigners = UT_XCHAIN_DEFAULT_NUM_SIGNERS; std::vector result; diff --git a/src/test/ledger/BookDirs_test.cpp b/src/test/ledger/BookDirs_test.cpp index 45cd7e332..52b618e9a 100644 --- a/src/test/ledger/BookDirs_test.cpp +++ b/src/test/ledger/BookDirs_test.cpp @@ -103,7 +103,7 @@ struct BookDirs_test : public beast::unit_test::suite run() override { using namespace jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); test_bookdir(sa - featurePermissionedDEX); test_bookdir(sa); } diff --git a/src/test/ledger/Directory_test.cpp b/src/test/ledger/Directory_test.cpp index 7aa6f149b..9e8d40e0c 100644 --- a/src/test/ledger/Directory_test.cpp +++ b/src/test/ledger/Directory_test.cpp @@ -421,7 +421,7 @@ struct Directory_test : public beast::unit_test::suite }; // fixPreviousTxnID is disabled. - Env env(*this, supported_amendments() - fixPreviousTxnID); + Env env(*this, testable_amendments() - fixPreviousTxnID); env.fund(XRP(10000), alice, gw); env.close(); env.trust(USD(1000), alice); diff --git a/src/test/ledger/Invariants_test.cpp b/src/test/ledger/Invariants_test.cpp index 2c2bb2cb7..ba369c654 100644 --- a/src/test/ledger/Invariants_test.cpp +++ b/src/test/ledger/Invariants_test.cpp @@ -78,7 +78,7 @@ class Invariants_test : public beast::unit_test::suite Preclose const& preclose = {}) { using namespace test::jtx; - FeatureBitset amendments = supported_amendments() | + FeatureBitset amendments = testable_amendments() | featureInvariantsV1_1 | featureSingleAssetVault; Env env{*this, amendments}; diff --git a/src/test/ledger/PaymentSandbox_test.cpp b/src/test/ledger/PaymentSandbox_test.cpp index 7901cec36..26b06a003 100644 --- a/src/test/ledger/PaymentSandbox_test.cpp +++ b/src/test/ledger/PaymentSandbox_test.cpp @@ -420,7 +420,7 @@ public: testBalanceHook(features); }; using namespace jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testAll(sa - featurePermissionedDEX); testAll(sa); } diff --git a/src/test/rpc/AMMInfo_test.cpp b/src/test/rpc/AMMInfo_test.cpp index 8add48f05..3085c0f09 100644 --- a/src/test/rpc/AMMInfo_test.cpp +++ b/src/test/rpc/AMMInfo_test.cpp @@ -347,7 +347,7 @@ public: run() override { using namespace jtx; - auto const all = supported_amendments(); + auto const all = testable_amendments(); testErrors(); testSimpleRpc(); testVoteAndBid(all); diff --git a/src/test/rpc/AccountInfo_test.cpp b/src/test/rpc/AccountInfo_test.cpp index e338cb8f5..7ebf5b076 100644 --- a/src/test/rpc/AccountInfo_test.cpp +++ b/src/test/rpc/AccountInfo_test.cpp @@ -688,7 +688,7 @@ public: testSignerListsV2(); FeatureBitset const allFeatures{ - ripple::test::jtx::supported_amendments()}; + ripple::test::jtx::testable_amendments()}; testAccountFlags(allFeatures); testAccountFlags(allFeatures - featureDisallowIncoming); testAccountFlags( diff --git a/src/test/rpc/AccountNamespace_test.cpp b/src/test/rpc/AccountNamespace_test.cpp index 381a7ca82..11a3a62a3 100644 --- a/src/test/rpc/AccountNamespace_test.cpp +++ b/src/test/rpc/AccountNamespace_test.cpp @@ -224,7 +224,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; testErrors(all); } }; diff --git a/src/test/rpc/AccountObjects_test.cpp b/src/test/rpc/AccountObjects_test.cpp index 0b5266a36..209a6e0cb 100644 --- a/src/test/rpc/AccountObjects_test.cpp +++ b/src/test/rpc/AccountObjects_test.cpp @@ -577,10 +577,7 @@ public: Account const gw{"gateway"}; auto const USD = gw["USD"]; - Env env( - *this, - features | featureXChainBridge | featureDID | featureCredentials | - featurePermissionedDomains); + Env env(*this, features); // Make a lambda we can use to get "account_objects" easily. auto acctObjs = [&env]( @@ -764,10 +761,7 @@ public: { // Create a bridge test::jtx::XChainBridgeObjects x; - Env scEnv( - *this, - envconfig(), - features | FeatureBitset{featureXChainBridge}); + Env scEnv(*this, envconfig(), features); x.createScBridgeObjects(scEnv); auto scEnvAcctObjs = [&](Account const& acct, char const* type) { @@ -808,10 +802,7 @@ public: // Alice and Bob create a xchain sequence number that we can look // for in the ledger. test::jtx::XChainBridgeObjects x; - Env scEnv( - *this, - envconfig(), - features | FeatureBitset{featureXChainBridge}); + Env scEnv(*this, envconfig(), features); x.createScBridgeObjects(scEnv); scEnv( @@ -856,10 +847,7 @@ public: } { test::jtx::XChainBridgeObjects x; - Env scEnv( - *this, - envconfig(), - features | FeatureBitset{featureXChainBridge}); + Env scEnv(*this, envconfig(), features); x.createScBridgeObjects(scEnv); auto const amt = XRP(1000); @@ -1515,7 +1503,7 @@ public: run() override { using namespace jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; testErrors(all); testUnsteppedThenStepped(all); testUnsteppedThenSteppedWithNFTs(all); diff --git a/src/test/rpc/AccountOffers_test.cpp b/src/test/rpc/AccountOffers_test.cpp index 3aadef1f4..68d79739c 100644 --- a/src/test/rpc/AccountOffers_test.cpp +++ b/src/test/rpc/AccountOffers_test.cpp @@ -350,7 +350,7 @@ public: run() override { using namespace jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; testSequential(all, true); testSequential(all, false); testBadInput(all); diff --git a/src/test/rpc/AccountSet_test.cpp b/src/test/rpc/AccountSet_test.cpp index 2514f0171..22785b015 100644 --- a/src/test/rpc/AccountSet_test.cpp +++ b/src/test/rpc/AccountSet_test.cpp @@ -53,7 +53,7 @@ public: Account const alice("alice"); // Test without DepositAuth enabled initially. - Env env(*this, supported_amendments() - featureDepositAuth); + Env env(*this, testable_amendments() - featureDepositAuth); env.fund(XRP(10000), noripple(alice)); // Give alice a regular key so she can legally set and clear @@ -353,7 +353,7 @@ public: }; doTests( - supported_amendments(), + testable_amendments(), {{1.0, tesSUCCESS, 1.0}, {1.1, tesSUCCESS, 1.1}, {2.0, tesSUCCESS, 2.0}, @@ -582,7 +582,7 @@ public: testcase("HookStateScale"); using namespace test::jtx; - Env env(*this, supported_amendments() - featureExtendedHookState); + Env env(*this, testable_amendments() - featureExtendedHookState); Account const alice("alice"); env.fund(XRP(10000), alice); diff --git a/src/test/rpc/AccountTx_test.cpp b/src/test/rpc/AccountTx_test.cpp index 5b0e4bc61..658fa3f11 100644 --- a/src/test/rpc/AccountTx_test.cpp +++ b/src/test/rpc/AccountTx_test.cpp @@ -126,7 +126,7 @@ class AccountTx_test : public beast::unit_test::suite cfg->FEES.reference_fee = 10; return cfg; }), - supported_amendments() - featureXahauGenesis - fixHookAPI20251128); + testable_amendments() - featureXahauGenesis - fixHookAPI20251128); Account A1{"A1"}; env.fund(XRP(10000), A1); env.close(); @@ -429,7 +429,7 @@ class AccountTx_test : public beast::unit_test::suite using namespace test::jtx; using namespace std::chrono_literals; - Env env(*this, supported_amendments() - featureXahauGenesis); + Env env(*this, testable_amendments() - featureXahauGenesis); Account const alice{"alice"}; Account const alie{"alie"}; Account const gw{"gw"}; @@ -821,7 +821,7 @@ class AccountTx_test : public beast::unit_test::suite using namespace test::jtx; using namespace std::chrono_literals; - Env env(*this, supported_amendments() - featureXahauGenesis); + Env env(*this, testable_amendments() - featureXahauGenesis); Account const alice{"alice"}; Account const becky{"becky"}; @@ -955,8 +955,7 @@ class AccountTx_test : public beast::unit_test::suite auto cfg = makeConfig(); cfg->FEES.reference_fee = 10; - Env env( - *this, std::move(cfg), supported_amendments() | featureMPTokensV1); + Env env(*this, std::move(cfg)); Account const alice{"alice"}; Account const bob{"bob"}; diff --git a/src/test/rpc/BookChanges_test.cpp b/src/test/rpc/BookChanges_test.cpp index 1f059c2bf..7d3221bb6 100644 --- a/src/test/rpc/BookChanges_test.cpp +++ b/src/test/rpc/BookChanges_test.cpp @@ -93,9 +93,7 @@ public: testcase("Domain Offer"); using namespace jtx; - FeatureBitset const all{ - jtx::supported_amendments() | featurePermissionedDomains | - featureCredentials | featurePermissionedDEX}; + FeatureBitset const all{jtx::testable_amendments()}; Env env(*this, all); PermissionedDEX permDex(env); diff --git a/src/test/rpc/Book_test.cpp b/src/test/rpc/Book_test.cpp index 37e357258..9fea4697e 100644 --- a/src/test/rpc/Book_test.cpp +++ b/src/test/rpc/Book_test.cpp @@ -1736,9 +1736,7 @@ public: testcase("TrackDomainOffer"); using namespace jtx; - FeatureBitset const all{ - features | featurePermissionedDomains | featureCredentials | - featurePermissionedDEX}; + FeatureBitset const all{features}; Env env(*this, all); PermissionedDEX permDex(env); @@ -1867,9 +1865,7 @@ public: testcase("TrackHybridOffer"); using namespace jtx; - FeatureBitset const all{ - features | featurePermissionedDomains | featureCredentials | - featurePermissionedDEX}; + FeatureBitset const all{features}; Env env(*this, all); PermissionedDEX permDex(env); @@ -2001,7 +1997,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments() - featureXahauGenesis}; + FeatureBitset const all{testable_amendments() - featureXahauGenesis}; testOneSideEmptyBook(all); testOneSideOffersInBook(all); testBothSidesEmptyBook(all); diff --git a/src/test/rpc/Catalogue_test.cpp b/src/test/rpc/Catalogue_test.cpp index ef17a89b4..c7d0dc656 100644 --- a/src/test/rpc/Catalogue_test.cpp +++ b/src/test/rpc/Catalogue_test.cpp @@ -1076,7 +1076,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; testCatalogueCreateBadInput(all); testCatalogueCreate(all); testCatalogueLoadBadInput(all); diff --git a/src/test/rpc/DeliveredAmount_test.cpp b/src/test/rpc/DeliveredAmount_test.cpp index c6de424e3..45ca6c7df 100644 --- a/src/test/rpc/DeliveredAmount_test.cpp +++ b/src/test/rpc/DeliveredAmount_test.cpp @@ -319,7 +319,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments() - featureXahauGenesis}; + FeatureBitset const all{testable_amendments() - featureXahauGenesis}; testTxDeliveredAmountRPC(all); testAccountDeliveredAmountSubscribe(all); } diff --git a/src/test/rpc/DepositAuthorized_test.cpp b/src/test/rpc/DepositAuthorized_test.cpp index 95d6f356a..647f9e25e 100644 --- a/src/test/rpc/DepositAuthorized_test.cpp +++ b/src/test/rpc/DepositAuthorized_test.cpp @@ -346,7 +346,7 @@ public: Account const diana{"diana"}; Account const carol{"carol"}; - Env env(*this, supported_amendments() | featureCredentials); + Env env(*this); env.fund(XRP(1000), alice, becky, carol, diana); env.close(); diff --git a/src/test/rpc/GatewayBalances_test.cpp b/src/test/rpc/GatewayBalances_test.cpp index 93e88b78a..691f32317 100644 --- a/src/test/rpc/GatewayBalances_test.cpp +++ b/src/test/rpc/GatewayBalances_test.cpp @@ -251,7 +251,7 @@ public: run() override { using namespace jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); for (auto feature : {sa - featurePermissionedDEX, sa}) { testGWB(feature); diff --git a/src/test/rpc/LedgerData_test.cpp b/src/test/rpc/LedgerData_test.cpp index 1b414e54d..9b44d6fd4 100644 --- a/src/test/rpc/LedgerData_test.cpp +++ b/src/test/rpc/LedgerData_test.cpp @@ -308,8 +308,8 @@ public: // Make sure fixInnerObjTemplate doesn't break amendments. for (FeatureBitset const& features : - {supported_amendments() - fixInnerObjTemplate, - supported_amendments() | fixInnerObjTemplate}) + {testable_amendments() - fixInnerObjTemplate, + testable_amendments() | fixInnerObjTemplate}) { using namespace std::chrono; diff --git a/src/test/rpc/LedgerEntry_test.cpp b/src/test/rpc/LedgerEntry_test.cpp index 20dbc174b..9a6d82cc8 100644 --- a/src/test/rpc/LedgerEntry_test.cpp +++ b/src/test/rpc/LedgerEntry_test.cpp @@ -117,7 +117,7 @@ class LedgerEntry_test : public beast::unit_test::suite Env env{ *this, std::move(cfg), - supported_amendments() - featureXahauGenesis - fixHookAPI20251128}; + testable_amendments() - featureXahauGenesis - fixHookAPI20251128}; Account const alice{"alice"}; env.fund(XRP(10000), alice); @@ -256,7 +256,7 @@ class LedgerEntry_test : public beast::unit_test::suite using namespace test::jtx; - Env env(*this, supported_amendments() | featureCredentials); + Env env(*this, testable_amendments()); Account const issuer{"issuer"}; Account const alice{"alice"}; Account const bob{"bob"}; @@ -537,7 +537,7 @@ class LedgerEntry_test : public beast::unit_test::suite using namespace test::jtx; - Env env{*this, supported_amendments() | featurePermissionDelegation}; + Env env{*this, testable_amendments()}; Account const alice{"alice"}; Account const bob{"bob"}; env.fund(XRP(10000), alice, bob); @@ -778,7 +778,7 @@ class LedgerEntry_test : public beast::unit_test::suite using namespace test::jtx; - Env env(*this, supported_amendments() | featureCredentials); + Env env(*this); Account const issuer{"issuer"}; Account const alice{"alice"}; Account const bob{"bob"}; @@ -2236,7 +2236,7 @@ class LedgerEntry_test : public beast::unit_test::suite testcase("ledger_entry Request DID"); using namespace test::jtx; using namespace std::literals::chrono_literals; - Env env{*this, supported_amendments() | featureDID}; + Env env{*this, testable_amendments() | featureDID}; Account const alice{"alice"}; env.fund(XRP(10000), alice); @@ -2598,7 +2598,7 @@ class LedgerEntry_test : public beast::unit_test::suite testcase("ledger_entry Request MPT"); using namespace test::jtx; using namespace std::literals::chrono_literals; - Env env{*this, supported_amendments() | featureMPTokensV1}; + Env env{*this, testable_amendments()}; Account const alice{"alice"}; Account const bob("bob"); @@ -2672,10 +2672,7 @@ class LedgerEntry_test : public beast::unit_test::suite using namespace test::jtx; - Env env( - *this, - supported_amendments() | featureCredentials | - featurePermissionedDomains); + Env env(*this); Account const issuer{"issuer"}; Account const alice{"alice"}; Account const bob{"bob"}; diff --git a/src/test/rpc/LedgerRPC_test.cpp b/src/test/rpc/LedgerRPC_test.cpp index 2bb4559ae..2bb0c90b8 100644 --- a/src/test/rpc/LedgerRPC_test.cpp +++ b/src/test/rpc/LedgerRPC_test.cpp @@ -500,7 +500,7 @@ public: Env env( *this, std::move(cfg), - supported_amendments() - featureXahauGenesis - + testable_amendments() - featureXahauGenesis - fixProvisionalDoubleThreading - fixHookAPI20251128); Json::Value jv; diff --git a/src/test/rpc/NoRipple_test.cpp b/src/test/rpc/NoRipple_test.cpp index 1450abef6..926de31e8 100644 --- a/src/test/rpc/NoRipple_test.cpp +++ b/src/test/rpc/NoRipple_test.cpp @@ -293,7 +293,7 @@ public: testPairwise(features); }; using namespace jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); withFeatsTests(sa - featurePermissionedDEX); withFeatsTests(sa); } diff --git a/src/test/rpc/OwnerInfo_test.cpp b/src/test/rpc/OwnerInfo_test.cpp index c129fb429..5b5993199 100644 --- a/src/test/rpc/OwnerInfo_test.cpp +++ b/src/test/rpc/OwnerInfo_test.cpp @@ -215,7 +215,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments() - featureXahauGenesis}; + FeatureBitset const all{testable_amendments() - featureXahauGenesis}; testBadInput(all); testBasic(all); } diff --git a/src/test/rpc/ServerDefinitions_test.cpp b/src/test/rpc/ServerDefinitions_test.cpp index c2e685a7a..220aa382b 100644 --- a/src/test/rpc/ServerDefinitions_test.cpp +++ b/src/test/rpc/ServerDefinitions_test.cpp @@ -349,7 +349,7 @@ public: run() override { using namespace test::jtx; - auto const sa = supported_amendments(); + auto const sa = testable_amendments(); testServerDefinitions(sa); testServerFeatures(sa); } diff --git a/src/test/rpc/Simulate_test.cpp b/src/test/rpc/Simulate_test.cpp index 31d1d204e..d2874988a 100644 --- a/src/test/rpc/Simulate_test.cpp +++ b/src/test/rpc/Simulate_test.cpp @@ -1007,7 +1007,7 @@ class Simulate_test : public beast::unit_test::suite // scenario setup using namespace jtx; - Env env(*this, supported_amendments() | featureCredentials); + Env env(*this); Account const subject{"subject"}; Account const issuer{"issuer"}; diff --git a/src/test/rpc/Subscribe_test.cpp b/src/test/rpc/Subscribe_test.cpp index 3de6cabf0..e9dd8fe7c 100644 --- a/src/test/rpc/Subscribe_test.cpp +++ b/src/test/rpc/Subscribe_test.cpp @@ -171,7 +171,7 @@ public: { using namespace std::chrono_literals; using namespace jtx; - Env env(*this, supported_amendments() - featureXahauGenesis); + Env env(*this, testable_amendments() - featureXahauGenesis); auto baseFee = env.current()->fees().base.drops(); auto wsc = makeWSClient(env.app().config()); Json::Value stream; @@ -325,7 +325,7 @@ public: cfg->FEES.reference_fee = 10; return cfg; }), - supported_amendments() - featureXahauGenesis - featureTouch); + testable_amendments() - featureXahauGenesis - featureTouch); auto wsc = makeWSClient(env.app().config()); Json::Value stream{Json::objectValue}; @@ -1512,9 +1512,7 @@ public: testcase("SubBookChanges"); using namespace jtx; using namespace std::chrono_literals; - FeatureBitset const all{ - jtx::supported_amendments() | featurePermissionedDomains | - featureCredentials | featurePermissionedDEX}; + FeatureBitset const all{jtx::testable_amendments()}; Env env(*this, all); PermissionedDEX permDex(env); @@ -1783,7 +1781,7 @@ public: run() override { using namespace test::jtx; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; FeatureBitset const xrpFees{featureXRPFees}; testServer(); diff --git a/src/test/rpc/TransactionEntry_test.cpp b/src/test/rpc/TransactionEntry_test.cpp index b90f4417c..2cad46b0a 100644 --- a/src/test/rpc/TransactionEntry_test.cpp +++ b/src/test/rpc/TransactionEntry_test.cpp @@ -161,7 +161,7 @@ class TransactionEntry_test : public beast::unit_test::suite cfg->FEES.reference_fee = 10; return cfg; }), - supported_amendments() - featureXahauGenesis - featureTouch - + testable_amendments() - featureXahauGenesis - featureTouch - fixHookAPI20251128, }; diff --git a/src/test/rpc/Transaction_test.cpp b/src/test/rpc/Transaction_test.cpp index 76c29ce5b..e08c51d85 100644 --- a/src/test/rpc/Transaction_test.cpp +++ b/src/test/rpc/Transaction_test.cpp @@ -975,9 +975,9 @@ public: forAllApiVersions(std::bind_front( &Transaction_test::testBinaryRequest, this, - supported_amendments() - featureXahauGenesis - fixHookAPI20251128)); + testable_amendments() - featureXahauGenesis - fixHookAPI20251128)); return; - FeatureBitset const all{supported_amendments()}; + FeatureBitset const all{testable_amendments()}; testWithFeats(all); }