diff options
Diffstat (limited to 'src/spdk/test/nvme/cuse/nvme_cuse_rpc.sh')
-rwxr-xr-x | src/spdk/test/nvme/cuse/nvme_cuse_rpc.sh | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/spdk/test/nvme/cuse/nvme_cuse_rpc.sh b/src/spdk/test/nvme/cuse/nvme_cuse_rpc.sh new file mode 100755 index 000000000..eaf0dbd9c --- /dev/null +++ b/src/spdk/test/nvme/cuse/nvme_cuse_rpc.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash + +testdir=$(readlink -f $(dirname $0)) +rootdir=$(readlink -f $testdir/../../..) +source $rootdir/scripts/common.sh +source $rootdir/test/common/autotest_common.sh + +rpc_py=$rootdir/scripts/rpc.py + +bdf=$(get_first_nvme_bdf) +ctrlr_base="/dev/spdk/nvme" + +$SPDK_BIN_DIR/spdk_tgt -m 0x3 & +spdk_tgt_pid=$! +trap 'kill -9 ${spdk_tgt_pid}; exit 1' SIGINT SIGTERM EXIT + +waitforlisten $spdk_tgt_pid + +$rpc_py bdev_nvme_attach_controller -b Nvme0 -t PCIe -a ${bdf} +$rpc_py bdev_nvme_cuse_register -n Nvme0 + +sleep 5 + +if [ ! -c "${ctrlr_base}0" ]; then + exit 1 +fi + +$rpc_py bdev_get_bdevs +$rpc_py bdev_nvme_get_controllers + +$rpc_py bdev_nvme_cuse_unregister -n Nvme0 +sleep 1 +if [ -c "${ctrlr_base}0" ]; then + exit 1 +fi + +# Verify removing non-existent cuse device +$rpc_py bdev_nvme_cuse_unregister -n Nvme0 && false + +$rpc_py bdev_nvme_cuse_register -n Nvme0 +sleep 1 + +if [ ! -c "${ctrlr_base}0" ]; then + exit 1 +fi + +# Verify adding same nvme controller twice fails +$rpc_py bdev_nvme_cuse_register -n Nvme0 && false +sleep 1 + +if [ -c "${ctrlr_base}1" ]; then + exit 1 +fi + +$rpc_py bdev_nvme_detach_controller Nvme0 + +trap - SIGINT SIGTERM EXIT +killprocess $spdk_tgt_pid |