Skip to content

test(tests): extend BALs coverage#2854

Open
fselmo wants to merge 3 commits into
ethereum:forks/amsterdamfrom
fselmo:feat/extend-bal-edge-case-coverage
Open

test(tests): extend BALs coverage#2854
fselmo wants to merge 3 commits into
ethereum:forks/amsterdamfrom
fselmo:feat/extend-bal-edge-case-coverage

Conversation

@fselmo
Copy link
Copy Markdown
Contributor

@fselmo fselmo commented May 13, 2026

🗒️ Description

This branch closes BAL coverage gaps that surfaced while drafting the EIP-7928 testing checklist (subsequent PR) and resolves #1910 along the way. The goal here is to get closer to full BAL coverage ahead of the checklist.

  • first commit: SELFDESTRUCT-to-coinbase across same-tx and pre-deploy, parent-revert state-access demotion across SSTORE/SLOAD/BALANCE/EXTCODESIZE, and SELFDESTRUCT inside a reverting sub-call.
  • closes EIP-7928: parametrize memory for CALL gas boundaries #1910 (second commit): the 9 CALL/CALLCODE/DELEGATECALL/STATICCALL OOG tests now parametrize args_size and ret_size independently, so gas-boundary divergences are caught in either direction instead of only when both grow together.
  • Insufficient-funds boundaries (third commit): a combined outer-REVERT + inner-insufficient-funds test (CALL and CREATE) for the write-demotion ↔ failed-CALL-target-warmed interaction, plus EIP-7928-gated BAL expectations layered onto three existing cross-fork tests (EIP-7708 CALL/CALLCODE no-log, EIP-2929 CREATE cold-warming, frontier CALL early revert).

✅ Checklist

  • All: Ran fast static checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:
    just static
  • All: PR title adheres to the repo standard - it will be used as the squash commit message and should start type(scope):.
  • All: Considered updating the online docs in the ./docs/ directory.
  • All: Set appropriate labels for the changes (only maintainers can apply labels).
  • Tests: Ran mkdocs serve locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.
  • Tests: For PRs implementing a missed test case, update the post-mortem document to add an entry the list.
  • Ported Tests: All converted JSON/YML tests from ethereum/tests or tests/static have been assigned @ported_from marker.

Cute Animal Picture

Screenshot 2026-05-13 at 16 38 18

fselmo added 3 commits May 13, 2026 14:32
Add a combined outer-REVERT + inner-insufficient-funds test (CALL and CREATE), and layer EIP-7928-gated BAL expectations onto three existing cross-fork insufficient-funds tests (EIP-7708, EIP-2929 frontier CALL).
@fselmo fselmo added C-test Category: test A-tests Area: Consensus tests. labels May 13, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.94%. Comparing base (2037311) to head (5d3d0f3).
⚠️ Report is 4 commits behind head on forks/amsterdam.

Additional details and impacted files
@@               Coverage Diff                @@
##           forks/amsterdam    #2854   +/-   ##
================================================
  Coverage            86.94%   86.94%           
================================================
  Files                  586      586           
  Lines                35764    35767    +3     
  Branches              3362     3362           
================================================
+ Hits                 31095    31098    +3     
  Misses                4010     4010           
  Partials               659      659           
Flag Coverage Δ
unittests 86.94% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-tests Area: Consensus tests. C-test Category: test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

EIP-7928: parametrize memory for CALL gas boundaries

1 participant