aboutsummaryrefslogtreecommitdiff
path: root/test/dumb_fuzzer.sh
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2021-09-20 00:28:44 +0200
committerToni Uhlig <matzeton@googlemail.com>2021-09-20 00:28:44 +0200
commit992d3a207d0a6cf4faeb835ea6a37ff33df9c87d (patch)
tree595c8eeca098a2cacc17bee8abc75a6a47165c1f /test/dumb_fuzzer.sh
parent7829bfe4e6ae433120b2f4bc95d8ab5018f67e90 (diff)
dumb fuzzer: randpkt vs nDPId-test
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'test/dumb_fuzzer.sh')
-rwxr-xr-xtest/dumb_fuzzer.sh54
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'