Commit f19d8d42b5bb77dbdd2d0ab1444813f2c66202c0

Authored by Wiebe Cazemier
1 parent 9a9cd83b

Add fuzz-helper.sh

Showing 1 changed file with 56 additions and 0 deletions
fuzz-helper.sh 0 → 100755
  1 +#!/bin/bash
  2 +#
  3 +# Quick 'n dirty Script to build and run FlashMQ with American Fuzzy Lop.
  4 +
  5 +thisfile=$(readlink --canonicalize "$0")
  6 +thisdir=$(dirname "$thisfile")
  7 +
  8 +if [[ -z "$AFL_ROOT" ]]; then
  9 + echo "ERROR: set AFL_ROOT environment variable"
  10 + exit 1
  11 +fi
  12 +
  13 +if [[ -z "$FLASHMQ_SRC" ]]; then
  14 + echo "ERROR: set FLASHMQ_SRC environment variable"
  15 + exit 1
  16 +fi
  17 +
  18 +set -u
  19 +
  20 +if [[ ! -d "$FLASHMQ_SRC/fuzztests" ]]; then
  21 + echo "Folder 'fuzztests' not found in '$FLASHMQ_SRC'"
  22 + exit 1
  23 +fi
  24 +
  25 +if [[ "$1" == "build" ]]; then
  26 +
  27 + export CC="$AFL_ROOT/afl-gcc"
  28 + export CXX="$AFL_ROOT/afl-g++"
  29 +
  30 + mkdir "fuzzbuild"
  31 + cd "fuzzbuild" || exit 1
  32 +
  33 + "$thisdir/build.sh" Debug
  34 +
  35 + if [[ -f "./FlashMQBuildDebug/FlashMQ" ]]; then
  36 + cp -v "./FlashMQBuildDebug/FlashMQ" ..
  37 + fi
  38 +fi
  39 +
  40 +if [[ "$1" == "run" ]]; then
  41 + INPUTDIR="$FLASHMQ_SRC/fuzztests"
  42 + OUTPUTDIR="fuzzoutput"
  43 + BINARY="./FlashMQ"
  44 +
  45 + if [[ ! -d "$OUTPUTDIR" ]]; then
  46 + mkdir "$OUTPUTDIR"
  47 + fi
  48 +
  49 + tmux new-session -s flashmqfuzz -d "'$AFL_ROOT/afl-fuzz' -m 200 -M primary -i '$INPUTDIR' -o '$OUTPUTDIR' '$BINARY' --fuzz-file '@@'; sleep 5"
  50 + tmux split-window -t flashmqfuzz -v "'$AFL_ROOT/afl-fuzz' -m 200 -S secondary01 -i '$INPUTDIR' -o '$OUTPUTDIR' '$BINARY' --fuzz-file '@@'; sleep 5"
  51 + tmux split-window -t flashmqfuzz -h "'$AFL_ROOT/afl-fuzz' -m 200 -S secondary02 -i '$INPUTDIR' -o '$OUTPUTDIR' '$BINARY' --fuzz-file '@@'; sleep 5"
  52 + tmux select-pane -t flashmqfuzz -U
  53 + tmux split-window -t flashmqfuzz -h "'$AFL_ROOT/afl-fuzz' -m 200 -S secondary03 -i '$INPUTDIR' -o '$OUTPUTDIR' '$BINARY' --fuzz-file '@@'; sleep 5"
  54 +
  55 + tmux attach-session -d -t flashmqfuzz
  56 +fi