Spdk/test/vhost/hotplug/scsi_hotattach.sh
Tomasz Zawadzki 3a56fabce3 bdev: add delete_nvme_bdev call
Since delete_bdev should be used only for debug purpose,
this patch adds delete call specific for NVMe bdev.

Signed-off-by: Maciej Szwed <maciej.szwed@intel.com>
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: Ib9a0475d735af2616a3005d04530ca825ece8a52
Reviewed-on: https://review.gerrithub.io/416546
Reviewed-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2018-07-26 22:07:50 +00:00

105 lines
3.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
BASE_DIR=$(readlink -f $(dirname $0))
[[ -z "$TEST_DIR" ]] && TEST_DIR="$(cd $BASE_DIR/../../../../ && pwd)"
. $BASE_DIR/common.sh
function prepare_fio_cmd_tc1() {
print_test_fio_header
run_fio="$fio_bin --eta=never "
for vm_num in $1; do
cp $fio_job $tmp_attach_job
vm_dir=$VM_BASE_DIR/$vm_num
vm_check_scsi_location $vm_num
for disk in $SCSI_DISK; do
echo "[nvme-host$disk]" >> $tmp_attach_job
echo "filename=/dev/$disk" >> $tmp_attach_job
done
vm_scp $vm_num $tmp_attach_job 127.0.0.1:/root/default_integrity_discs.job
run_fio+="--client=127.0.0.1,$(vm_fio_socket ${vm_num}) --remote-config /root/default_integrity_discs.job "
rm $tmp_attach_job
done
}
# Check if fio test passes on device attached to first controller.
function hotattach_tc1() {
notice "Hotattach test case 1"
$rpc_py add_vhost_scsi_lun naa.Nvme0n1p0.0 0 Nvme0n1p0
sleep 3
prepare_fio_cmd_tc1 "0"
$run_fio
check_fio_retcode "Hotattach test case 1: Iteration 1." 0 $?
}
# Run fio test for previously attached device.
# During test attach another device to first controller and check fio status.
function hotattach_tc2() {
notice "Hotattach test case 2"
prepare_fio_cmd_tc1 "0"
$run_fio &
last_pid=$!
sleep 3
$rpc_py add_vhost_scsi_lun naa.Nvme0n1p0.0 1 Nvme0n1p1
wait $last_pid
check_fio_retcode "Hotattach test case 2: Iteration 1." 0 $?
}
# Run fio test for previously attached devices.
# During test attach another device to second controller and check fio status.
function hotattach_tc3() {
notice "Hotattach test case 3"
prepare_fio_cmd_tc1 "0"
$run_fio &
last_pid=$!
sleep 3
$rpc_py add_vhost_scsi_lun naa.Nvme0n1p1.0 0 Nvme0n1p2
wait $last_pid
check_fio_retcode "Hotattach test case 3: Iteration 1." 0 $?
}
# Run fio test for previously attached devices.
# During test attach another device to third controller(VM2) and check fio status.
# At the end after rebooting VMs run fio test for all devices and check fio status.
function hotattach_tc4() {
notice "Hotattach test case 4"
prepare_fio_cmd_tc1 "0"
$run_fio &
last_pid=$!
sleep 3
$rpc_py add_vhost_scsi_lun naa.Nvme0n1p2.1 0 Nvme0n1p3
wait $last_pid
check_fio_retcode "Hotattach test case 4: Iteration 1." 0 $?
prepare_fio_cmd_tc1 "0 1"
$run_fio
check_fio_retcode "Hotattach test case 4: Iteration 2." 0 $?
reboot_all_and_prepare "0 1"
prepare_fio_cmd_tc1 "0 1"
$run_fio
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
$rpc_py delete_nvme_controller Nvme0
}
hotattach_tc1
hotattach_tc2
hotattach_tc3
hotattach_tc4
cleanup_after_tests