Skip to content

Continuous fuzzing roadmap toward OSS-Fuzz integration #2519

Description

@LucaCappelletti94

I believe having continuous fuzzer will help us a lot in the process more effectively the increasing number of PR and avoid merging regressions, other than of course discover current errors.

I propose the following sequence of PRs:

  1. Switching from honggfuzz to cargo-fuzz/libFuzzer harness. I agree that in the past honggfuzz was the goto solution, and it was also my favourite, but cargo-fuzz has improved a lot in the last few years and is required by OSS-Fuzz and ClusterFuzzLite. Done in Fuzz: Replace honggfuzz harness with cargo-fuzz #2520
  2. ClusterFuzzLite PR gate + daily batch, same targets. Ready for review in Fuzz: Wire up ClusterFuzzLite CI fuzzing #2527
  3. Adding a harness executing the parse -> Display -> re-parse loop. Ready for review in Fuzz: Display roundtrip #2528
  4. Actually committed seed corpus. Ready for review in Fuzz: Add curated seed corpus #2530
  5. OSS-Fuzz application (projects/datafusion-sqlparser-rs) which I believe we may be approved for, given the reasonable user pool of this crate. This PR should only be opened after we reach some fuzzer stability.
  6. Fuzz-byte-driven weighted recursive query generator (SparkFuzz/SQLsmith style), sidestepping Added derive for arbitrary #2193's Arbitrary blocker which is still blocked to this day because of the ignored upstream PR Added support for Arbitrary akubera/bigdecimal-rs#163 @iffyio opinions?

EDIT: swapped order of steps as mentioned in #2519 (comment)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions