diff --git a/test/bdev/blockdev.sh b/test/bdev/blockdev.sh index 193776a2bd..3167ce2f7b 100755 --- a/test/bdev/blockdev.sh +++ b/test/bdev/blockdev.sh @@ -112,7 +112,7 @@ bdevs_name=$(echo $bdevs | jq -r '.name') nbd_function_test $testdir/bdev.conf "$bdevs_name" timing_exit nbd -if [ -d /usr/src/fio ] && [ $SPDK_RUN_ASAN -eq 0 ]; then +if [ -d /usr/src/fio ]; then timing_enter fio timing_enter fio_rw_verify diff --git a/test/common/autotest_common.sh b/test/common/autotest_common.sh index eb58fb695e..d180ccc8fd 100644 --- a/test/common/autotest_common.sh +++ b/test/common/autotest_common.sh @@ -81,6 +81,11 @@ sudo rm -rf "$asan_suppression_file" # LSAN_OPTIONS. echo "leak:spdk_fs_alloc_thread_ctx" >> "$asan_suppression_file" +# Suppress known leaks in fio project +echo "leak:/usr/src/fio/parse.c" >> "$asan_suppression_file" +echo "leak:/usr/src/fio/iolog.c" >> "$asan_suppression_file" +echo "leak:/usr/src/fio/init.c" >> "$asan_suppression_file" + export LSAN_OPTIONS=suppressions="$asan_suppression_file" export DEFAULT_RPC_ADDR="/var/tmp/spdk.sock" @@ -771,7 +776,10 @@ function fio_bdev() local fio_dir="/usr/src/fio" local bdev_plugin="$rootdir/examples/bdev/fio_plugin/fio_plugin" - LD_PRELOAD="$bdev_plugin" "$fio_dir"/fio "$@" + # Preload AddressSanitizer library to fio if fio_plugin was compiled with it + local asan_lib=$(ldd $bdev_plugin | grep libasan | awk '{print $3}') + + LD_PRELOAD=""$asan_lib" "$bdev_plugin"" "$fio_dir"/fio "$@" } function fio_nvme() @@ -780,7 +788,10 @@ function fio_nvme() local fio_dir="/usr/src/fio" local nvme_plugin="$rootdir/examples/nvme/fio_plugin/fio_plugin" - LD_PRELOAD="$nvme_plugin" "$fio_dir"/fio "$@" + # Preload AddressSanitizer library to fio if fio_plugin was compiled with it + asan_lib=$(ldd $nvme_plugin | grep libasan | awk '{print $3}') + + LD_PRELOAD=""$asan_lib" "$nvme_plugin"" "$fio_dir"/fio "$@" } function get_lvs_free_mb() diff --git a/test/nvme/nvme.sh b/test/nvme/nvme.sh index e8e1d2606d..a017c349a5 100755 --- a/test/nvme/nvme.sh +++ b/test/nvme/nvme.sh @@ -162,8 +162,7 @@ if [ $(uname) = Linux ]; then kill_stub fi -if [ -d /usr/src/fio ] && [ $SPDK_RUN_ASAN -eq 0 ]; then - # Only test when ASAN is not enabled. If ASAN is enabled, we cannot test. +if [ -d /usr/src/fio ]; then timing_enter fio_plugin PLUGIN_DIR=$rootdir/examples/nvme/fio_plugin for bdf in $(iter_pci_class_code 01 08 02); do diff --git a/test/nvmf/nvmf.sh b/test/nvmf/nvmf.sh index a0acc81bbd..1c6c2febea 100755 --- a/test/nvmf/nvmf.sh +++ b/test/nvmf/nvmf.sh @@ -58,9 +58,7 @@ run_test suite test/nvmf/host/perf.sh $TEST_ARGS --transport=tcp # TODO: disabled due to intermittent failures (RDMA_CM_EVENT_UNREACHABLE/ETIMEDOUT) #run_test test/nvmf/host/identify_kernel_nvmf.sh $TEST_ARGS run_test suite test/nvmf/host/aer.sh $TEST_ARGS -if [ $SPDK_RUN_ASAN -eq 0 ]; then - run_test suite test/nvmf/host/fio.sh $TEST_ARGS -fi +run_test suite test/nvmf/host/fio.sh $TEST_ARGS timing_exit host