Skip to content

feat(tooling): added a smoke test for devs#2605

Draft
Carsons-Eels wants to merge 1 commit intoethereum:forks/amsterdamfrom
Carsons-Eels:smoke_test
Draft

feat(tooling): added a smoke test for devs#2605
Carsons-Eels wants to merge 1 commit intoethereum:forks/amsterdamfrom
Carsons-Eels:smoke_test

Conversation

@Carsons-Eels
Copy link
Copy Markdown
Contributor

@Carsons-Eels Carsons-Eels commented Apr 1, 2026

🗒️ Description

Adds a smoke job to just that runs some of the static analysis checks with a minimal test suite. It's intended for quick development validation during big changes such as large refactors without running the full test suite.

The smoke suite runs tests from 8 files from Frontier through Amsterdam. I chose tests that were not slow, and that covered as large a set of fragile and critical paths as possible.

Test Coverage

Test Fork Features Covered
test_all_opcodes.py Frontier+ All opcodes, static gas costs, stack validation
test_scenarios.py Frontier+ SSTORE/SLOAD, CALL, CREATE, DELEGATECALL, SELFDESTRUCT, REVERT
test_transaction.py Frontier+ Transaction validation, intrinsic gas, nonce, balance
test_call.py Berlin+ Warm/cold account access, EIP-2929 gas costs
test_tstorage.py Cancun+ Transient storage (TLOAD/TSTORE), warm access
test_gas.py Prague+ EIP-7702 authorisation gas, TX intrinsic costs, cold/warm access
test_block_access_lists.py Amsterdam BAL core state changes
test_block_access_lists_opcodes.py Amsterdam BAL tracking across all opcodes

🔗 Related Issues or PRs

None

✅ Checklist

  • All: Ran fast tox checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:
    uvx tox -e 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).

@Carsons-Eels Carsons-Eels added C-feat Category: an improvement or new feature E-easy Experience: easy, good for newcomers P-low A-tooling Area: Improvements or changes to auxiliary tooling such as uv, ruff, mypy, ... labels Apr 1, 2026
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 1, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.24%. Comparing base (26c98b9) to head (d51e90b).

Additional details and impacted files
@@               Coverage Diff                @@
##           forks/amsterdam    #2605   +/-   ##
================================================
  Coverage            86.24%   86.24%           
================================================
  Files                  599      599           
  Lines                36984    36984           
  Branches              3795     3795           
================================================
  Hits                 31895    31895           
  Misses                4525     4525           
  Partials               564      564           
Flag Coverage Δ
unittests 86.24% <ø> (ø)

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.

Copy link
Copy Markdown
Member

@danceratopz danceratopz left a comment

Choose a reason for hiding this comment

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

Hey @Carsons-Eels I really appreciate the sentiment and have been pondering this one too!

Couple of thoughts:

  1. I think we should lean into the eels_base_coverage marker here, cf #2524, instead of hard-coding a set of tests. This will be a bit slower because it contains more tests. To mitigate, I think it would be worth it to try improve how this marker is applied. It is currently too liberal and applied to all parametrized tests from the output of minimize-tests, but imo we should make the effort to apply it with finer granularity on the parametrized subset.
  2. I would love to add this flag --generate-all-formats to get a smoke test for enginex filling and pre-allocation group generation.

@Carsons-Eels
Copy link
Copy Markdown
Contributor Author

Just adapted it to the new just tool, thanks for that update @danceratopz !

This was definitely a quick stab at it for my own needs with refactoring. I like your suggestions; if you want to have a quick alignment chat about it DM me Thursday or Tuesday. It would be great to get a couple smoke test configurations in.

@danceratopz
Copy link
Copy Markdown
Member

danceratopz commented Apr 2, 2026

Would love to have a call. Thurs (today) could be tricky, but Tues could work!

Currently, on forks/amsterdam the eels_base_coverage set is 25146 tests! We can definitely reduce this by applying the marker on the individual test parametrizations that https://github.com/SamWilsn/minimize-tests flags instead of simply marking all the test functions that it flags. This could be quite fiddly in specific cases, depending on how the tests are parametrized. But it'd be a great task for an LLM as it's trivial to verify (if a little slow, due to our collect-only speed).

Either way, just fill -m eels_base_coverage is already a great proxy for a "specs / fill" smoke test :)

I used Python 3.14 for faster coverage, cf #2310: uv python pin 3.14.

Command Tests Time
just fill -m eels_base_coverage --no-cov 25146 passed, 62 skipped 302.41s (0:05:02)
just fill -m eels_base_coverage 25146 passed, 62 skipped 358.41s (0:05:58)

This was with 8 workers on my laptop (I set PYTEST_XDIST_AUTO_NUM_WORKERS to 8).

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

Labels

A-tooling Area: Improvements or changes to auxiliary tooling such as uv, ruff, mypy, ... C-feat Category: an improvement or new feature E-easy Experience: easy, good for newcomers P-low

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants