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