X Tutup
Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Fuzzing test

Do fuzzing test for tinyobjloader

Supported API

  • ParseFromString

Requirements

  • clang with fuzzer support(-fsanitize=fuzzer. at least clang 8.0 should work)

Setup

Ubuntu 18.04

$ sudo apt install clang++-8
$ sudo apt install libfuzzer-8-dev

Optionally, if you didn't set update-alternatives you can set clang++ to point to clang++8

$ sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-8 10
$ sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-8 10

How to compile

Fuzz target is compiled with the rest of the project when environment variable LIB_FUZZING_ENGINE is defined when running cmake With clang, you can compile with

$ export LIB_FUZZING_ENGINE=-fsanitize=fuzzer
$ mkdir build && cd build
$ cmake .. -DBUILD_SHARED_LIBS=OFF
$ make -j $(nproc)

How to run

Increase memory limit. e.g. -rss_limit_mb=2000 cf libfuzzer.info for all options

$ ./fuzz_ParseFromString -rss_limit_mb=2000

Regression tests

See regression_runner/

X Tutup