Mercurial > minori
comparison dep/fmt/test/fuzzing/README.md @ 343:1faa72660932
*: transfer back to cmake from autotools
autotools just made lots of things more complicated than
they should have and many things broke (i.e. translations)
| author | Paper <paper@paper.us.eu.org> |
|---|---|
| date | Thu, 20 Jun 2024 05:56:06 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 342:adb79bdde329 | 343:1faa72660932 |
|---|---|
| 1 # Running the fuzzers locally | |
| 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" | |
| 14 cmake .. -DFMT_SAFE_DURATION_CAST=On -DFMT_FUZZ=On -DFMT_FUZZ_LINKMAIN=Off -DFMT_FUZZ_LDFLAGS="-fsanitize=fuzzer" | |
| 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 | |
| 24 bin/fuzzer_chrono_duration out_chrono | |
| 25 ``` |
