Skip to content

[Fuzzing] Add Jazzer-based fuzzing suite with 145x coverage increase#1149

Open
vishalcoc44 wants to merge 3 commits intoamazon-ion:masterfrom
vishalcoc44:fuzzing
Open

[Fuzzing] Add Jazzer-based fuzzing suite with 145x coverage increase#1149
vishalcoc44 wants to merge 3 commits intoamazon-ion:masterfrom
vishalcoc44:fuzzing

Conversation

@vishalcoc44
Copy link

Introducing a fuzzing suite, we replace the legacy integration with a better master fuzzer,
and a native Gradle-based execution profile.

Coverage increased :

  • Increased code coverage from the baseline 0.18% to ~26.1% (a 145x increase).
  • Reached 6,008+ exploration points across the library's core parsing and serialization paths.

Bug Discovery: Identified a persistent java.lang.AssertionError in IonReaderTextRawTokensX.skipOverRadix during text parsing.
Details :

  1. Master Fuzzer (IonAllFeaturesFuzzer)
    This fuzzer alternates between strategies dynamically to have more reach--

Recursive Parsing: Deep exploration of nested Lists, Sexps, and Structs.
Round-Trip Validation: Ensures consistency when converting between Binary and Text formats.
DOM Mutation: Fuzzes the IonValue hierarchy through random injections, clones, and removals.

  1. Build Integration
    Added a native -Pfuzz profile to build.gradle.kts.
    Isolated dependencies (Jazzer, JUnit5) to ensure zero impact on standard production builds.
    Enabled seamless local execution for developers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant