From 64228373600312362b955766b83010b8d293789c Mon Sep 17 00:00:00 2001 From: Pawel Niedzwiecki Date: Wed, 4 Jul 2018 21:05:25 +0200 Subject: [PATCH] json/rpc: Tests for nbd subsystem Change-Id: Ib5876cb238c37802b2418c594ab9a5f01bbdf637 Signed-off-by: Pawel Niedzwiecki Reviewed-on: https://review.gerrithub.io/417915 Tested-by: SPDK CI Jenkins Chandler-Test-Pool: SPDK Automated Test System Reviewed-by: Ben Walker Reviewed-by: Shuhei Matsumoto Reviewed-by: Pawel Kaminski Reviewed-by: Karol Latecki --- autotest.sh | 3 +++ test/bdev/nbdjson/json_config.sh | 28 ++++++++++++++++++++++++++++ test/json_config/clear_config.py | 13 +++++++++++-- 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100755 test/bdev/nbdjson/json_config.sh diff --git a/autotest.sh b/autotest.sh index e16db3b21..4d8362e9a 100755 --- a/autotest.sh +++ b/autotest.sh @@ -96,6 +96,9 @@ if [ $SPDK_TEST_BLOCKDEV -eq 1 ]; then run_test test/bdev/blockdev.sh if [ $(uname -s) = Linux ]; then run_test test/bdev/bdevjson/json_config.sh + if modprobe -n nbd; then + run_test test/bdev/nbdjson/json_config.sh + fi fi fi diff --git a/test/bdev/nbdjson/json_config.sh b/test/bdev/nbdjson/json_config.sh new file mode 100755 index 000000000..ccd7006c7 --- /dev/null +++ b/test/bdev/nbdjson/json_config.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +set -xe +NBD_JSON_DIR=$(readlink -f $(dirname $0)) +. $NBD_JSON_DIR/../../json_config/common.sh +rpc_py="$spdk_rpc_py" +clear_config_py="$spdk_clear_config_py" +trap 'on_error_exit "${FUNCNAME}" "${LINENO}"' ERR + +timing_enter nbd_json_config +run_spdk_tgt +load_nvme +modprobe nbd + +timing_enter nbd_json_config_create_setup +$rpc_py construct_malloc_bdev 128 512 --name Malloc0 +$rpc_py start_nbd_disk Malloc0 /dev/nbd0 +$rpc_py start_nbd_disk Nvme0n1 /dev/nbd1 +timing_exit nbd_json_config_create_setup + +timing_enter nbd_json_config_test +test_json_config +timing_exit nbd_json_config_test + +$clear_config_py clear_config +kill_targets +rmmod nbd +timing_exit nbd_json_config +report_test_completion nbd_json_config diff --git a/test/json_config/clear_config.py b/test/json_config/clear_config.py index ebde9fd39..274c1c99d 100755 --- a/test/json_config/clear_config.py +++ b/test/json_config/clear_config.py @@ -130,8 +130,17 @@ def clear_iscsi_subsystem(args, iscsi_config): args.client.call(destroy_method, {get_iscsi_name_key(iscsi): get_iscsi_name(iscsi)}) -def clear_nbd_subsystem(args, scsi_config): - pass +def get_nbd_destroy_method(nbd): + destroy_method_map = {'start_nbd_disk': "stop_nbd_disk" + } + return destroy_method_map[nbd['method']] + + +def clear_nbd_subsystem(args, nbd_config): + for nbd in nbd_config: + destroy_method = get_nbd_destroy_method(nbd) + if destroy_method: + args.client.call(destroy_method, {'nbd_device': nbd['params']['nbd_device']}) def clear_net_framework_subsystem(args, net_framework_config):