FRET-LibAFL/scripts/executions-check.sh
Dominik Maier 20f8cb10eb
Revert "Automatically add the comment about executions when a new PR triggers (#1270)" (#1271)
This reverts commit d2e4b9f206307db0898caac707c0d2687079bfb1.
2023-05-17 02:48:15 +02:00

57 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
install_libpng() {
cd ./fuzzers/libfuzzer_libpng && wget https://deac-fra.dl.sourceforge.net/project/libpng/libpng16/1.6.37/libpng-1.6.37.tar.xz
tar -xvf libpng-1.6.37.tar.xz || echo "Failed to download libpng"
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes && cd ..
}
build_libpng(){
cargo build --release || echo "ERROR: Failed to build libfuzzer_libpng"
cd libpng-1.6.37 && make CC="$(pwd)/../target/release/libafl_cc" CXX="$(pwd)/../target/release/ libafl_cxx" -j "$(nproc)" && cd ..
}
git_checkout(){
git reset --hard HEAD^
}
build_run_fuzzer(){
./target/release/libafl_cxx ./harness.cc libpng-1.6.37/.libs/libpng16.a -I libpng-1.6.37/ -o fuzzer_libpng -lz -lm || exit 2
./fuzzer_libpng > log.txt &
# wait that fuzzer_libpng become the broker
sleep 1
timeout 5m ./fuzzer_libpng > /dev/null 2>&1 &
while true; do
if grep -q "Broker" log.txt ; then
pkill -9 "fuzzer_libpng"
executions=$(grep -m 1 "Broker" log.txt | awk '{print $14}')
rm -rf ./libafl_unix_shmem_server
echo "${executions%,}"
break
fi
done
}
main(){
install_libpng
build_libpng
echo "start to run the new fuzzer"
new_executions=$(build_run_fuzzer)
git_checkout
build_libpng
echo "start to run the last fuzzer"
last_executions=$(build_run_fuzzer)
echo "the execution count of the new fuzzer is $new_executions"
echo "the execution count of the last fuzzer is $last_executions"
}
main