blob: 3ab5a16346cac402bdd2bb1f5ba651f83d480504 [file] [log] [blame] [view]
Hasnain Lakhani4afb7d92025-08-25 16:09:41 -07001# Swift Fuzzing README
2
3The Swift Thrift implementation uses LLVM's libFuzzer for fuzzing.
4
5## Fuzzer Structure
6
7We currently have several fuzz targets that test different aspects of the Thrift implementation:
8
9* FuzzParseBinary -- Tries to deserialize the code-generated FuzzTest struct from arbitrary input data using the binary protocol
10* FuzzRoundtripBinary -- Tries to deserialize a FuzzTest struct and then tests roundtrip serialization/deserialization with the binary protocol
11* FuzzParseCompact
12* FuzzRoundtripCompact
13* FuzzParseJSON
14* FuzzRoundtripJSON
15
16The fuzzers need a dummy main() to ensure that compilation in non-fuzzer modes doesn't regress.