mwouts / jupytext

Jupyter Notebooks as Markdown Documents, Julia, Python or R scripts
https://jupytext.readthedocs.io
MIT License
6.65k stars 386 forks source link

Add Atheris fuzzers #987

Open AdamKorcz opened 2 years ago

AdamKorcz commented 2 years ago

This PR adds ClusterfuzzLite and two Atheris fuzzers for line reading.

ClusterfuzzLite will run fuzzers in the CI when PRs are made. It can be extended beyond this PR with code coverage and batch fuzzing: https://google.github.io/clusterfuzzlite/running-clusterfuzzlite/github-actions/

Signed-off-by: AdamKorcz Adam@adalogics.com

mwouts commented 2 years ago

Hi Adam, thank you for the PR, it looks super interesting!

I am eager to see the impact on the CI. For now it has been blocked by a flake8 check (sorry about this), we should add this commit to your PR: https://github.com/mwouts/jupytext/commit/bc47f85151614e46421c41bc4ec7bd5ec287b96e (we'll be able to see the outcome of the CI on that commit)

mwouts commented 2 years ago

Adam, I see that the CI has run OK (except for the codecov step which is hard to get green deterministically). This is good news, but I am also looking forward to seeing a first bug signaled by this fuzzing approach. Are we sure that the tests were execute on the CI ? How does a sample failure looks like ? Do you have recommendations on how to extend the fuzzing coverage ?