1#!/usr/bin/env bash 2testdir=$(readlink -f $(dirname $0)) 3rootdir=$(readlink -f $testdir/../..) 4source $rootdir/test/common/autotest_common.sh 5 6if [ ! $(uname -s) = Linux ]; then 7 exit 0 8fi 9 10source $rootdir/test/nvmf/common.sh 11 12trap "exit 1" SIGINT SIGTERM EXIT 13 14TEST_ARGS=("$@") 15 16if [[ $SPDK_TEST_URING -eq 0 ]]; then 17 run_test "nvmf_example" test/nvmf/target/nvmf_example.sh "${TEST_ARGS[@]}" 18 run_test "nvmf_filesystem" test/nvmf/target/filesystem.sh "${TEST_ARGS[@]}" 19 run_test "nvmf_discovery" test/nvmf/target/discovery.sh "${TEST_ARGS[@]}" 20 run_test "nvmf_connect_disconnect" test/nvmf/target/connect_disconnect.sh "${TEST_ARGS[@]}" 21fi 22run_test "nvmf_host_management" test/nvmf/target/host_management.sh "${TEST_ARGS[@]}" 23if [[ $SPDK_TEST_NVME_CLI -eq 1 && $SPDK_TEST_URING -eq 0 ]]; then 24 run_test "nvmf_nvme_cli" test/nvmf/target/nvme_cli.sh "${TEST_ARGS[@]}" 25fi 26run_test "nvmf_lvol" test/nvmf/target/nvmf_lvol.sh "${TEST_ARGS[@]}" 27run_test "nvmf_vhost" test/nvmf/target/nvmf_vhost.sh "${TEST_ARGS[@]}" 28run_test "nvmf_bdev_io_wait" test/nvmf/target/bdev_io_wait.sh "${TEST_ARGS[@]}" 29if [[ $SPDK_TEST_URING -eq 0 ]]; then 30 run_test "nvmf_create_transport" test/nvmf/target/create_transport.sh "${TEST_ARGS[@]}" 31 run_test "nvmf_multitarget" test/nvmf/target/multitarget.sh "${TEST_ARGS[@]}" 32fi 33 34if [ $RUN_NIGHTLY -eq 1 ]; then 35 run_test "nvmf_fuzz" test/nvmf/target/fabrics_fuzz.sh "${TEST_ARGS[@]}" 36 run_test "nvmf_multiconnection" test/nvmf/target/multiconnection.sh "${TEST_ARGS[@]}" 37 run_test "nvmf_initiator_timeout" test/nvmf/target/initiator_timeout.sh "${TEST_ARGS[@]}" 38fi 39 40run_test "nvmf_nmic" test/nvmf/target/nmic.sh "${TEST_ARGS[@]}" 41run_test "nvmf_fio" test/nvmf/target/fio.sh "${TEST_ARGS[@]}" 42run_test "nvmf_bdevio" test/nvmf/target/bdevio.sh "${TEST_ARGS[@]}" 43if [[ $SPDK_TEST_URING -eq 0 ]]; then 44 run_test "nvmf_rpc" test/nvmf/target/rpc.sh "${TEST_ARGS[@]}" 45 run_test "nvmf_invalid" test/nvmf/target/invalid.sh "${TEST_ARGS[@]}" 46 run_test "nvmf_abort" test/nvmf/target/abort.sh "${TEST_ARGS[@]}" 47 run_test "nvmf_ns_hotplug_stress" test/nvmf/target/ns_hotplug_stress.sh "${TEST_ARGS[@]}" 48 run_test "nvmf_connect_stress" test/nvmf/target/connect_stress.sh "${TEST_ARGS[@]}" 49 run_test "nvmf_delete_subsystem" test/nvmf/target/delete_subsystem.sh "${TEST_ARGS[@]}" 50fi 51 52if [[ $SPDK_TEST_VFIOUSER -eq 1 && $SPDK_TEST_URING -eq 0 ]]; then 53 run_test "nvmf_vfio_user" test/nvmf/target/nvmf_vfio_user.sh "${TEST_ARGS[@]}" 54 run_test "nvmf_vfio_user_nvme_compliance" test/nvme/compliance/compliance.sh "${TEST_ARGS[@]}" 55 run_test "nvmf_vfio_user_fuzz" test/nvmf/target/vfio_user_fuzz.sh "${TEST_ARGS[@]}" 56fi 57 58if ! check_ip_is_soft_roce $NVMF_FIRST_TARGET_IP; then 59 # Soft-RoCE will return invalid values in the WC field after a qp has been 60 # destroyed which lead to NULL pointer references not seen in real hardware. 61 run_test "nvmf_shutdown" test/nvmf/target/shutdown.sh "${TEST_ARGS[@]}" 62 #TODO: disabled due to intermittent failures. Need to triage. 63 # run_test "nvmf_srq_overwhelm" test/nvmf/target/srq_overwhelm.sh $TEST_ARGS 64fi 65 66run_test "nvmf_multipath" test/nvmf/target/multipath.sh "${TEST_ARGS[@]}" 67 68timing_enter host 69 70run_test "nvmf_identify" test/nvmf/host/identify.sh "${TEST_ARGS[@]}" 71run_test "nvmf_perf" test/nvmf/host/perf.sh "${TEST_ARGS[@]}" 72run_test "nvmf_multipath" test/nvmf/host/multipath.sh "${TEST_ARGS[@]}" 73 74if [[ $SPDK_TEST_URING -eq 0 ]]; then 75 run_test "nvmf_multicontroller" test/nvmf/host/multicontroller.sh "${TEST_ARGS[@]}" 76 run_test "nvmf_aer" test/nvmf/host/aer.sh "${TEST_ARGS[@]}" 77 run_test "nvmf_async_init" test/nvmf/host/async_init.sh "${TEST_ARGS[@]}" 78fi 79 80# TODO: disabled due to intermittent failures (RDMA_CM_EVENT_UNREACHABLE/ETIMEDOUT) 81#run_test test/nvmf/host/identify_kernel_nvmf.sh $TEST_ARGS 82run_test "nvmf_fio" test/nvmf/host/fio.sh "${TEST_ARGS[@]}" 83 84# There is an intermittent error relating to those tests and Soft-RoCE. 85# Skip those tests if we are using rxe. 86if ! check_ip_is_soft_roce $NVMF_FIRST_TARGET_IP; then 87 # GitHub issue #1165 88 run_test "nvmf_bdevperf" test/nvmf/host/bdevperf.sh "${TEST_ARGS[@]}" 89 # GitHub issue #1043 90 run_test "nvmf_target_disconnect" test/nvmf/host/target_disconnect.sh "${TEST_ARGS[@]}" 91fi 92 93if [[ $SPDK_TEST_URING -eq 0 ]]; then 94 run_test "dma" test/nvmf/host/dma.sh "${TEST_ARGS[@]}" 95fi 96 97timing_exit host 98 99trap - SIGINT SIGTERM EXIT 100revert_soft_roce 101