Add LCOV_EXCL_LINE in appropriate locations

This commit is contained in:
Bronek Kozicki
2025-05-01 12:16:11 +01:00
parent 7b680ed47b
commit 4c6c8a08c9
8 changed files with 39 additions and 38 deletions

View File

@@ -79,8 +79,9 @@ deleteSLE(
auto const sleAccount = view.peek(keylet::account(account));
if (!sleAccount)
{
JLOG(j.fatal()) << "Internal error: can't retrieve Owner account.";
return tecINTERNAL;
JLOG(j.fatal()) // LCOV_EXCL_LINE
<< "Internal error: can't retrieve Owner account."; // LCOV_EXCL_LINE
return tecINTERNAL; // LCOV_EXCL_LINE
}
// Remove object from owner directory
@@ -88,8 +89,9 @@ deleteSLE(
if (!view.dirRemove(
keylet::ownerDir(account), page, sleCredential->key(), false))
{
JLOG(j.fatal()) << "Unable to delete Credential from owner.";
return tefBAD_LEDGER;
JLOG(j.fatal()) // LCOV_EXCL_LINE
<< "Unable to delete Credential from owner."; // LCOV_EXCL_LINE
return tefBAD_LEDGER; // LCOV_EXCL_LINE
}
if (isOwner)
@@ -237,13 +239,13 @@ authorizedDepositPreauth(
for (auto const& h : credIDs)
{
auto sleCred = view.read(keylet::credential(h));
if (!sleCred) // already checked in preclaim
return tefINTERNAL;
if (!sleCred) // already checked in preclaim
return tefINTERNAL; // LCOV_EXCL_LINE
auto [it, ins] =
sorted.emplace((*sleCred)[sfIssuer], (*sleCred)[sfCredentialType]);
if (!ins)
return tefINTERNAL;
return tefINTERNAL; // LCOV_EXCL_LINE
lifeExtender.push_back(std::move(sleCred));
}

View File

@@ -76,21 +76,21 @@ VaultClawback::preclaim(PreclaimContext const& ctx)
auto account = ctx.tx[sfAccount];
auto const issuer = ctx.view.read(keylet::account(account));
if (!issuer)
return tefINTERNAL; // Transactor should have enforced this
return tefINTERNAL; // LCOV_EXCL_LINE
Asset const asset = vault->at(sfAsset);
if (asset.native())
return tecNO_PERMISSION; // Cannot clawback XRP.
else if (asset.getIssuer() != account)
return tecNO_PERMISSION; // Only issuers can clawback.
auto const amount = ctx.tx[~sfAmount];
if (amount && asset != amount->asset())
Asset const vaultAsset = vault->at(sfAsset);
if (auto const amount = ctx.tx[~sfAmount];
amount && vaultAsset != amount->asset())
return tecWRONG_ASSET;
if (asset.holds<MPTIssue>())
if (vaultAsset.native())
return tecNO_PERMISSION; // Cannot clawback XRP.
else if (vaultAsset.getIssuer() != account)
return tecNO_PERMISSION; // Only issuers can clawback.
if (vaultAsset.holds<MPTIssue>())
{
auto const mpt = asset.get<MPTIssue>();
auto const mpt = vaultAsset.get<MPTIssue>();
auto const mptIssue =
ctx.view.read(keylet::mptIssuance(mpt.getMptID()));
if (mptIssue == nullptr)
@@ -100,7 +100,7 @@ VaultClawback::preclaim(PreclaimContext const& ctx)
if (!(issueFlags & lsfMPTCanClawback))
return tecNO_PERMISSION;
}
else if (asset.holds<Issue>())
else if (vaultAsset.holds<Issue>())
{
std::uint32_t const issuerFlags = issuer->getFieldU32(sfFlags);
if (!(issuerFlags & lsfAllowTrustLineClawback) ||
@@ -117,12 +117,12 @@ VaultClawback::doApply()
auto const& tx = ctx_.tx;
auto const vault = view().peek(keylet::vault(tx[sfVaultID]));
if (!vault)
return tefINTERNAL; // Enforced in preclaim
return tefINTERNAL; // LCOV_EXCL_LINE
auto const mptIssuanceID = (*vault)[sfShareMPTID];
auto const sleIssuance = view().read(keylet::mptIssuance(mptIssuanceID));
if (!sleIssuance)
return tefINTERNAL;
return tefINTERNAL; // LCOV_EXCL_LINE
Asset const asset = vault->at(sfAsset);
STAmount const amount = [&]() -> STAmount {

View File

@@ -151,7 +151,7 @@ VaultCreate::doApply()
auto sequence = tx.getSeqValue();
auto owner = view().peek(keylet::account(account_));
if (owner == nullptr)
return tefINTERNAL;
return tefINTERNAL; // LCOV_EXCL_LINE
auto vault = std::make_shared<SLE>(keylet::vault(account_, sequence));
@@ -164,7 +164,7 @@ VaultCreate::doApply()
auto maybePseudo = createPseudoAccount(view(), vault->key(), sfVaultID);
if (!maybePseudo)
return maybePseudo.error();
return maybePseudo.error(); // LCOV_EXCL_LINE
auto& pseudo = *maybePseudo;
auto pseudoId = pseudo->at(sfAccount);
auto asset = tx[sfAsset];
@@ -196,7 +196,7 @@ VaultCreate::doApply()
.domainId = tx[~sfDomainID],
});
if (!maybeShare)
return maybeShare.error();
return maybeShare.error(); // LCOV_EXCL_LINE
auto& share = *maybeShare;
vault->at(sfFlags) = txFlags & tfVaultPrivate;

View File

@@ -82,7 +82,7 @@ VaultDelete::doApply()
{
auto const vault = view().peek(keylet::vault(ctx_.tx[sfVaultID]));
if (!vault)
return tefINTERNAL; // Enforced in preclaim
return tefINTERNAL; // LCOV_EXCL_LINE
// Destroy the asset holding.
auto asset = vault->at(sfAsset);

View File

@@ -128,15 +128,14 @@ VaultDeposit::doApply()
{
auto const vault = view().peek(keylet::vault(ctx_.tx[sfVaultID]));
if (!vault)
return tefINTERNAL; // Enforced in preclaim
return tefINTERNAL; // LCOV_EXCL_LINE
auto const assets = ctx_.tx[sfAmount];
// Make sure the depositor can hold shares.
auto const mptIssuanceID = (*vault)[sfShareMPTID];
auto const sleIssuance = view().read(keylet::mptIssuance(mptIssuanceID));
if (!sleIssuance)
return tefINTERNAL;
return tefINTERNAL; // LCOV_EXCL_LINE
auto const& vaultAccount = vault->at(sfAccount);
// Note, vault owner is always authorized
@@ -208,7 +207,7 @@ VaultDeposit::doApply()
FreezeHandling::fhIGNORE_FREEZE,
AuthHandling::ahIGNORE_AUTH,
j_) < beast::zero)
return tefINTERNAL;
return tefINTERNAL; // LCOV_EXCL_LINE
// Transfer shares from vault to depositor.
if (auto ter = accountSend(

View File

@@ -83,7 +83,7 @@ VaultSet::preclaim(PreclaimContext const& ctx)
auto const mptIssuanceID = (*vault)[sfShareMPTID];
auto const sleIssuance = ctx.view.read(keylet::mptIssuance(mptIssuanceID));
if (!sleIssuance)
return tefINTERNAL;
return tefINTERNAL; // LCOV_EXCL_LINE
if (auto const domain = ctx.tx[~sfDomainID])
{
@@ -101,7 +101,7 @@ VaultSet::preclaim(PreclaimContext const& ctx)
// Sanity check only, this should be enforced by VaultCreate
if ((sleIssuance->getFlags() & lsfMPTRequireAuth) == 0)
return tefINTERNAL;
return tefINTERNAL; // LCOV_EXCL_LINE
}
return tesSUCCESS;
@@ -119,12 +119,12 @@ VaultSet::doApply()
// Update existing object.
auto vault = view().peek(keylet::vault(tx[sfVaultID]));
if (!vault)
return tefINTERNAL; // Enforced in preclaim
return tefINTERNAL; // LCOV_EXCL_LINE
auto const mptIssuanceID = (*vault)[sfShareMPTID];
auto const sleIssuance = view().peek(keylet::mptIssuance(mptIssuanceID));
if (!sleIssuance)
return tefINTERNAL;
return tefINTERNAL; // LCOV_EXCL_LINE
// Update mutable flags and fields if given.
if (tx.isFieldPresent(sfData))

View File

@@ -70,7 +70,7 @@ VaultWithdraw::preclaim(PreclaimContext const& ctx)
// Enforce valid withdrawal policy
if (vault->at(sfWithdrawalPolicy) != vaultStrategyFirstComeFirstServe)
return tefINTERNAL;
return tefINTERNAL; // LCOV_EXCL_LINE
auto const account = ctx.tx[sfAccount];
auto const dstAcct = [&]() -> AccountID {
@@ -146,7 +146,7 @@ VaultWithdraw::doApply()
assets = sharesToAssetsWithdraw(vault, sleIssuance, shares);
}
else
return tefINTERNAL;
return tefINTERNAL; // LCOV_EXCL_LINE
if (accountHolds(
view(),
@@ -194,7 +194,7 @@ VaultWithdraw::doApply()
FreezeHandling::fhIGNORE_FREEZE,
AuthHandling::ahIGNORE_AUTH,
j_) < beast::zero)
return tefINTERNAL;
return tefINTERNAL; // LCOV_EXCL_LINE
return tesSUCCESS;
}

View File

@@ -1156,9 +1156,9 @@ addEmptyHolding(
auto const sleSrc = view.peek(keylet::account(srcId));
auto const sleDst = view.peek(keylet::account(dstId));
if (!sleDst || !sleSrc)
return tefINTERNAL;
return tefINTERNAL; // LCOV_EXCL_LINE
if (!sleSrc->isFlag(lsfDefaultRipple))
return tecINTERNAL;
return tecINTERNAL; // LCOV_EXCL_LINE
// If the line already exists, don't create it again.
if (view.read(index))
return tecDUPLICATE;