From 0616b2a5066f1b55114b538ede6d809f3b01fcab Mon Sep 17 00:00:00 2001 From: Pawel Kaminski Date: Fri, 15 Dec 2017 21:26:43 +0100 Subject: [PATCH] test/vhost: Preparation for hotremove tests Code refactoring to accommodate for coming hot-remove tests. Change-Id: I41cfb04b467bf21a5a991712791ee6bfc87c241c Signed-off-by: Pawel Kaminski Reviewed-on: https://review.gerrithub.io/391957 Tested-by: SPDK Automated Test System Reviewed-by: Karol Latecki Reviewed-by: Daniel Verkamp Reviewed-by: Jim Harris --- test/vhost/hotplug/scsi_hotattach.sh | 8 ++++ test/vhost/hotplug/scsi_hotdetach.sh | 11 +++-- test/vhost/hotplug/scsi_hotplug.sh | 70 ++++++++++++++++------------ test/vhost/spdk_vhost.sh | 2 +- 4 files changed, 58 insertions(+), 33 deletions(-) diff --git a/test/vhost/hotplug/scsi_hotattach.sh b/test/vhost/hotplug/scsi_hotattach.sh index af98838a0..aa1ebcb9c 100755 --- a/test/vhost/hotplug/scsi_hotattach.sh +++ b/test/vhost/hotplug/scsi_hotattach.sh @@ -89,7 +89,15 @@ function hotattach_tc4() { check_fio_retcode "Hotattach test case 4: Iteration 3." 0 $? } +function cleanup_after_tests() { + $rpc_py remove_vhost_scsi_target naa.Nvme0n1p0.0 0 + $rpc_py remove_vhost_scsi_target naa.Nvme0n1p0.0 1 + $rpc_py remove_vhost_scsi_target naa.Nvme0n1p1.0 0 + $rpc_py remove_vhost_scsi_target naa.Nvme0n1p2.1 0 +} + hotattach_tc1 hotattach_tc2 hotattach_tc3 hotattach_tc4 +cleanup_after_tests diff --git a/test/vhost/hotplug/scsi_hotdetach.sh b/test/vhost/hotplug/scsi_hotdetach.sh index f873c2b1c..45c948d97 100755 --- a/test/vhost/hotplug/scsi_hotdetach.sh +++ b/test/vhost/hotplug/scsi_hotdetach.sh @@ -151,13 +151,13 @@ function hotdetach_tc1() { second_disk="" get_first_disk "2" second_disk check_disks $first_disk $second_disk + clear_after_tests } # During fio test for device from third VM remove first device from fifth controller and check if fio fails. # Also check if disc has been removed from VM. function hotdetach_tc2() { notice "Hotdetach test case 2" - $SPDK_BUILD_DIR/scripts/rpc.py add_vhost_scsi_lun naa.Nvme0n1p4.2 0 Nvme0n1p8 sleep 2 first_disk="" get_first_disk "2" first_disk @@ -173,13 +173,13 @@ function hotdetach_tc2() { second_disk="" get_first_disk "2" second_disk check_disks $first_disk $second_disk + clear_after_tests } # Run fio test for all devices except one, then remove this device and check if fio passes. # Also check if disc has been removed from VM. function hotdetach_tc3() { notice "Hotdetach test case 3" - $SPDK_BUILD_DIR/scripts/rpc.py add_vhost_scsi_lun naa.Nvme0n1p4.2 0 Nvme0n1p8 sleep 2 first_disk="" get_first_disk "2" first_disk @@ -193,6 +193,7 @@ function hotdetach_tc3() { second_disk="" get_first_disk "2" second_disk check_disks $first_disk $second_disk + clear_after_tests } # Run fio test for all devices except one and run separate fio test for this device. @@ -201,7 +202,6 @@ function hotdetach_tc3() { # After reboot run fio test for remaining devices and check if fio passes. function hotdetach_tc4() { notice "Hotdetach test case 4" - $SPDK_BUILD_DIR/scripts/rpc.py add_vhost_scsi_lun naa.Nvme0n1p4.2 0 Nvme0n1p8 sleep 2 first_disk="" get_first_disk "2" first_disk @@ -228,6 +228,11 @@ function hotdetach_tc4() { prepare_fio_cmd_tc2_iter2 "2 3" $run_fio check_fio_retcode "Hotdetach test case 4: Iteration 3." 0 $? + clear_after_tests +} + +function clear_after_tests() { + $rpc_py add_vhost_scsi_lun naa.Nvme0n1p4.2 0 Nvme0n1p8 } hotdetach_tc1 diff --git a/test/vhost/hotplug/scsi_hotplug.sh b/test/vhost/hotplug/scsi_hotplug.sh index 4ad8a95ad..b103997c2 100755 --- a/test/vhost/hotplug/scsi_hotplug.sh +++ b/test/vhost/hotplug/scsi_hotplug.sh @@ -16,46 +16,58 @@ END_OF_CONFIG # Run spdk by calling run_vhost from hotplug/common.sh. # Then prepare vhost with rpc calls and setup and run 4 VMs. -function pre_test_case() { +function pre_hot_attach_detach_test_case() { used_vms="" - run_vhost - rm $BASE_DIR/vhost.conf.in - $SPDK_BUILD_DIR/scripts/rpc.py construct_vhost_scsi_controller naa.Nvme0n1p0.0 - $SPDK_BUILD_DIR/scripts/rpc.py construct_vhost_scsi_controller naa.Nvme0n1p1.0 - $SPDK_BUILD_DIR/scripts/rpc.py construct_vhost_scsi_controller naa.Nvme0n1p2.1 - $SPDK_BUILD_DIR/scripts/rpc.py construct_vhost_scsi_controller naa.Nvme0n1p3.1 - $SPDK_BUILD_DIR/scripts/rpc.py construct_vhost_scsi_controller naa.Nvme0n1p4.2 - $SPDK_BUILD_DIR/scripts/rpc.py construct_vhost_scsi_controller naa.Nvme0n1p5.2 - $SPDK_BUILD_DIR/scripts/rpc.py construct_vhost_scsi_controller naa.Nvme0n1p6.3 - $SPDK_BUILD_DIR/scripts/rpc.py construct_vhost_scsi_controller naa.Nvme0n1p7.3 - $SPDK_BUILD_DIR/scripts/rpc.py add_vhost_scsi_lun naa.Nvme0n1p4.2 0 Nvme0n1p8 - $SPDK_BUILD_DIR/scripts/rpc.py add_vhost_scsi_lun naa.Nvme0n1p4.2 1 Nvme0n1p9 - $SPDK_BUILD_DIR/scripts/rpc.py add_vhost_scsi_lun naa.Nvme0n1p5.2 0 Nvme0n1p10 - $SPDK_BUILD_DIR/scripts/rpc.py add_vhost_scsi_lun naa.Nvme0n1p5.2 1 Nvme0n1p11 - $SPDK_BUILD_DIR/scripts/rpc.py add_vhost_scsi_lun naa.Nvme0n1p6.3 0 Nvme0n1p12 - $SPDK_BUILD_DIR/scripts/rpc.py add_vhost_scsi_lun naa.Nvme0n1p6.3 1 Nvme0n1p13 - $SPDK_BUILD_DIR/scripts/rpc.py add_vhost_scsi_lun naa.Nvme0n1p7.3 0 Nvme0n1p14 - $SPDK_BUILD_DIR/scripts/rpc.py add_vhost_scsi_lun naa.Nvme0n1p7.3 1 Nvme0n1p15 + $rpc_py construct_vhost_scsi_controller naa.Nvme0n1p0.0 + $rpc_py construct_vhost_scsi_controller naa.Nvme0n1p1.0 + $rpc_py construct_vhost_scsi_controller naa.Nvme0n1p2.1 + $rpc_py construct_vhost_scsi_controller naa.Nvme0n1p3.1 + $rpc_py construct_vhost_scsi_controller naa.Nvme0n1p4.2 + $rpc_py construct_vhost_scsi_controller naa.Nvme0n1p5.2 + $rpc_py construct_vhost_scsi_controller naa.Nvme0n1p6.3 + $rpc_py construct_vhost_scsi_controller naa.Nvme0n1p7.3 + $rpc_py add_vhost_scsi_lun naa.Nvme0n1p4.2 0 Nvme0n1p8 + $rpc_py add_vhost_scsi_lun naa.Nvme0n1p4.2 1 Nvme0n1p9 + $rpc_py add_vhost_scsi_lun naa.Nvme0n1p5.2 0 Nvme0n1p10 + $rpc_py add_vhost_scsi_lun naa.Nvme0n1p5.2 1 Nvme0n1p11 + $rpc_py add_vhost_scsi_lun naa.Nvme0n1p6.3 0 Nvme0n1p12 + $rpc_py add_vhost_scsi_lun naa.Nvme0n1p6.3 1 Nvme0n1p13 + $rpc_py add_vhost_scsi_lun naa.Nvme0n1p7.3 0 Nvme0n1p14 + $rpc_py add_vhost_scsi_lun naa.Nvme0n1p7.3 1 Nvme0n1p15 vms_setup_and_run "0 1 2 3" vms_prepare "0 1 2 3" } -function reboot_all_and_prepare() { - vms_reboot_all $1 - vms_prepare $1 -} - -function post_test_case() { - vm_shutdown_all - spdk_vhost_kill +function clear_vhost_config() { + $rpc_py remove_vhost_scsi_target naa.Nvme0n1p4.2 0 + $rpc_py remove_vhost_scsi_target naa.Nvme0n1p4.2 1 + $rpc_py remove_vhost_scsi_target naa.Nvme0n1p5.2 0 + $rpc_py remove_vhost_scsi_target naa.Nvme0n1p5.2 1 + $rpc_py remove_vhost_scsi_target naa.Nvme0n1p6.3 0 + $rpc_py remove_vhost_scsi_target naa.Nvme0n1p6.3 1 + $rpc_py remove_vhost_scsi_target naa.Nvme0n1p7.3 0 + $rpc_py remove_vhost_scsi_target naa.Nvme0n1p7.3 1 + $rpc_py remove_vhost_controller naa.Nvme0n1p0.0 + $rpc_py remove_vhost_controller naa.Nvme0n1p1.0 + $rpc_py remove_vhost_controller naa.Nvme0n1p2.1 + $rpc_py remove_vhost_controller naa.Nvme0n1p3.1 + $rpc_py remove_vhost_controller naa.Nvme0n1p4.2 + $rpc_py remove_vhost_controller naa.Nvme0n1p5.2 + $rpc_py remove_vhost_controller naa.Nvme0n1p6.3 + $rpc_py remove_vhost_controller naa.Nvme0n1p7.3 } +trap 'error_exit "${FUNCNAME}" "${LINENO}"' ERR gen_config -pre_test_case +run_vhost +rm $BASE_DIR/vhost.conf.in +pre_hot_attach_detach_test_case $BASE_DIR/scsi_hotattach.sh --fio-bin=$fio_bin & first_script=$! $BASE_DIR/scsi_hotdetach.sh --fio-bin=$fio_bin & second_script=$! wait $first_script wait $second_script -post_test_case +vm_shutdown_all +clear_vhost_config +spdk_vhost_kill diff --git a/test/vhost/spdk_vhost.sh b/test/vhost/spdk_vhost.sh index 2e3d029b0..da747297b 100755 --- a/test/vhost/spdk_vhost.sh +++ b/test/vhost/spdk_vhost.sh @@ -142,7 +142,7 @@ case $1 in --vm=2,$VM_IMAGE,Nvme0n1p4:Nvme0n1p5 \ --vm=3,$VM_IMAGE,Nvme0n1p6:Nvme0n1p7 \ --test-type=spdk_vhost_scsi \ - --fio-job=$WORKDIR/hotplug/fio_jobs/default_integrity.job -x + --fio-jobs=$WORKDIR/hotplug/fio_jobs/default_integrity.job -x ;; -ro|--readonly) echo 'Running readonly tests suite...'