diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2021-09-20 00:28:44 +0200 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2021-09-20 00:28:44 +0200 |
commit | 992d3a207d0a6cf4faeb835ea6a37ff33df9c87d (patch) | |
tree | 595c8eeca098a2cacc17bee8abc75a6a47165c1f /test/dumb_fuzzer.sh | |
parent | 7829bfe4e6ae433120b2f4bc95d8ab5018f67e90 (diff) |
dumb fuzzer: randpkt vs nDPId-test
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'test/dumb_fuzzer.sh')
-rwxr-xr-x | test/dumb_fuzzer.sh | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/test/dumb_fuzzer.sh b/test/dumb_fuzzer.sh new file mode 100755 index 000000000..61865b6c1 --- /dev/null +++ b/test/dumb_fuzzer.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +set -e + +MYDIR="$(realpath "$(dirname ${0})")" +nDPId_test_EXEC="$(realpath "${1:-"${MYDIR}/../nDPId-test"}")" +PROTOCOL="${2:-tcp}" +MAX_RUNS="${3:-100}" +MAX_COUNT="${4:-10000}" + +function usage() +{ +cat <<EOF +usage: ${0} [path-to-nDPId-test-exec] [protocol] [max-runs] [max-count] + + path-to-nDPId-test-exec defaults to ${nDPId_test_EXEC} + protocol defaults to ${PROTOCOL} + max-runs defaults to ${MAX_RUNS} + max-count defaults to ${MAX_COUNT} +EOF +return 0 +} + +if [ $# -eq 0 ]; then + usage + exit 1 +elif [ ! -x "${nDPId_test_EXEC}" ]; then + printf '%s\n' "Required nDPId-test executable does not exist; ${nDPId_test_EXEC}" + exit 1 +fi + +function sighandler() +{ + printf '%s\n' ' Received shutdown SIGNAL, bye' >&2 + rm -f "/tmp/randpkt_$$.pcap" + $(which pkill) -P $$ + wait + exit 2 +} +trap sighandler SIGINT SIGTERM + +test -z "$(which pkill)" && { printf '%s\n' 'pkill not found'; exit 1; } +test -z "$(which randpkt)" && { printf '%s\n' 'randpkt not found'; exit 1; } + +while (( ${MAX_RUNS} > 0 )); do + printf '.' + test $((${MAX_RUNS} % 10)) -ne 0 || printf '%s' "${MAX_RUNS}" + $(which randpkt) -c "${MAX_COUNT}" -t "${PROTOCOL}" "/tmp/randpkt_$$.pcap" + ${nDPId_test_EXEC} "/tmp/randpkt_$$.pcap" >/dev/null + MAX_RUNS=$((${MAX_RUNS} - 1)) +done + +rm -f "/tmp/randpkt_$$.pcap" +printf '\n' |