fix: actually limit the time taken to shrink #202
Merged
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.
I have a case where there is a 4kiB input that needs shrinking. Bolero then wants to run 4000 times the apply_transforms function before checking for shrink time.
Unfortunately, each apply_transforms seems to run my test closure 2000 times, and each test closure takes 50-100ms to run.
All together, bolero would need 9 days before checking for the shrink time limit for the first time.
With this change, bolero now checks more often the shrink time, which actually leads to me getting an error message and not what looks like a deadlock :)
I'll also ask, do you think you could release 0.10.1 with the fixes? It's probably not the first time I've hit the bug, but until now I've been ignoring it due to it looking like a deadlock.