-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
fuzzgen: Generate multiple functions per testcase #5765
Conversation
Subscribe to Label Actioncc @fitzgen
This issue or pull request has been labeled: "cranelift", "fuzzing"
Thus the following users have been cc'd because of the following labels:
To subscribe or unsubscribe from this label, edit the |
I'm very excited to merge this, but I'm holding off on reviewing it until we merge #5764. |
cc30cb8
to
263b973
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.
This looks great and I'm so excited to start actually fuzzing function calls. After rebasing this (and fixing the one typo I noticed) please run both fuzzers for a bit, but then feel free to merge!
f136708
to
e1c150e
Compare
Well, this has been running for the past 8 hours successfully on x64 and AArch64 without crashing. I'm going to try to fix that one, otherwise if it ends up being complicated we can disable the colocated flag for RISC-V. |
Co-authored-by: Jamey Sharp <jamey@minilop.net>
e1c150e
to
5c0adfd
Compare
Rebased this on top of main, and given the amount of fuzzgen changes since this was first posted I'm going to give this a few hours of fuzzing again before merging. Edit: Nothing so far that's related to calls. I'm going to call that good enough. |
👋 Hey,
This PR is a follow up to #5764, so we probably should merge that first before reviewing this. (Or just review the last 2 commits).
This changes fuzzgen to generate multiple functions in a testcase 🥳
Functions are only allowed to call previously generated functions, so we never generate loops or recursive calls. Though that is probably something we should reconsider at some point.
We always pass all allowed functions into
FunctionGenerator
and so the function headers are somewhat poluted with definitions, maybe this is something we want to improve.Example Testcase:
Ran this on AArch64 and x86 for a while and it didn't complain.