Commit b2fd5b25 authored by Pawel Niedzwiecki's avatar Pawel Niedzwiecki Committed by Jim Harris
Browse files

json/rpc: Tests for nvmf subsystem

parent f0ec7bc6
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -133,6 +133,7 @@ fi

if [ $SPDK_TEST_NVMF -eq 1 ]; then
	run_test ./test/nvmf/nvmf.sh
	run_test ./test/nvmf/nvmfjson/json_config.sh
fi

if [ $SPDK_TEST_VHOST -eq 1 ]; then
+12 −1
Original line number Diff line number Diff line
@@ -85,8 +85,19 @@ def clear_bdev_subsystem(args, bdev_config):
            args.client.call(destroy_method, {bdev_name_key: bdev_name})


def get_nvmf_destroy_method(nvmf):
    destroy_method_map = {'construct_nvmf_subsystem': "delete_nvmf_subsystem",
                          'set_nvmf_target_config': None,
                          'set_nvmf_target_options': None
                          }
    return destroy_method_map[nvmf['method']]


def clear_nvmf_subsystem(args, nvmf_config):
    pass
    for nvmf in nvmf_config:
        destroy_method = get_nvmf_destroy_method(nvmf)
        if destroy_method:
            args.client.call(destroy_method, {'nqn': nvmf['params']['nqn']})


def clear_scsi_subsystem(args, scsi_config):
+25 −3
Original line number Diff line number Diff line
JSON_DIR=$(readlink -f $(dirname ${BASH_SOURCE[0]}))
SPDK_BUILD_DIR=$JSON_DIR/../../
source $JSON_DIR/../common/autotest_common.sh
source $JSON_DIR/../nvmf/common.sh

spdk_rpc_py="python $SPDK_BUILD_DIR/scripts/rpc.py -s /var/tmp/spdk.sock"
spdk_clear_config_py="$JSON_DIR/clear_config.py -s /var/tmp/spdk.sock"
@@ -96,9 +97,9 @@ function test_json_config() {
}

function remove_config_files_after_test_json_config() {
	rm $last_bdevs $base_bdevs
	rm $last_json_config $base_json_config
	rm $tmp_config $full_config $null_json_config
	rm -f $last_bdevs $base_bdevs
	rm -f $last_json_config $base_json_config
	rm -f $tmp_config $full_config $null_json_config
}

function create_pmem_bdev_subsytem_config() {
@@ -139,6 +140,27 @@ function create_bdev_subsystem_config() {
	$rpc_py clone_lvol_bdev lvs_test/snapshot0 clone0
}

function create_nvmf_subsystem_config() {
	rdma_device_init
	RDMA_IP_LIST=$(get_available_rdma_ips)
	NVMF_FIRST_TARGET_IP=$(echo "$RDMA_IP_LIST" | head -n 1)
	if [ -z $NVMF_FIRST_TARGET_IP ]; then
		echo "Error: no NIC for nvmf test"
		return 1
	fi

	bdevs="$($rpc_py construct_malloc_bdev 64 512) "
	bdevs+="$($rpc_py construct_malloc_bdev 64 512)"
	$rpc_py construct_nvmf_subsystem nqn.2016-06.io.spdk:cnode1 '' '' -a -s SPDK00000000000001 -n "$bdevs"
	$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t RDMA -a $NVMF_FIRST_TARGET_IP -s "$NVMF_PORT"
	$rpc_py nvmf_subsystem_add_host nqn.2016-06.io.spdk:cnode1 nqn.2016-06.io.spdk:host1
	$rpc_py nvmf_subsystem_allow_any_host nqn.2016-06.io.spdk:cnode1
}

function clear_nvmf_subsystem_config() {
	$clear_config_py clear_config
}

function clear_bdev_subsystem_config() {
	$rpc_py destroy_lvol_bdev lvs_test/clone0
	$rpc_py destroy_lvol_bdev lvs_test/lvol0
+39 −0
Original line number Diff line number Diff line
#!/usr/bin/env bash
set -xe
NVMF_JSON_DIR=$(readlink -f $(dirname $0))
. $NVMF_JSON_DIR/../../json_config/common.sh
base_nvmf_config=$JSON_DIR/base_nvmf_config.json
last_nvmf_config=$JSON_DIR/last_nvmf_config.json

function test_subsystems() {
	run_spdk_tgt

	rpc_py="$spdk_rpc_py"
	clear_config_py="$spdk_clear_config_py"

	$rpc_py start_subsystem_init
	create_nvmf_subsystem_config
	$rpc_py save_config -f $base_nvmf_config
	test_json_config

	clear_nvmf_subsystem_config
	kill_targets

	run_spdk_tgt
	$rpc_py load_config -f $base_nvmf_config
	$rpc_py save_config -f $last_nvmf_config

	diff $base_nvmf_config $last_nvmf_config

	clear_nvmf_subsystem_config
	kill_targets
	rm -f $base_nvmf_config $last_nvmf_config
}

trap 'on_error_exit "${FUNCNAME}" "${LINENO}"; rm -f $base_nvmf_config $last_nvmf_config' ERR

timing_enter nvmf_json_config
test_subsystems
timing_exit nvmf_json_config

report_test_completion nvmf_json_config