mirror of
https://github.com/OldUnreal/libxmp.git
synced 2026-04-02 21:37:43 -07:00
Based on Lionel Debroux's initial libFuzzer frontend from #302, with the following modifications: * Added test-dev/Makefile.in targets to generate a set of ASan, MSan, and UBSan fuzzers. * Added a convenience script for running the fuzzers. Co-authored-by: debrouxl <lionel_debroux@yahoo.fr>
57 lines
1.2 KiB
Bash
Executable File
57 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
[ ! -f "libxmp_fuzz_asan" ] && { echo "Couldn't find libxmp_fuzz_asan. Run 'make fuzzers'!"; exit 1; }
|
|
|
|
#export LD_LIBRARY_PATH=".fuzzer"
|
|
mkdir -p "ARTIFACTS"
|
|
|
|
DEFAULT_PARAMETERS="CORPUS data/ openmpt/ -artifact_prefix=ARTIFACTS/ -timeout=30"
|
|
|
|
COMMAND="$1"
|
|
shift
|
|
|
|
case "$COMMAND" in
|
|
#
|
|
# Merge corpus.
|
|
#
|
|
merge)
|
|
NEW_CORPUS="NEW_CORPUS"
|
|
OLD_CORPUS="CORPUS"
|
|
[ -n "$1" ] && { NEW_CORPUS="$1"; }
|
|
[ -n "$2" ] && { OLD_CORPUS="$2"; }
|
|
mkdir -p "$NEW_CORPUS"
|
|
./libxmp_fuzz_asan -merge=1 "$NEW_CORPUS" "$OLD_CORPUS"
|
|
./libxmp_fuzz_msan -merge=1 "$NEW_CORPUS" "$OLD_CORPUS"
|
|
./libxmp_fuzz_ubsan -merge=1 "$NEW_CORPUS" "$OLD_CORPUS"
|
|
;;
|
|
|
|
#
|
|
# Fuzz with given parameters.
|
|
#
|
|
asanx)
|
|
./libxmp_fuzz_asan -artifact_prefix="ARTIFACTS/" "$@"
|
|
;;
|
|
msanx)
|
|
./libxmp_fuzz_msan -artifact_prefix="ARTIFACTS/" "$@"
|
|
;;
|
|
ubsanx)
|
|
./libxmp_fuzz_ubsan -artifact_prefix="ARTIFACTS/" "$@"
|
|
;;
|
|
|
|
#
|
|
# Fuzz with default parameters.
|
|
#
|
|
asan)
|
|
mkdir -p "CORPUS"
|
|
./libxmp_fuzz_asan $DEFAULT_PARAMETERS "$@"
|
|
;;
|
|
msan)
|
|
mkdir -p "CORPUS"
|
|
./libxmp_fuzz_msan $DEFAULT_PARAMETERS "$@"
|
|
;;
|
|
ubsan)
|
|
mkdir -p "CORPUS"
|
|
./libxmp_fuzz_ubsan $DEFAULT_PARAMETERS "$@"
|
|
;;
|
|
esac
|