Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fuzzing #168

Merged
merged 1 commit into from
May 15, 2023
Merged

Fuzzing #168

merged 1 commit into from
May 15, 2023

Conversation

kuzminrobin
Copy link
Contributor

@kuzminrobin kuzminrobin commented Apr 17, 2023

Adds fuzzing and code coverage during it to the repo.
Fixes #169, #257.

  • github\CODEOWNERS
  • Disable fuzz-target output

@kuzminrobin kuzminrobin force-pushed the kuzminrobin/fuzz branch 3 times, most recently from 3262646 to c552f13 Compare April 21, 2023 02:15
@kuzminrobin kuzminrobin marked this pull request as ready for review April 21, 2023 02:22
@kuzminrobin
Copy link
Contributor Author

I addressed the feedback. Please review the updates while I'm working on
optimizing the seed inputs
and the workflow automation PR.

fuzz/Cargo.toml Outdated Show resolved Hide resolved
fuzz/Cargo.toml Outdated Show resolved Hide resolved
fuzz/README.md Show resolved Hide resolved
fuzz/README.md Show resolved Hide resolved
fuzz/README.md Outdated Show resolved Hide resolved
@kuzminrobin
Copy link
Contributor Author

Please review.

.github/CODEOWNERS Outdated Show resolved Hide resolved
Copy link
Collaborator

@swernli swernli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really like the smaller seed input as opposed to the large folder of corpus samples!
A few snippets I noticed are not present in there, some of which are new syntax and some of which are existing:

  • while loops are not present
  • Returning values from if-statements, as in
let x = if cond_var { 3 } else { 4 };
  • repeat-loop without a fixup block
  • return or fail used as nested expressions instead of just as block-level statements
  • ternary update expression outside of assign-update, ie: let x = array w/ index <- value;

There are probably more, but those few jumped to the top of my head as things we might want to include so fuzzing has a change to reuse them in other places.

fuzz/seed_inputs/compile/input.qs Outdated Show resolved Hide resolved
fuzz/seed_inputs/compile/input.qs Outdated Show resolved Hide resolved
fuzz/seed_inputs/compile/input.qs Outdated Show resolved Hide resolved
@kuzminrobin
Copy link
Contributor Author

Please review again.

fuzz/fuzz_targets/compile.rs Outdated Show resolved Hide resolved
.github/CODEOWNERS Outdated Show resolved Hide resolved
Copy link
Collaborator

@swernli swernli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The approach of including the fuzz folder in the top-level workspace is not viable and needs to be reverted.

build.py Outdated Show resolved Hide resolved
Cargo.toml Show resolved Hide resolved
fuzz/Cargo.toml Outdated Show resolved Hide resolved
.github/workflows/ci.yml Outdated Show resolved Hide resolved
fuzz/Cargo.toml Outdated Show resolved Hide resolved
@swernli swernli dismissed their stale review May 15, 2023 20:40

re-evaluating changes

fuzz/Cargo.toml Outdated Show resolved Hide resolved
    CR change.
    Cleanup.
    Stefan's proposed changes.
    Exclusded fuzzing from defaults.
    Update after rebase.
    . . .
    Renamed fuzz target.
    Added readme section, minor clean-up.
    Initial merge of the compiler fuzzing.
@kuzminrobin kuzminrobin merged commit a0e1ce9 into main May 15, 2023
11 checks passed
@kuzminrobin kuzminrobin deleted the kuzminrobin/fuzz branch May 15, 2023 22:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Fuzzing (+Code Coverage)
4 participants