this vastly simplifies running all of the fuzzing targets in parallel to expand the corpus
depends on #20751
206
207 running_jobs = set()
208- while len(jobs) > 0 or len(running_jobs) > 0:
209- if len(running_jobs) < max_jobs and len(jobs) > 0:
210- target, args = jobs.pop()
211+ while True:
while true
outside the script. The benefit was that the outside could update this script, the code repo, as well as the seeds repo. This allows continuous fuzzing of the master branch with the latest code and seeds while atomically updating the build system and this script.
while True
, maybe expose it via some kind of option?
It’s not so much the while True I like, but the fact that this doesn’t leave cores unused after most of the jobs are done. Doing it randomly also more easily accommodates adding more configurations (which presumably would hurt your workflow equally much, as every new combination would multiply the time between checks by some factor).
What about adding an option to make this automatically exit after some specified wall clock time?
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
Reviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
🐙 This pull request conflicts with the target branch and needs rebase.
Want to unsubscribe from rebase notifications on this pull request? Just convert this pull request to a “draft”.