651d9158a0
This patch rework all JSON config file reading tests. This is needed as current approach will require to modify each test to re-launch SPDK applications for each test type. This is hard to do because tests are not flexible and will require to be rewritten almost from scratch. Not metioning time to relaunch each test separatly. Instead, just replace all old tests with one test. Launch only one target and only one initiator. Then configure it using RPC calls. Then config is dumped and target and initiator application is relaunched to reread the configuration from file. Then config is dumped again and compared. Change-Id: Id857089aed0e6f2197cbf3ae625a4e9f4b13e8bb Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com> Reviewed-on: https://review.gerrithub.io/c/432318 Reviewed-by: Karol Latecki <karol.latecki@intel.com> Reviewed-by: Pawel Kaminski <pawelx.kaminski@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
132 lines
5.1 KiB
Bash
Executable File
132 lines
5.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -xe
|
|
|
|
MATCH_FILE="spdkcli_vhost.test"
|
|
SPDKCLI_BRANCH="/"
|
|
testdir=$(readlink -f $(dirname $0))
|
|
. $testdir/common.sh
|
|
|
|
timing_enter spdk_cli_vhost
|
|
trap 'on_error_exit' ERR
|
|
timing_enter run_vhost_tgt
|
|
run_vhost_tgt
|
|
timing_exit run_vhost_tgt
|
|
|
|
timing_enter spdkcli_create_bdevs_config
|
|
$spdkcli_job "'/bdevs/malloc create 40 512 Malloc0' 'Malloc0' True
|
|
'/bdevs/malloc create 32 512 Malloc1' 'Malloc1' True
|
|
'/bdevs/malloc create 32 512 Malloc2' 'Malloc2' True
|
|
'/bdevs/malloc create 32 4096 Malloc3' 'Malloc3' True
|
|
'/bdevs/malloc create 32 4096 Malloc4' 'Malloc4' True
|
|
'/bdevs/malloc create 32 4096 Malloc5' 'Malloc5' True
|
|
'/bdevs/error create Malloc1' 'EE_Malloc1' True
|
|
'/bdevs/error create Malloc4' 'EE_Malloc4' True
|
|
'/bdevs/null create null_bdev0 32 512' 'null_bdev0' True
|
|
'/bdevs/null create null_bdev1 32 512' 'null_bdev1' True
|
|
"
|
|
dd if=/dev/zero of=/tmp/sample_aio bs=2048 count=5000
|
|
dd if=/dev/zero of=/tmp/sample_aio2 bs=2048 count=5000
|
|
$spdkcli_job "'/bdevs/aio create sample0 /tmp/sample_aio 512' 'sample0' True
|
|
'/bdevs/aio create sample1 /tmp/sample_aio2 512' 'sample1' True
|
|
"
|
|
trtype=$($SPDKCLI_BUILD_DIR/scripts/gen_nvme.sh --json | jq -r '.config[].params | select(.name=="Nvme0").trtype')
|
|
traddr=$($SPDKCLI_BUILD_DIR/scripts/gen_nvme.sh --json | jq -r '.config[].params | select(.name=="Nvme0").traddr')
|
|
$spdkcli_job "'/bdevs/nvme create Nvme0 $trtype $traddr' 'Nvme0' True
|
|
'/bdevs/split_disk split_bdev Nvme0n1 4' 'Nvme0n1p0' True
|
|
"
|
|
timing_exit spdkcli_create_bdevs_config
|
|
|
|
timing_enter spdkcli_create_lvols_config
|
|
$spdkcli_job "'/lvol_stores create lvs0 Malloc0' 'lvs0' True
|
|
'/lvol_stores create lvs1 Malloc5' 'lvs1' True
|
|
'/bdevs/logical_volume create lvol0 16 lvs0' 'lvs0/lvol0' True
|
|
'/bdevs/logical_volume create lvol1 16 lvs0' 'lvs0/lvol1' True
|
|
"
|
|
timing_exit spdkcli_create_lvols_config
|
|
|
|
timing_enter spdkcli_create_vhosts_config
|
|
$spdkcli_job "'vhost/block create vhost_blk1 Nvme0n1p0' 'Nvme0n1p0' True
|
|
'vhost/block create vhost_blk2 Nvme0n1p1 0x1 readonly' 'Nvme0n1p1' True
|
|
'vhost/scsi create vhost_scsi1' 'vhost_scsi1' True
|
|
'vhost/scsi create vhost_scsi2' 'vhost_scsi2' True
|
|
'vhost/scsi/vhost_scsi1 add_lun 0 Malloc2' 'Malloc2' True
|
|
'vhost/scsi/vhost_scsi2 add_lun 0 Malloc3' 'Malloc3' True
|
|
'vhost/scsi/vhost_scsi2 add_lun 1 Nvme0n1p2' 'Nvme0n1p2' True
|
|
'vhost/scsi/vhost_scsi2 add_lun 2 Nvme0n1p3' 'Nvme0n1p3' True
|
|
"
|
|
timing_exit spdkcli_create_vhosts_config
|
|
|
|
timing_enter spdkcli_check_match
|
|
check_match
|
|
timing_exit spdkcli_check_match
|
|
|
|
timing_enter spdkcli_save_config
|
|
$spdkcli_job "'save_config $testdir/config.json'
|
|
'save_subsystem_config $testdir/config_bdev.json bdev'
|
|
'save_subsystem_config $testdir/config_vhost.json vhost'
|
|
"
|
|
timing_exit spdkcli_save_config
|
|
|
|
timing_enter spdkcli_check_match_details
|
|
$SPDKCLI_BUILD_DIR/scripts/spdkcli.py bdevs/split_disk/Nvme0n1p0 show_details | jq -r -S '.' > $testdir/match_files/spdkcli_details_vhost.test
|
|
$SPDKCLI_BUILD_DIR/test/app/match/match -v $testdir/match_files/spdkcli_details_vhost.test.match
|
|
rm -f $testdir/match_files/spdkcli_details_vhost.test
|
|
timing_exit spdkcli_check_match_details
|
|
|
|
timing_enter spdkcli_clear_config
|
|
$spdkcli_job "'vhost/scsi/vhost_scsi2 remove_target 2' 'Nvme0n1p3'
|
|
'vhost/scsi/vhost_scsi2 remove_target 1' 'Nvme0n1p2'
|
|
'vhost/scsi/vhost_scsi2 remove_target 0' 'Malloc3'
|
|
'vhost/scsi/vhost_scsi1 remove_target 0' 'Malloc2'
|
|
'vhost/scsi delete vhost_scsi2' 'vhost_scsi2'
|
|
'vhost/scsi delete vhost_scsi1' 'vhost_scsi1'
|
|
'vhost/block delete vhost_blk2' 'vhost_blk2'
|
|
'vhost/block delete vhost_blk1' 'vhost_blk1'
|
|
'/bdevs/split_disk destruct_split_bdev Nvme0n1' 'Nvme0n1p0'
|
|
'/bdevs/aio delete sample0' 'sample0'
|
|
'/bdevs/aio delete_all' 'sample1'
|
|
'/bdevs/nvme delete Nvme0' 'Nvme0'
|
|
'/bdevs/null delete null_bdev0' 'null_bdev0'
|
|
'/bdevs/null delete_all' 'null_bdev1'
|
|
'/bdevs/logical_volume delete lvs0/lvol0' 'lvs0/lvol0'
|
|
'/bdevs/logical_volume delete_all' 'lvs0/lvol1'
|
|
'/lvol_stores delete lvs0' 'lvs0'
|
|
'/lvol_stores delete_all' 'lvs1'
|
|
'/bdevs/error delete EE_Malloc1' 'EE_Malloc1'
|
|
'/bdevs/error delete_all' 'EE_Malloc4'
|
|
'/bdevs/malloc delete Malloc0' 'Malloc0'
|
|
'/bdevs/malloc delete_all' 'Malloc1'
|
|
"
|
|
timing_exit spdkcli_clear_config
|
|
|
|
timing_enter spdkcli_load_config
|
|
$spdkcli_job "'load_config $testdir/config.json'
|
|
'/lvol_stores create lvs0 Malloc0' 'lvs0' True
|
|
'/lvol_stores create lvs1 Malloc5' 'lvs1' True
|
|
'/bdevs/logical_volume create lvol0 16 lvs0' 'lvs0/lvol0' True
|
|
'/bdevs/logical_volume create lvol1 16 lvs0' 'lvs0/lvol1' True
|
|
"
|
|
check_match
|
|
$spdk_clear_config_py clear_config
|
|
# FIXME: remove this sleep when NVMe driver will be fixed to wait for reset to complete
|
|
sleep 2
|
|
$spdkcli_job "'load_subsystem_config $testdir/config_bdev.json'
|
|
'load_subsystem_config $testdir/config_vhost.json'
|
|
'/lvol_stores create lvs0 Malloc0' 'lvs0' True
|
|
'/lvol_stores create lvs1 Malloc5' 'lvs1' True
|
|
'/bdevs/logical_volume create lvol0 16 lvs0' 'lvs0/lvol0' True
|
|
'/bdevs/logical_volume create lvol1 16 lvs0' 'lvs0/lvol1' True
|
|
"
|
|
check_match
|
|
$spdk_clear_config_py clear_config
|
|
rm -f $testdir/config.json
|
|
rm -f $testdir/config_bdev.json
|
|
rm -f $testdir/config_vhost.json
|
|
rm -f /tmp/sample_aio
|
|
timing_exit spdkcli_load_config
|
|
|
|
killprocess $vhost_tgt_pid
|
|
|
|
timing_exit spdk_cli_vhost
|
|
report_test_completion spdk_cli_vhost
|