• Rémi Denis-Courmont's avatar
    vlc-demux-run: add demux fuzzing helper · e15a5753
    Rémi Denis-Courmont authored
    This includes support for statically linked plugins. It vastly increases
    the test iteration speed, which is critical for fuzz testing.
    Furthermore, it is necessary for coverage-driven fuzz testing to work at
    all.
    
    This also provides a (manually compiled only) back-end for LLVM's
    LibFuzzer using mostly the same code.
    
    1) Debugging, regression testing or unguided fuzzing:
      - Make a normal build (debug and sanitization recommended).
      - Execute: "test/vlc-demux-run [demux name] <file path>"
    
    2) American Fuzzy Lop run:
      - Make a *static* build with AFL as the toolchain.
      - (Where applicable) perform adequate religious luck granting
        offerings or other rites.
      - Run AFL with test/vlc-demux-run as the fuzzed executable.
    
    3) LibFuzzer:
      - Make a preferrably static build with Clang as the toolchain.
      - Manually build test/vlc-demux-libfuzzer.
      - Run the executable with the LibFuzzer command line parameters syntax.
    e15a5753
vlc-demux-run.c 1.71 KB