From be5d105f073e69cf1f4b6f390f9e1b0fe2a43dda Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 21 Aug 2025 01:44:25 +0000 Subject: [PATCH] Simplify amendment check using tweakedFeatures[] operator instead of count() Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com> --- src/test/app/NFToken_test.cpp | 40 ++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/test/app/NFToken_test.cpp b/src/test/app/NFToken_test.cpp index 5e41cf6301..8948ff8eb8 100644 --- a/src/test/app/NFToken_test.cpp +++ b/src/test/app/NFToken_test.cpp @@ -5988,12 +5988,12 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite Account const buyer{"buyer"}; // Test with and without the amendment - for (auto const& tweakedFeatures : { - features - fixExpiredNFTokenOfferRemoval, - features | fixExpiredNFTokenOfferRemoval}) + for (auto const& tweakedFeatures : + {features - fixExpiredNFTokenOfferRemoval, + features | fixExpiredNFTokenOfferRemoval}) { - bool const amendmentEnabled = - tweakedFeatures.count(fixExpiredNFTokenOfferRemoval) > 0; + bool const amendmentEnabled = + tweakedFeatures[fixExpiredNFTokenOfferRemoval]; Env env{*this, tweakedFeatures}; @@ -6001,14 +6001,17 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); // Create an NFToken - uint256 const nftID = token::getNextID(env, issuer, 0, tfTransferable); + uint256 const nftID = + token::getNextID(env, issuer, 0, tfTransferable); env(token::mint(issuer, 0), txflags(tfTransferable)); env.close(); // Create an offer with a short expiration time (already expired) - std::uint32_t const expiration = lastClose(env) - 1; // 1 second ago - - uint256 const sellOfferIndex = keylet::nftoffer(issuer, env.seq(issuer)).key; + std::uint32_t const expiration = + lastClose(env) - 1; // 1 second ago + + uint256 const sellOfferIndex = + keylet::nftoffer(issuer, env.seq(issuer)).key; env(token::createOffer(issuer, nftID, XRP(1)), token::expiration(expiration), txflags(tfSellNFToken)); @@ -6026,7 +6029,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // After amendment: expired offer should be deleted // Owner count should be 1 (only NFT remains) BEAST_EXPECT(ownerCount(env, issuer) == 1); - + // Verify the offer is actually gone from ledger BEAST_EXPECT(!env.le(keylet::nftoffer(sellOfferIndex))); } @@ -6035,13 +6038,14 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Before amendment: expired offer remains on ledger // Owner count should still be 2 (NFT + expired offer) BEAST_EXPECT(ownerCount(env, issuer) == 2); - + // Verify the offer still exists on ledger BEAST_EXPECT(env.le(keylet::nftoffer(sellOfferIndex))); } // Test with buy offer as well - uint256 const buyOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex = + keylet::nftoffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, XRP(1)), token::owner(issuer), token::expiration(expiration)); // Also expired @@ -6071,10 +6075,10 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite if (!amendmentEnabled) { // Only test if offers still exist (before amendment) - env(token::brokerOffers(buyer, buyOfferIndex, sellOfferIndex), + env(token::brokerOffers(buyer, buyOfferIndex, sellOfferIndex), ter(tecEXPIRED)); env.close(); - + // Offers should still exist BEAST_EXPECT(ownerCount(env, issuer) == 2); BEAST_EXPECT(ownerCount(env, buyer) == 1); @@ -6083,13 +6087,15 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite { // With amendment, create fresh expired offers for brokered test // (previous ones were already cleaned up) - uint256 const sellOfferIndex2 = keylet::nftoffer(issuer, env.seq(issuer)).key; + uint256 const sellOfferIndex2 = + keylet::nftoffer(issuer, env.seq(issuer)).key; env(token::createOffer(issuer, nftID, XRP(1)), token::expiration(expiration), txflags(tfSellNFToken)); env.close(); - uint256 const buyOfferIndex2 = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex2 = + keylet::nftoffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, XRP(1)), token::owner(issuer), token::expiration(expiration)); @@ -6099,7 +6105,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env(token::brokerOffers(buyer, buyOfferIndex2, sellOfferIndex2), ter(tecEXPIRED)); env.close(); - + // Both offers should be deleted BEAST_EXPECT(ownerCount(env, issuer) == 1); // Only NFT remains BEAST_EXPECT(ownerCount(env, buyer) == 0); // No offers