Skip to content

feat(tests): extend BALs coverage#2854

Merged
fselmo merged 9 commits into
ethereum:forks/amsterdamfrom
fselmo:feat/extend-bal-edge-case-coverage
May 20, 2026
Merged

feat(tests): extend BALs coverage#2854
fselmo merged 9 commits into
ethereum:forks/amsterdamfrom
fselmo:feat/extend-bal-edge-case-coverage

Conversation

@fselmo

@fselmo fselmo commented May 13, 2026

Copy link
Copy Markdown
Contributor

🗒️ 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).

Additional parallelization tests (fourth commit)

Builds a bit on #2851 tests

  • test_bal_cross_tx_factory_nonce_create_chain: 8 distinct senders each call a shared factory's CREATE with identical initcode. Probes parallelizers that skip nonce_changes when there are no storage/balance signals; they'd collide all 8 deployments on addr(factory, N+1).
  • test_bal_7702_delegation_update: Two txs from distinct relayers both auth alice's delegation (nonces 0, 1). Probes parallel auth-signature verifiers that validate the second auth against pre-block alice.nonce=0, rejecting it instead of seeing the post-tx-1 bump.

✅ 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 fselmo added C-test Category: test A-tests Area: Consensus tests. labels May 13, 2026
@codecov

codecov Bot commented May 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.44%. Comparing base (62b914c) to head (181e5d4).
⚠️ Report is 7 commits behind head on forks/amsterdam.

Additional details and impacted files
@@                 Coverage Diff                 @@
##           forks/amsterdam    #2854      +/-   ##
===================================================
+ Coverage            87.16%   90.44%   +3.27%     
===================================================
  Files                  586      535      -51     
  Lines                35791    32439    -3352     
  Branches              3364     3012     -352     
===================================================
- Hits                 31198    29338    -1860     
+ Misses                3943     2573    -1370     
+ Partials               650      528     -122     
Flag Coverage Δ
unittests 90.44% <ø> (+3.27%) ⬆️

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.

@fselmo fselmo force-pushed the feat/extend-bal-edge-case-coverage branch from 5d3d0f3 to 1a41583 Compare May 14, 2026 19:22
@fselmo fselmo requested review from marioevz and raxhvl May 14, 2026 19:23
@fselmo fselmo added C-feat Category: an improvement or new feature and removed C-test Category: test labels May 14, 2026
@fselmo fselmo changed the title test(tests): extend BALs coverage feat(tests): extend BALs coverage May 14, 2026
@fselmo fselmo force-pushed the feat/extend-bal-edge-case-coverage branch from 1a41583 to d47d5fc Compare May 15, 2026 17:00
Comment thread tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py Outdated
Comment thread tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py Outdated
Comment thread tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py Outdated
Comment thread tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py Outdated
Comment thread tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py Outdated
Comment thread tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py Outdated
Comment thread tests/frontier/opcodes/test_call.py Outdated
Comment thread tests/amsterdam/eip7708_eth_transfer_logs/test_transfer_logs.py
fselmo added a commit to fselmo/execution-specs that referenced this pull request May 19, 2026
@fselmo fselmo force-pushed the feat/extend-bal-edge-case-coverage branch from 505bafc to 4ba4a6a Compare May 19, 2026 17:17
@fselmo

fselmo commented May 19, 2026

Copy link
Copy Markdown
Contributor Author

Last 3 commits here should address your comments @raxhvl. I added a bit more to the extra test case as parallelization create chain variants, I think it's a good case. Please re-review when you get a chance.

In the last commit, I did a fresh audit of test_cases.md, including updating it for the test we just changed in #2882.

@fselmo fselmo requested a review from raxhvl May 19, 2026 17:20

@raxhvl raxhvl left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good

@fselmo

fselmo commented May 20, 2026

Copy link
Copy Markdown
Contributor Author

Context on the last commit here, stems from recently merged transition tests and this conversation on STEEL Discord server.

@kclowes kclowes self-requested a review May 20, 2026 20:44

@kclowes kclowes left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM from my limited view. Nothing obvious stands out!

@fselmo fselmo merged commit 1de389b into ethereum:forks/amsterdam May 20, 2026
18 checks passed
@fselmo fselmo deleted the feat/extend-bal-edge-case-coverage branch May 20, 2026 22:33
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-feat Category: an improvement or new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

EIP-7928: parametrize memory for CALL gas boundaries

3 participants