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