xref: /spdk/test/nvmf/nvmf.sh (revision b3bec07939ebe2ea2e0c43931705d32aa9e06719)
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