Comments (7)
Yes! We are planning to indicate the versions of the fuzzers, and the benchmarks too.
from fuzzbench.
@inferno-chromium @mbarbella-chromium
(@lszekeres @lmrs2 also please share thoughts)
I can think of two ways to determine version.
- Make users set an environment variable (e.g.
FUZZBENCH_FUZZER_VERSION
) at build time that gets saved. - Use the method OSS-Fuzz uses for finding out git repo versions automagically (I think it searches directories in
SRC
iirc).
I lean towards option 2 because it doesn't make integration harder but option 1 is nice for cases like entropic where we apply a patch to a repo.
from fuzzbench.
I think we should automatically save the repo, branch, and the hash of the checked out version (e.g., git rev-parse HEAD
). We should avoid relying on users manually setting versions also because we might want to track and benchmark some fuzzers at the HEAD of their master branch.
from fuzzbench.
I think we should automatically save the repo, branch, and the hash of the checked out version (e.g.,
git rev-parse HEAD
). We should avoid relying on users manually setting versions also because we might want to track and benchmark some fuzzers at the HEAD of their master branch.
I forgot that forcing users to set the version means that the version is pinned and must be updated.
This seems like it might be a good thing though since results can be easily reproduced if we aren't simply building from master. WDYT?
from fuzzbench.
I think less stable or less maintained fuzzers are better pinned to a specific working version. However for stable and actively maintained fuzzers (like libfuzzer, honggfuzz, afl, afl++ ...) it's probably easier to use the head of master by default, as it'd be good to automatically track regressions/improvements in these, and that way we don't need to manually bump versions all the time. (With the versions saved, reproducing an earlier experiment shouldn't be an issue.)
from fuzzbench.
I dont think we can autoroll new versions/hashes as fuzzers will break with benchmark over time. We do this in OSS-Fuzz where project author have a responsibility to fix their build. We don't have that responsibility here, so manually bumping might be the way to go, for atleast next six months or so.
But i do agree that fuzzer repo hash is better rather than with some weirdly explicitly specified / hardcoded version.
from fuzzbench.
Yes, it's a good idea to have fuzzer maintainers explicitly opt in for fuzzbench auto tracking, with responsibility to fix broken builds.
from fuzzbench.
Related Issues (20)
- Running several experiments at one time HOT 1
- freetype_ftfuzzer oss-fuzz benchmark uses outdated commit
- llvm-cov show command report warning: <N> functions have mismatched data
- Allow setting `merge_with_nonprivate` in `run_experiment.py` command line params
- PyQt5 Issue HOT 2
- unknown flag: --gpus all when executing run_experiment.py
- No snapshot data when running local experiment HOT 6
- Average rank scoring
- Retire benchmarks that dont show differences HOT 1
- edges_found and edges_covered mismatch
- [docs] Outdated documentation about fuzzer configs
- Encounter problems when adding a new fuzzer HOT 3
- Why the report-data only contains the code covrage data? HOT 2
- Update `Python` dependencies to update deprecated packages and resolve conflicts HOT 7
- Some error about "run the local bug experiment". HOT 4
- Cannot pull gcr.io/fuzzbench/base-image docker image from Artifact Registry HOT 1
- local experiment issue : Local uncommitted changes found, exiting - raise ValidationError('Local uncommitted changes found, exiting.') HOT 1
- Show data and report links in `experiment` CI
- Fix/Remove `aspell_aspell_fuzzer_e8eb74` from tag `SBFT'23` HOT 6
- Is it possible to migrate a java or python benchmark from OSS-Fuzz to fuzzbench? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fuzzbench.