]>
Commit | Line | Data |
---|---|---|
20effc67 | 1 | # Running the fuzzers locally |
f67539c2 TL |
2 | |
3 | There is a [helper script](build.sh) to build the fuzzers, which has only been | |
4 | tested on Debian and Ubuntu linux so far. There should be no problems fuzzing on | |
5 | Windows (using clang>=8) or on Mac, but the script will probably not work out of | |
6 | the box. | |
7 | ||
8 | Something along | |
9 | ```sh | |
10 | mkdir build | |
11 | cd build | |
12 | export CXX=clang++ | |
13 | export CXXFLAGS="-fsanitize=fuzzer-no-link -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION= -g" | |
20effc67 | 14 | cmake .. -DFMT_SAFE_DURATION_CAST=On -DFMT_FUZZ=On -DFMT_FUZZ_LINKMAIN=Off -DFMT_FUZZ_LDFLAGS="-fsanitize=fuzzer" |
f67539c2 TL |
15 | cmake --build . |
16 | ``` | |
17 | should work to build the fuzzers for all platforms which clang supports. | |
18 | ||
19 | Execute a fuzzer with for instance | |
20 | ```sh | |
21 | cd build | |
22 | export UBSAN_OPTIONS=halt_on_error=1 | |
23 | mkdir out_chrono | |
20effc67 | 24 | bin/fuzzer_chrono_duration out_chrono |
f67539c2 | 25 | ``` |