-
Notifications
You must be signed in to change notification settings - Fork 177
chores(fill, pytest): mark slow tests that were not marked as such yet #2220
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Oooh, that's quite a lot of tests. Wdyt about having a nightly that runs all tests on
Btw, I think you could achieve the same using a pytest built-in:
|
I don't know what you mean with
So all in all, I would prefer just to merge this and revisit it when we think that 'not slow' fills feel slow |
I consider filling the tests an important check of the framework source and the test source code. Post-Weld, it will also be relevant for testing changes in the specs. Otherwise, why would we fill the tests in the CI at all? Anything that's not ran in a regular CI, can come and bite us when we least expect it. For example, when we want to push out a release. |
Ah, does this mean whenever we push any commit and CI runs it actually skips everything marked as slow? In that case I agree with you, that we should fill slow tests nightly |
I agree with Dan on the CI side. I think we can/should refine this further post weld. What if for now we make this limit 5s -> marking tests over 5s with slow just to get this merged? We could instead (in the future) add a marker for fast filling tests of each EIP. So we'd have some tests from each EIP with this marker. Then in CI only fill these tests for all forks to test basic functionality. Our nightly would then fill all tests to check we haven't broken anything further as a sanity check. |
I really like this idea, have a I think @SamWilsn did something like this on EELS where he found the minimal set of tests that provided full coverage of EELS, we could do the same and mark the minimum amount of tests that verify our whole EEST framework and then only run those sanity tests for PR merging. |
Sounds great! But filling the tests is also a test of the tests, not just a test of the fw. I.e., you are testing that if you change the fw, that you didn't break any tests. Also if you change tldr; it'll require some logic to pick a good subset. I would prefer to optimize filling. One other good reason to run all (reasonable) tests, is that we should run hasher in CI by default to get the hash. Then it's trivial to verify fixture changes against main for pure refactors.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm inclined to merge now for a couple of reasons:
- It'll speed up merging PRs
- We can revisit
slow
marked tests once we are welded. - Once welded, we can run all slow tests at least once to mark the weld as successful.
I can open an issue to track this post-weld.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed marks for some of the tests which have no other tests in the suite, in order to not remove coverage of those functions completely.
🗒️ Description
I wrote a function for the filler plugin that while filling detects when a non-slow test takes more than 0.5 sec during any of its phases (setup, call, teardown). It then warns that this test should be marked as slow. I locally filled all non-slow tests and then manually added the slow marker to them. Some of these take more than 3s, so this PR should substantially speed up our non-slow filling. LMK whether you think the standalone function for detecting such scenarios should also be merged or not, its just a
def pytest_runtest_logreport(report)
with some logic in./src/pytest_plugins/filler/filler.py
.🔗 Related Issues or PRs
N/A.
✅ Checklist
tox
checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:uvx --with=tox-uv tox -e lint,typecheck,spellcheck,markdownlint
type(scope):
.mkdocs serve
locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.@ported_from
marker.