-
Notifications
You must be signed in to change notification settings - Fork 259
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
Bring solfuzz-agave
to the mono repo
#955
Conversation
a8be9ac
to
7ed054f
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #955 +/- ##
=========================================
- Coverage 81.9% 81.8% -0.1%
=========================================
Files 855 855
Lines 232154 232154
=========================================
- Hits 190170 190129 -41
- Misses 41984 42025 +41 |
021c1c7
to
5ba1465
Compare
@LucasSte a few quick questions:
|
fuzzer/tests/self_test.c
Outdated
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.
We might want to rewrite this self-test in Rust in the future.
I just wrote it in C originally because it was the easiest way to get the test working.
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.
Yes, we can do it in another PR. The .cargo/config.toml
file may need adjustments as cargo pass down the flags to all compiler invocations, whereas it only uses the flag for the project when we use the --target x86_64-unknown-linux-gnu
argument. I haven't taken the time to investigate further how to set different flags for tests.
fuzzer/proto/invoke.proto
Outdated
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.
In the future, we might want to move these Protobuf definitions to some shared place.
Maybe storage-proto?
Firedancer has functionality to create these test vectors from real ledgers (it allows us to debug complex program executions). Agave might want to add the same feature.
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.
In the future, we might want to move these Protobuf definitions to some shared place. Maybe storage-proto?
I was going to suggest this as well. Replicating files in many repositories is not a good practice. Shall we have a separate repo and add it as a submodule here?
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.
@LucasSte I suggest we use solana-foundation/specs. Let's also register the schema on https://buf.build/
I tried to bring the repository as it is now. I made small changes to make our clippy tests happy. There are separate commits to address the warnings I got. There was another PR merged in solfuzz-agave (firedancer-io/solfuzz-agave#3) with more changes, but I thought it was best to add them after that I merge this PR. The repository
Yes. Do you have any suggestion? Solfuzz? |
Forgot to mention: |
can this be elaborated? we're trying to get stuff out of the monorepo, not put more in |
@ripatel-fd Please, feel free to add more context if I forgot anything. Now, @t-nelson we can create another repo under Anza. What do you think? |
do you have any name suggestions if we decide to move it to another repository? btw, it looks like we can just fork from Firedancer and then make some custom modifications 🤔 |
looks like we haven't had a conclusion 🤔 I just forked the repo here: https://github.com/anza-xyz/solfuzz-agave in case we need it! |
@t-nelson Few other points came to my mind during the weekend to justify moving the fuzzer to the monorepo. If any of the target APIs receive updates, the mono repo CI would point that the fuzzer needs the same updates. If the fuzzer is a separate repository, these updates would need to be manual. In addition, selecting Agave's version to fuzz with the project on the monorepo is as simple as doing |
Closing the PR in favor of maintaining the fuzzer outside the monrepo, as a separate repository: https://github.com/anza-xyz/solfuzz-agave |
Problem
The fuzzer we are developing together with Firedancer needs this glue code to work with Agave. The repository was previously outside the monorepo, hindering proper maintenance.
Summary of Changes
I brought the repository and made some adjustments to satisfy clippy and the dependencies path.
This is another workspace under Agave, as it is not a published crate and its compilation commands require specific settings.