diff --git a/autotest.sh b/autotest.sh index 2d267b970..d1bc50f77 100755 --- a/autotest.sh +++ b/autotest.sh @@ -141,6 +141,10 @@ if [ $SPDK_TEST_VHOST -eq 1 ]; then run_test ./test/vhost/spdk_vhost.sh --negative timing_exit negative + timing_enter vhost_json_config + run_test ./test/vhost/json_config/json_config.sh + timing_exit vhost_json_config + if [ $RUN_NIGHTLY -eq 1 ]; then timing_enter integrity_blk run_test ./test/vhost/spdk_vhost.sh --integrity-blk diff --git a/test/json_config/common.sh b/test/json_config/common.sh index bcc2587ea..f9e0370db 100644 --- a/test/json_config/common.sh +++ b/test/json_config/common.sh @@ -40,6 +40,17 @@ function run_initiator() { waitforlisten $virtio_pid /var/tmp/virtio.sock } +function upload_vhost() { + $rpc_py construct_split_vbdev Nvme0n1 8 + $rpc_py construct_vhost_scsi_controller sample1 + $rpc_py add_vhost_scsi_lun sample1 0 Nvme0n1p3 + $rpc_py add_vhost_scsi_lun sample1 1 Nvme0n1p4 + $rpc_py set_vhost_controller_coalescing sample1 1 100 + $rpc_py construct_vhost_blk_controller sample2 Nvme0n1p5 + $rpc_py construct_vhost_nvme_controller sample3 16 + $rpc_py add_vhost_nvme_ns sample3 Nvme0n1p6 +} + function kill_targets() { if [ ! -z $virtio_pid ]; then killprocess $virtio_pid diff --git a/test/vhost/json_config/json_config.sh b/test/vhost/json_config/json_config.sh new file mode 100755 index 000000000..d5683f1d5 --- /dev/null +++ b/test/vhost/json_config/json_config.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +set -ex +VHOST_JSON_DIR=$(readlink -f $(dirname $0)) +. $VHOST_JSON_DIR/../../json_config/common.sh + +function test_subsystems() { + run_spdk_tgt + + rpc_py="$spdk_rpc_py" + clear_config_py="$spdk_clear_config_py" + load_nvme + + upload_vhost + test_json_config + $clear_config_py clear_config + + kill_targets +} + +trap 'on_error_exit "${FUNCNAME}" "${LINENO}"' ERR +timing_enter json_config_vhost + +test_subsystems +timing_exit json_config_vhost +report_test_completion json_config_vhost