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. Done in Fuzz: Wire up ClusterFuzzLite CI fuzzing #2527
  3. Adding a harness executing the parse -> Display -> re-parse loop. Done in Fuzz: Display roundtrip #2528
  4. Actually committed seed corpus. Ready for review in Fuzz: Add curated seed corpus #2530
  5. Clean code of harnesses & rest suite by moving the list of all currently supported dialects in an utility function in the main library.
  6. Bring up to speed the Added derive for arbitrary #2193 Arbitrary PR
  7. 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.
  8. Fuzz-byte-driven weighted recursive query generator (SparkFuzz/SQLsmith style)

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