2018-12-11 21:24:46 +01:00
|
|
|
#!/usr/bin/env bash
|
2018-12-11 23:44:01 +01:00
|
|
|
|
|
|
|
|
usage() {
|
|
|
|
|
echo "Run makefile until termination condition"
|
|
|
|
|
echo "usage: int_loop.sh [args]"
|
|
|
|
|
echo "--check-args <args> int_loop_check.py args"
|
2018-12-12 01:17:37 +01:00
|
|
|
# intpips ingests all segbits files at once and does a push at the end
|
|
|
|
|
# other loopers do a push every pass
|
|
|
|
|
echo "--pushdb make pushdb after successful make database"
|
2018-12-11 23:44:01 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
check_args=
|
2018-12-12 01:17:37 +01:00
|
|
|
pushdb=false
|
2018-12-11 23:44:01 +01:00
|
|
|
while [[ $# -gt 0 ]]; do
|
|
|
|
|
case "$1" in
|
|
|
|
|
--check-args)
|
|
|
|
|
check_args=$2
|
|
|
|
|
shift
|
|
|
|
|
shift
|
|
|
|
|
;;
|
2018-12-12 01:17:37 +01:00
|
|
|
--pushdb)
|
|
|
|
|
pushdb=true
|
|
|
|
|
shift
|
|
|
|
|
;;
|
2018-12-11 23:44:01 +01:00
|
|
|
-h|--help)
|
|
|
|
|
usage
|
|
|
|
|
exit 0
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
echo "Unrecognized argument"
|
|
|
|
|
usage
|
|
|
|
|
exit 1
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
|
2018-12-11 21:24:46 +01:00
|
|
|
set -ex
|
|
|
|
|
MAKE=${MAKE:-make}
|
|
|
|
|
MAKEFLAGS=${MAKEFLAGS:-}
|
|
|
|
|
echo "make: ${MAKE} ${MAKEFLAGS}"
|
|
|
|
|
echo $MAKE
|
|
|
|
|
mkdir -p todo;
|
2018-12-11 23:11:55 +01:00
|
|
|
while true; do
|
2018-12-11 21:24:46 +01:00
|
|
|
${MAKE} ${MAKEFLAGS} cleanprj;
|
|
|
|
|
${MAKE} ${MAKEFLAGS} build/todo.txt || exit 1;
|
2018-12-11 23:44:01 +01:00
|
|
|
if python3 ${XRAY_DIR}/fuzzers/int_loop_check.py $check_args ; then
|
2018-12-11 23:11:55 +01:00
|
|
|
break
|
|
|
|
|
fi
|
2018-12-12 00:12:21 +01:00
|
|
|
if [ -f build/timeout ] ; then
|
|
|
|
|
echo "ERROR: timeout"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
2018-12-11 23:11:55 +01:00
|
|
|
|
2018-12-11 21:24:46 +01:00
|
|
|
i=$((i+1));
|
|
|
|
|
cp build/todo.txt todo/${i}.txt;
|
|
|
|
|
cp build/todo_all.txt todo/${i}_all.txt;
|
2018-12-12 01:35:03 +01:00
|
|
|
if ${MAKE} ${MAKEFLAGS} N=$i database; then
|
2018-12-12 01:17:37 +01:00
|
|
|
if $pushdb ; then
|
|
|
|
|
${MAKE} ${MAKEFLAGS} pushdb;
|
|
|
|
|
fi
|
2018-12-11 21:24:46 +01:00
|
|
|
fi;
|
|
|
|
|
if [ "$QUICK" = "Y" ] ; then
|
|
|
|
|
break;
|
|
|
|
|
fi
|
|
|
|
|
done;
|
|
|
|
|
exit 0
|
|
|
|
|
|