zhuizhu 68df762cb0 初始化项目 10 mēneši atpakaļ
..
.gitignore 68df762cb0 初始化项目 10 mēneši atpakaļ
CMakeLists.txt 68df762cb0 初始化项目 10 mēneši atpakaļ
README.md 68df762cb0 初始化项目 10 mēneši atpakaļ
build.sh 68df762cb0 初始化项目 10 mēneši atpakaļ
chrono-duration.cc 68df762cb0 初始化项目 10 mēneši atpakaļ
chrono-timepoint.cc 68df762cb0 初始化项目 10 mēneši atpakaļ
float.cc 68df762cb0 初始化项目 10 mēneši atpakaļ
fuzzer-common.h 68df762cb0 初始化项目 10 mēneši atpakaļ
main.cc 68df762cb0 初始化项目 10 mēneši atpakaļ
named-arg.cc 68df762cb0 初始化项目 10 mēneši atpakaļ
one-arg.cc 68df762cb0 初始化项目 10 mēneši atpakaļ
two-args.cc 68df762cb0 初始化项目 10 mēneši atpakaļ

README.md

Running the fuzzers locally

There is a helper script to build the fuzzers, which has only been tested on Debian and Ubuntu linux so far. There should be no problems fuzzing on Windows (using clang>=8) or on Mac, but the script will probably not work out of the box.

Something along

mkdir build
cd build
export CXX=clang++
export CXXFLAGS="-fsanitize=fuzzer-no-link -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION= -g"
cmake .. -DFMT_SAFE_DURATION_CAST=On -DFMT_FUZZ=On -DFMT_FUZZ_LINKMAIN=Off -DFMT_FUZZ_LDFLAGS="-fsanitize=fuzzer"
cmake --build .

should work to build the fuzzers for all platforms which clang supports.

Execute a fuzzer with for instance

cd build
export UBSAN_OPTIONS=halt_on_error=1
mkdir out_chrono
bin/fuzzer_chrono_duration out_chrono