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.
  2. ClusterFuzzLite PR gate + daily batch, same targets.
  3. Adding a harness executing the parse -> Display -> re-parse loop, plus an actually committed seed corpus.
  4. OSS-Fuzz application (projects/datafusion-sqlparser-rs) which I believe we may be approved for, given the reasonable user pool of this crate
  5. 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

@alamb @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

Assignees

No one assigned

    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