json/rpc: Tests for nbd subsystem

Change-Id: Ib5876cb238c37802b2418c594ab9a5f01bbdf637
Signed-off-by: Pawel Niedzwiecki <pawelx.niedzwiecki@intel.com>
Reviewed-on: https://review.gerrithub.io/417915
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Pawel Kaminski <pawelx.kaminski@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
This commit is contained in:
Pawel Niedzwiecki 2018-07-04 21:05:25 +02:00 committed by Ben Walker
parent 06192d281c
commit 6422837360
3 changed files with 42 additions and 2 deletions

View File

@ -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

View File

@ -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

View File

@ -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):