1#!/usr/bin/env bash 2# SPDX-License-Identifier: BSD-3-Clause 3# Copyright (C) 2017 Intel Corporation 4# All rights reserved. 5# 6testdir=$(readlink -f $(dirname $0)) 7rootdir=$(readlink -f $testdir/../..) 8source $rootdir/test/common/autotest_common.sh 9 10if [ ! $(uname -s) = Linux ]; then 11 exit 0 12fi 13 14source $rootdir/test/nvmf/common.sh 15 16trap "exit 1" SIGINT SIGTERM EXIT 17 18TEST_ARGS=("$@") 19 20timing_enter target 21 22if [[ $SPDK_TEST_URING -eq 0 ]]; then 23 run_test "nvmf_example" $rootdir/test/nvmf/target/nvmf_example.sh "${TEST_ARGS[@]}" 24 run_test "nvmf_filesystem" $rootdir/test/nvmf/target/filesystem.sh "${TEST_ARGS[@]}" 25 run_test "nvmf_discovery" $rootdir/test/nvmf/target/discovery.sh "${TEST_ARGS[@]}" 26 run_test "nvmf_connect_disconnect" $rootdir/test/nvmf/target/connect_disconnect.sh "${TEST_ARGS[@]}" 27 run_test "nvmf_multitarget" $rootdir/test/nvmf/target/multitarget.sh "${TEST_ARGS[@]}" 28 run_test "nvmf_rpc" $rootdir/test/nvmf/target/rpc.sh "${TEST_ARGS[@]}" 29 run_test "nvmf_invalid" $rootdir/test/nvmf/target/invalid.sh "${TEST_ARGS[@]}" 30 run_test "nvmf_abort" $rootdir/test/nvmf/target/abort.sh "${TEST_ARGS[@]}" 31 run_test "nvmf_ns_hotplug_stress" $rootdir/test/nvmf/target/ns_hotplug_stress.sh "${TEST_ARGS[@]}" 32 run_test "nvmf_connect_stress" $rootdir/test/nvmf/target/connect_stress.sh "${TEST_ARGS[@]}" 33 run_test "nvmf_fused_ordering" $rootdir/test/nvmf/target/fused_ordering.sh "${TEST_ARGS[@]}" 34 run_test "nvmf_delete_subsystem" $rootdir/test/nvmf/target/delete_subsystem.sh "${TEST_ARGS[@]}" 35 if [[ $SPDK_TEST_NVME_CLI -eq 1 ]]; then 36 run_test "nvmf_nvme_cli" $rootdir/test/nvmf/target/nvme_cli.sh "${TEST_ARGS[@]}" 37 fi 38 if [[ $SPDK_TEST_VFIOUSER -eq 1 ]]; then 39 run_test "nvmf_vfio_user" $rootdir/test/nvmf/target/nvmf_vfio_user.sh "${TEST_ARGS[@]}" 40 run_test "nvmf_vfio_user_nvme_compliance" $rootdir/test/nvme/compliance/compliance.sh "${TEST_ARGS[@]}" 41 run_test "nvmf_vfio_user_fuzz" $rootdir/test/nvmf/target/vfio_user_fuzz.sh "${TEST_ARGS[@]}" 42 fi 43fi 44 45run_test "nvmf_host_management" $rootdir/test/nvmf/target/host_management.sh "${TEST_ARGS[@]}" 46run_test "nvmf_lvol" $rootdir/test/nvmf/target/nvmf_lvol.sh "${TEST_ARGS[@]}" 47run_test "nvmf_bdev_io_wait" $rootdir/test/nvmf/target/bdev_io_wait.sh "${TEST_ARGS[@]}" 48run_test "nvmf_queue_depth" $rootdir/test/nvmf/target/queue_depth.sh "${TEST_ARGS[@]}" 49run_test "nvmf_multipath" $rootdir/test/nvmf/target/multipath.sh "${TEST_ARGS[@]}" 50run_test "nvmf_zcopy" $rootdir/test/nvmf/target/zcopy.sh "${TEST_ARGS[@]}" 51run_test "nvmf_tls" $rootdir/test/nvmf/target/tls.sh "${TEST_ARGS[@]}" 52run_test "nvmf_nmic" $rootdir/test/nvmf/target/nmic.sh "${TEST_ARGS[@]}" 53run_test "nvmf_fio_target" $rootdir/test/nvmf/target/fio.sh "${TEST_ARGS[@]}" 54run_test "nvmf_bdevio" $rootdir/test/nvmf/target/bdevio.sh "${TEST_ARGS[@]}" 55 56if [ $RUN_NIGHTLY -eq 1 ]; then 57 run_test "nvmf_fuzz" $rootdir/test/nvmf/target/fabrics_fuzz.sh "${TEST_ARGS[@]}" 58 run_test "nvmf_multiconnection" $rootdir/test/nvmf/target/multiconnection.sh "${TEST_ARGS[@]}" 59 run_test "nvmf_initiator_timeout" $rootdir/test/nvmf/target/initiator_timeout.sh "${TEST_ARGS[@]}" 60fi 61 62if [[ $NET_TYPE == phy ]]; then 63 if [ "$SPDK_TEST_NVMF_TRANSPORT" = "tcp" ]; then 64 gather_supported_nvmf_pci_devs 65 TCP_INTERFACE_LIST=("${net_devs[@]}") 66 if ((${#TCP_INTERFACE_LIST[@]} > 0)); then 67 run_test "nvmf_perf_adq" $rootdir/test/nvmf/target/perf_adq.sh "${TEST_ARGS[@]}" 68 fi 69 else 70 run_test "nvmf_device_removal" test/nvmf/target/device_removal.sh "${TEST_ARGS[@]}" 71 fi 72 run_test "nvmf_shutdown" $rootdir/test/nvmf/target/shutdown.sh "${TEST_ARGS[@]}" 73 # TODO: disabled due to intermittent failures. Need to triage. 74 # run_test "nvmf_srq_overwhelm" $rootdir/test/nvmf/target/srq_overwhelm.sh "${TEST_ARGS[@]}" 75fi 76 77timing_exit target 78 79timing_enter host 80 81if [[ $SPDK_TEST_URING -eq 0 ]]; then 82 run_test "nvmf_multicontroller" $rootdir/test/nvmf/host/multicontroller.sh "${TEST_ARGS[@]}" 83 run_test "nvmf_aer" $rootdir/test/nvmf/host/aer.sh "${TEST_ARGS[@]}" 84 run_test "nvmf_async_init" $rootdir/test/nvmf/host/async_init.sh "${TEST_ARGS[@]}" 85 run_test "dma" $rootdir/test/nvmf/host/dma.sh "${TEST_ARGS[@]}" 86fi 87 88run_test "nvmf_identify" $rootdir/test/nvmf/host/identify.sh "${TEST_ARGS[@]}" 89run_test "nvmf_perf" $rootdir/test/nvmf/host/perf.sh "${TEST_ARGS[@]}" 90run_test "nvmf_fio_host" $rootdir/test/nvmf/host/fio.sh "${TEST_ARGS[@]}" 91run_test "nvmf_failover" $rootdir/test/nvmf/host/failover.sh "${TEST_ARGS[@]}" 92run_test "nvmf_discovery" $rootdir/test/nvmf/host/discovery.sh "${TEST_ARGS[@]}" 93run_test "nvmf_discovery_remove_ifc" $rootdir/test/nvmf/host/discovery_remove_ifc.sh "${TEST_ARGS[@]}" 94# TODO: disabled due to intermittent failures (RDMA_CM_EVENT_UNREACHABLE/ETIMEDOUT) 95#run_test $rootdir/test/nvmf/host/identify_kernel_nvmf.sh $TEST_ARGS 96 97if [[ $SPDK_TEST_NVMF_MDNS -eq 1 && "$SPDK_TEST_NVMF_TRANSPORT" == "tcp" ]]; then 98 # Skipping tests on RDMA because the rdma stack fails to configure the same IP for host and target. 99 run_test "nvmf_mdns_discovery" $rootdir/test/nvmf/host/mdns_discovery.sh "${TEST_ARGS[@]}" 100fi 101 102if [[ $SPDK_TEST_USDT -eq 1 ]]; then 103 run_test "nvmf_multipath" $rootdir/test/nvmf/host/multipath.sh "${TEST_ARGS[@]}" 104 run_test "nvmf_timeout" $rootdir/test/nvmf/host/timeout.sh "${TEST_ARGS[@]}" 105fi 106 107if [[ $NET_TYPE == phy ]]; then 108 # GitHub issue #1165 109 run_test "nvmf_bdevperf" $rootdir/test/nvmf/host/bdevperf.sh "${TEST_ARGS[@]}" 110 # GitHub issue #1043 111 run_test "nvmf_target_disconnect" $rootdir/test/nvmf/host/target_disconnect.sh "${TEST_ARGS[@]}" 112fi 113 114timing_exit host 115 116trap - SIGINT SIGTERM EXIT 117