2019-07-16 07:34:35 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
testdir=$(readlink -f $(dirname $0))
|
|
|
|
rootdir=$(readlink -f $testdir/../..)
|
|
|
|
|
|
|
|
source "$rootdir/test/common/autotest_common.sh"
|
|
|
|
|
2019-07-22 04:17:03 +00:00
|
|
|
TEST_TIMEOUT=1200
|
|
|
|
|
2019-07-16 07:34:35 +00:00
|
|
|
# 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"
|
|
|
|
|
2019-07-22 04:17:03 +00:00
|
|
|
# These arguments are used in addition to the test arguments in autotest_common.sh
|
2019-07-16 07:34:35 +00:00
|
|
|
for i in "$@"; do
|
|
|
|
case "$i" in
|
|
|
|
--module=*)
|
|
|
|
TEST_MODULE="${i#*=}"
|
|
|
|
;;
|
2019-07-22 04:17:03 +00:00
|
|
|
--timeout=*)
|
|
|
|
TEST_TIMEOUT="${i#*=}"
|
|
|
|
;;
|
2019-07-16 07:34:35 +00:00
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
timing_enter autofuzz
|
|
|
|
if [ "$TEST_MODULE" == "nvmf" ]; then
|
2020-05-07 11:27:06 +00:00
|
|
|
allowed_transports=("${allowed_nvme_transports[@]}")
|
2019-07-16 07:34:35 +00:00
|
|
|
if [ $TEST_TRANSPORT == "rdma" ]; then
|
|
|
|
config_params="$config_params --with-rdma"
|
|
|
|
fi
|
|
|
|
elif [ "$TEST_MODULE" == "vhost" ]; then
|
2020-05-07 11:27:06 +00:00
|
|
|
allowed_transports=("${allowed_vhost_transports[@]}")
|
2019-07-16 07:34:35 +00:00
|
|
|
config_params="$config_params --with-vhost --with-virtio"
|
|
|
|
else
|
|
|
|
echo "Invalid module specified. Please specify either nvmf or vhost."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2019-11-25 11:21:54 +00:00
|
|
|
for transport in "${allowed_transports[@]}"; do
|
2019-07-16 07:34:35 +00:00
|
|
|
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
|
2019-07-22 04:17:03 +00:00
|
|
|
sudo $testdir/autofuzz_nvmf.sh --iso --transport=$TEST_TRANSPORT --timeout=$TEST_TIMEOUT
|
2019-07-16 07:34:35 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$TEST_MODULE" == "vhost" ]; then
|
2019-07-22 04:17:03 +00:00
|
|
|
sudo $testdir/autofuzz_vhost.sh --iso --transport=$TEST_TRANSPORT --timeout=$TEST_TIMEOUT
|
2019-07-16 07:34:35 +00:00
|
|
|
fi
|
2020-03-03 02:02:09 +00:00
|
|
|
|
|
|
|
if [ "$TEST_MODULE" == "iscsi" ]; then
|
|
|
|
sudo $testdir/autofuzz_iscsi.sh --iso --transport=$TEST_TRANSPORT --timeout=$TEST_TIMEOUT
|
|
|
|
fi
|
2019-07-16 07:34:35 +00:00
|
|
|
timing_exit fuzz_module
|
|
|
|
timing_exit autofuzz
|