66 lines
1.7 KiB
Bash
66 lines
1.7 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
testdir=$(readlink -f $(dirname $0))
|
||
|
rootdir=$(readlink -f $testdir/../..)
|
||
|
|
||
|
source "$rootdir/test/common/autotest_common.sh"
|
||
|
|
||
|
# The term transport is used a bit loosely for vhost tests.
|
||
|
allowed_nvme_transports=("rdma" "tcp")
|
||
|
allowed_vhost_transports=("scsi" "blk" "all")
|
||
|
bad_transport=true
|
||
|
config_params="--enable-asan --enable-ubsan --enable-debug --without-isal"
|
||
|
|
||
|
# This argument is used in addition to the test arguments in autotest_common.sh
|
||
|
for i in "$@"; do
|
||
|
case "$i" in
|
||
|
--module=*)
|
||
|
TEST_MODULE="${i#*=}"
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
timing_enter autofuzz
|
||
|
if [ "$TEST_MODULE" == "nvmf" ]; then
|
||
|
allowed_transports=( "${allowed_nvme_transports[@]}" )
|
||
|
if [ $TEST_TRANSPORT == "rdma" ]; then
|
||
|
config_params="$config_params --with-rdma"
|
||
|
fi
|
||
|
elif [ "$TEST_MODULE" == "vhost" ]; then
|
||
|
allowed_transports=( "${allowed_vhost_transports[@]}" )
|
||
|
config_params="$config_params --with-vhost --with-virtio"
|
||
|
else
|
||
|
echo "Invalid module specified. Please specify either nvmf or vhost."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
for transport in ${allowed_transports[@]}; do
|
||
|
if [ $transport == "$TEST_TRANSPORT" ]; then
|
||
|
bad_transport=false
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
if $bad_transport; then
|
||
|
echo "invalid transport. Please supply one of the following for module: $TEST_MODULE."
|
||
|
echo "${allowed_transports[@]}"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
timing_enter make
|
||
|
cd $rootdir
|
||
|
./configure $config_params
|
||
|
$MAKE $MAKEFLAGS
|
||
|
timing_exit make
|
||
|
|
||
|
# supply --iso to each test module so that it can run setup.sh.
|
||
|
timing_enter fuzz_module
|
||
|
if [ "$TEST_MODULE" == "nvmf" ]; then
|
||
|
sudo $testdir/autofuzz_nvmf.sh --iso --transport=$TEST_TRANSPORT
|
||
|
fi
|
||
|
|
||
|
if [ "$TEST_MODULE" == "vhost" ]; then
|
||
|
sudo $testdir/autofuzz_vhost.sh --iso --transport=$TEST_TRANSPORT
|
||
|
fi
|
||
|
timing_exit fuzz_module
|
||
|
timing_exit autofuzz
|