Fuzz tests for Arrow/Parquet
- Dominant language
- Rust
- Stars
- 3.6k
- Forks
- 1.3k
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 167
Description
I'm generally new to the code base but it looks like existing fuzz tests might be generating random data and making sure it can be read back, but we don't have any fuzz tests for malformed data. I think in the context of Rust the goal would be to avoid panics?
If this is accurate, I'd propose creating fuzz tests that check succeed as long as there is no panic. A beginning corpus [arrow-testing repo](https://github.com/apache/arrow-testing/tree/master/data/parquet/fuzzing) [2](https://github.com/apache/arrow-testing/tree/master/data/arrow-ipc-stream) for each file type.
A second step would be integrate with oss-fuzz ([Arrow C++](https://github.com/google/oss-fuzz/blob/master/projects/arrow/build.sh) already does so).
If this is of interest and i'm correct this isn't already done, I can try to see if I can prototype something.
Contributor guide
Research direction
First inspect the repository's existing fuzz tests to confirm what inputs and failure conditions they cover. Review the arrow-testing corpora at data/parquet/fuzzing and data/arrow-ipc-stream, then compare the oss-fuzz Arrow C++ integration in projects/arrow/build.sh. Done means malformed Arrow and Parquet inputs are exercised without panics, with any OSS-Fuzz integration scope established.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- data, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100