Fuzzer and CI enhancements, format bug fixes #5415
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.
This adds support for
--fuzz=LIMIT
, whereLIMIT
is a decimal number specifying the maximum number of mangled ciphertexts to try per format. Since we had already supported an argument to that option to specify a "dictionary", I had to add a check forisdec
and support both features (one at a time). This is a hack, but this whole feature is (and it is not compiled in by default), so it's "fine".This also adds a number of GitHub Actions, which build with ASan and varying other options. One of them even runs
--fuzz=500
, which takes under a minute and fits 2 GB RAM. All of them use gcc 13. To reduce load on the CI infrastructure and have all of these jobs complete sooner,OMP_NUM_THREADS
is now capped to 2, which is hopefully enough to have a good chance of catching multithreading-related bugs. Previously, the auto-detected number of threads on GitHub Actions would be 4, and tests were taking significantly longer (I guess those are logical CPUs in 2 cores).Finally, the
--disable-simd
and--without-openssl
ASan workers (under my personal GitHub account) identified some bugs in the formats, which are now fixed.