-
-
Notifications
You must be signed in to change notification settings - Fork 406
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
[Merged by Bors] - VM Fuzzer #2401
Conversation
It would be useful to have a README.md in the |
Done -- provided some explanation for both fuzzers. |
Codecov Report
@@ Coverage Diff @@
## main #2401 +/- ##
==========================================
+ Coverage 52.41% 52.51% +0.10%
==========================================
Files 329 327 -2
Lines 34945 34874 -71
==========================================
- Hits 18315 18314 -1
+ Misses 16630 16560 -70
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
I guess this depends on the parser fuzzer, so let's merge that first :) |
feaffb6
to
2adbe98
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was an issue asking for a new feature for limits on loops: #2350. NoInstructionsRemain
could be reused to implement this.
We are on one mind here lol |
Now that I think about it, you don't need to juggle with conversions of the |
Can the error even be manipulated? Not sure how boa makes native errors available to users. |
This isn't quite true. Consider: while (true) try {} catch {} The |
Ah, right, the check is inside |
That's up to y'all; I don't really know what the preference on execution order is. |
I mean, a |
It already isn't -- it immediately throws another in any catch block. |
Yes, but I think it should directly quit execution instead of trying to execute a |
That is not what I thought those buttons did, whoops |
5d04776
to
3c718d0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!! LGTM!
@jedel1043 could you check if your comments were addressed? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work!
bors r+ |
This Pull Request offers a basic VM fuzzer which relies on implied oracles (namely, "does it crash or timeout?"). It changes the following: - Adds an insns_remaining field to Context, denoting the number of instructions remaining to execute (only available when fuzzing) - Adds a JsNativeError variant, denoting when the number of instructions has been exceeded (only available when fuzzing) - Adds a VM fuzzer which looks for cases where Boa may crash on an input This offers no guarantees about correctness, only assertion violations. Depends on #2400. Any issues I raise in association with this fuzzer will link back to this fuzzer. You may run the fuzzer using the following commands: ```bash $ cd boa_engine $ cargo +nightly fuzz run -s none vm-implied ``` Co-authored-by: Addison Crump <addison.crump@cispa.de>
Pull request successfully merged into main. Build succeeded: |
This Pull Request offers a basic VM fuzzer which relies on implied oracles (namely, "does it crash or timeout?").
It changes the following:
This offers no guarantees about correctness, only assertion violations. Depends on #2400.
Any issues I raise in association with this fuzzer will link back to this fuzzer.
You may run the fuzzer using the following commands:
$ cd boa_engine $ cargo +nightly fuzz run -s none vm-implied