-
Notifications
You must be signed in to change notification settings - Fork 0
Improved overflow support: Parameterized torture tests #29
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
Merged
DavyLandman
merged 12 commits into
improved-overflow-support-main
from
improved-overflow-support/parameterized-torture-tests
Apr 3, 2025
Merged
Improved overflow support: Parameterized torture tests #29
DavyLandman
merged 12 commits into
improved-overflow-support-main
from
improved-overflow-support/parameterized-torture-tests
Apr 3, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… generated for files that exist
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## improved-overflow-support-main #29 +/- ##
==================================================================
- Coverage 81.5% 80.4% -1.2%
Complexity 130 130
==================================================================
Files 16 16
Lines 532 567 +35
Branches 54 64 +10
==================================================================
+ Hits 434 456 +22
- Misses 62 70 +8
- Partials 36 41 +5 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
…t-modified-times only when the files involved truly exist
…prove performance of `IndexingRescanner`
https://github.com/SWAT-engineering/java-watch into improved-overflow-support/parameterized-torture-tests
DavyLandman
approved these changes
Apr 3, 2025
61ebbb8
into
improved-overflow-support-main
23 of 24 checks passed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Primary goal of this PR
This PR parameterizes the torture tests with auto-handlers for
OVERFLOWevents, so we now automatically run all torture tests withMemorylessRescanner(i.e.,OnOverflow.ALL) andIndexingRescanner(i.e.,OnOverflow.DIRTY).As JUnit doesn't seem to have easy support for combining
@ParameterizedTestand@RepeatedTest, but we do need both, three approaches were considered:This PR implements the third approach because: (a) it's conceptually easy; (b) it yields the least amount of extra code; (c) as a result, it seems to strike the best balance for now between effort vs. number of torture tests that need it (only one). If, at some point in the future, we happen to have many more (torture) tests that need it, then maybe we should revisit and invest some effort to use one of the other approaches.
Other changes
This PR also fixes two issues in
IndexingRescannerthat were revealed by the parameterized tests, namely: (a) a small fix that makes sure a file really doesn't exist when aDELETEDevent is generated; (b) a larger fix that adds more hierarchical structure to the index map---two levels instead of one level---to address performance issues.