]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/test/nvme/cuse/nvme_cuse_rpc.sh
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / spdk / test / nvme / cuse / nvme_cuse_rpc.sh
1 #!/usr/bin/env bash
2
3 testdir=$(readlink -f $(dirname $0))
4 rootdir=$(readlink -f $testdir/../../..)
5 source $rootdir/scripts/common.sh
6 source $rootdir/test/common/autotest_common.sh
7
8 rpc_py=$rootdir/scripts/rpc.py
9
10 bdf=$(get_first_nvme_bdf)
11 ctrlr_base="/dev/spdk/nvme"
12
13 $SPDK_BIN_DIR/spdk_tgt -m 0x3 &
14 spdk_tgt_pid=$!
15 trap 'kill -9 ${spdk_tgt_pid}; exit 1' SIGINT SIGTERM EXIT
16
17 waitforlisten $spdk_tgt_pid
18
19 $rpc_py bdev_nvme_attach_controller -b Nvme0 -t PCIe -a ${bdf}
20 $rpc_py bdev_nvme_cuse_register -n Nvme0
21
22 sleep 5
23
24 if [ ! -c "${ctrlr_base}0" ]; then
25 exit 1
26 fi
27
28 $rpc_py bdev_get_bdevs
29 $rpc_py bdev_nvme_get_controllers
30
31 $rpc_py bdev_nvme_cuse_unregister -n Nvme0
32 sleep 1
33 if [ -c "${ctrlr_base}0" ]; then
34 exit 1
35 fi
36
37 # Verify removing non-existent cuse device
38 $rpc_py bdev_nvme_cuse_unregister -n Nvme0 && false
39
40 $rpc_py bdev_nvme_cuse_register -n Nvme0
41 sleep 1
42
43 if [ ! -c "${ctrlr_base}0" ]; then
44 exit 1
45 fi
46
47 # Verify adding same nvme controller twice fails
48 $rpc_py bdev_nvme_cuse_register -n Nvme0 && false
49 sleep 1
50
51 if [ -c "${ctrlr_base}1" ]; then
52 exit 1
53 fi
54
55 $rpc_py bdev_nvme_detach_controller Nvme0
56
57 trap - SIGINT SIGTERM EXIT
58 killprocess $spdk_tgt_pid