FRET-LibAFL/fuzzers/FRET/benchmark/build_all_demos.sh
2025-05-15 14:03:28 +00:00

126 lines
3.7 KiB
Bash
Executable File

#!/usr/bin/env bash
export INSERT_WC=${2:-0}
export BUILD_DIR=${1:-build}
mkdir -p $BUILD_DIR
build () {
make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC $1=1 IGNORE_INTERRUPTS=$IGNORE_INTERRUPTS IGNORE_BYTES=$IGNORE_BYTES IGNORE_INTERNAL_STATE=$IGNORE_INTERNAL_STATE INSERT_WC=$INSERT_WC $EXTRA_MAKE_ARGS
cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf $BUILD_DIR/$(echo $1 | cut -d_ -f1 | tr '[:upper:]' '[:lower:]')$EXTRA_NAME_SUFFIX$2.elf
}
mkdir -p build
# Sequential inputs!
export PARTITION_INPUT=0
unset SPECIAL_CFLAGS
# Baseline
## Don't keep rng states
export IGNORE_INTERNAL_STATE=1
### Only bytes
export IGNORE_INTERRUPTS=1 IGNORE_BYTES=0 SUFFIX="_seq_bytes"
build WATERS_DEMO $SUFFIX
build RELEASE_DEMO $SUFFIX
build COPTER_DEMO $SUFFIX
### Only interrupts
export IGNORE_INTERRUPTS=0 IGNORE_BYTES=1 SUFFIX="_seq_int"
build WATERS_DEMO $SUFFIX
build RELEASE_DEMO $SUFFIX
build COPTER_DEMO $SUFFIX
### Full
export IGNORE_INTERRUPTS=0 IGNORE_BYTES=0 SUFFIX="_seq_full"
build WATERS_DEMO $SUFFIX
build RELEASE_DEMO $SUFFIX
build COPTER_DEMO $SUFFIX
build POLYCOPTER_DEMO $SUFFIX
# Stateful -> presumably bad for us
## keep rng states
export IGNORE_INTERNAL_STATE=0
### Full
export IGNORE_INTERRUPTS=0 IGNORE_BYTES=0 SUFFIX="_seq_stateful_full"
build WATERS_DEMO $SUFFIX
build RELEASE_DEMO $SUFFIX
build COPTER_DEMO $SUFFIX
# Paritioned inputs
export PARTITION_INPUT=1
# Alternative input scheme
## Don't keep rng states
export IGNORE_INTERNAL_STATE=1
### Only bytes
export IGNORE_INTERRUPTS=1 IGNORE_BYTES=0 SUFFIX="_par_bytes"
build WATERS_DEMO $SUFFIX
build RELEASE_DEMO $SUFFIX
build COPTER_DEMO $SUFFIX
### Only interrupts
export IGNORE_INTERRUPTS=0 IGNORE_BYTES=1 SUFFIX="_par_int"
build WATERS_DEMO $SUFFIX
build RELEASE_DEMO $SUFFIX
build COPTER_DEMO $SUFFIX
### Full
export IGNORE_INTERRUPTS=0 IGNORE_BYTES=0 SUFFIX="_par_full"
build WATERS_DEMO $SUFFIX
build RELEASE_DEMO $SUFFIX
build COPTER_DEMO $SUFFIX
build POLYCOPTER_DEMO $SUFFIX
# Stateful -> presumably bad for us
## keep rng states
export IGNORE_INTERNAL_STATE=0
### Full
export IGNORE_INTERRUPTS=0 IGNORE_BYTES=0 SUFFIX="_par_stateful_full"
build WATERS_DEMO $SUFFIX
build RELEASE_DEMO $SUFFIX
build COPTER_DEMO $SUFFIX
# Stateful -> presumably bad for us
## keep rng states
export IGNORE_INTERNAL_STATE=0
export PARTITION_INPUT=0
export IGNORE_INTERRUPTS=0 IGNORE_BYTES=0 SUFFIX="_seq_stateful_full"
build POLYCOPTER_DEMO $SUFFIX
# stateless + dataflow
export PARTITION_INPUT=0
export IGNORE_INTERNAL_STATE=1
export IGNORE_INTERRUPTS=0 IGNORE_BYTES=0 SUFFIX="_seq_dataflow_full"
export SPECIAL_CFLAGS="-DCOPTER_DATAFLOW=1"
build POLYCOPTER_DEMO $SUFFIX
unset SPECIAL_CFLAGS
export PARTITION_INPUT=0
export IGNORE_INTERNAL_STATE=1
export IGNORE_INTERRUPTS=1 IGNORE_BYTES=0 SUFFIX="_seq_dataflow_bytes"
export SPECIAL_CFLAGS="-DCOPTER_DATAFLOW=1"
build POLYCOPTER_DEMO $SUFFIX
unset SPECIAL_CFLAGS
# stateless + dataflow
export PARTITION_INPUT=1
export IGNORE_INTERNAL_STATE=1
export IGNORE_INTERRUPTS=0 IGNORE_BYTES=0 SUFFIX="_par_dataflow_full"
export SPECIAL_CFLAGS="-DCOPTER_DATAFLOW=1"
build POLYCOPTER_DEMO $SUFFIX
unset SPECIAL_CFLAGS
# special waters with no synchronization
export PARTITION_INPUT=0
export IGNORE_INTERNAL_STATE=1
export IGNORE_INTERRUPTS=0 IGNORE_BYTES=0 SUFFIX="_seq_unsync_full"
export SPECIAL_CFLAGS="-DWATERS_UNSYNCHRONIZED=1"
build WATERS_DEMO $SUFFIX
unset SPECIAL_CFLAGS
# special generated waters 2015
export PARTITION_INPUT=0
export IGNORE_INTERNAL_STATE=1
export IGNORE_INTERRUPTS=0 IGNORE_BYTES=0 SUFFIX="_par_bytes"
export EXTRA_MAKE_ARGS="SEED=1"
export EXTRA_NAME_SUFFIX="1"
build WATERSGEN_DEMO $SUFFIX
unset EXTRA_MAKE_ARGS
unset EXTRA_NAME_SUFFIX