diff --git a/src/sso/test/fuzz.sh b/src/sso/test/fuzz.sh index 745028efabd157ccb8bd4c4f178be4ddc78951c0..779896dfe694b050d65dcbda64a3142a4e6f75be 100755 --- a/src/sso/test/fuzz.sh +++ b/src/sso/test/fuzz.sh @@ -1,10 +1,24 @@ #!/bin/sh +# +# Compile libsso with libfuzz, using a specific fuzz entry point. +# Useful libfuzz args include -jobs=N -workers=N for parallelization. +# +# Note: on Debian this probably requires CC=clang-11. +# dir=$(dirname "$0") dir=${dir:-.} +top_srcdir=${dir}/.. + +fuzz_src="$1" +if [ -z "$fuzz_src" ]; then + echo "Usage: $0 <target_source_file>" >&2 + exit 2 +fi +shift set -e -make -C ${dir}/.. clean -make -C ${dir}/.. CC=${CC:-clang} CFLAGS='-g -fsanitize=address,fuzzer-no-link' -${CC:-clang} -I${dir}/.. -g -fsanitize=address,fuzzer -o fuzz "$@" -L${dir}/../.libs -lsso -LD_LIBRARY_PATH=${dir}/../.libs ./fuzz +make -C ${top_srcdir} clean +make -C ${top_srcdir} CC=${CC:-clang} CFLAGS='-g -fsanitize=address,fuzzer-no-link' +${CC:-clang} -I${top_srcdir} -g -fsanitize=address,fuzzer -o fuzz "${fuzz_src}" -L${top_srcdir}/.libs -lsso +LD_LIBRARY_PATH=${top_srcdir}/.libs ./fuzz "$@"