test/vhost: remove windows filesystem test
This test is not ran on CI right now and state of executing it is unclear. Almost two years since it's addition that it went unused, lets remove it. Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I637bc56374fd5943cc11ccccb3a0c0690ddfe673 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5036 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
parent
c8fa7f4c16
commit
27544da15a
@ -1,141 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
testdir=$(readlink -f $(dirname $0))
|
|
||||||
rootdir=$(readlink -f $testdir/../../..)
|
|
||||||
source $rootdir/test/common/autotest_common.sh
|
|
||||||
source $rootdir/test/vhost/common.sh
|
|
||||||
|
|
||||||
rpc_py="$rootdir/scripts/rpc.py -s $(get_vhost_dir 0)/rpc.sock"
|
|
||||||
ctrl_type="spdk_vhost_scsi"
|
|
||||||
ssh_pass=""
|
|
||||||
vm_num="0"
|
|
||||||
vm_image="/home/sys_sgsw/windows_server.qcow2"
|
|
||||||
|
|
||||||
function usage() {
|
|
||||||
[[ -n $2 ]] && (
|
|
||||||
echo "$2"
|
|
||||||
echo ""
|
|
||||||
)
|
|
||||||
echo "Windows Server automated test"
|
|
||||||
echo "Usage: $(basename $1) [OPTIONS]"
|
|
||||||
echo "--vm-ssh-pass=PASSWORD Text password for the VM"
|
|
||||||
echo "--vm-image=PATH Path to qcow2 image of Windows VM"
|
|
||||||
echo "--ctrl-type=TYPE Controller type to use for test:"
|
|
||||||
echo " spdk_vhost_scsi - use spdk vhost scsi"
|
|
||||||
echo " spdk_vhost_blk - use spdk vhost block"
|
|
||||||
echo "-x set -x for script debug"
|
|
||||||
echo "-h, --help Print help and exit"
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
while getopts 'xh-:' optchar; do
|
|
||||||
case "$optchar" in
|
|
||||||
-)
|
|
||||||
case "$OPTARG" in
|
|
||||||
help) usage $0 ;;
|
|
||||||
vm-ssh-pass=*) ssh_pass="${OPTARG#*=}" ;;
|
|
||||||
vm-image=*) vm_image="${OPTARG#*=}" ;;
|
|
||||||
ctrl-type=*) ctrl_type="${OPTARG#*=}" ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
h) usage $0 ;;
|
|
||||||
x)
|
|
||||||
set -x
|
|
||||||
x="-x"
|
|
||||||
;;
|
|
||||||
*) usage $0 "Invalid argument '$OPTARG'" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# For some reason there is a problem between using SSH key authentication
|
|
||||||
# and Windows UAC. Some of the powershell commands fail due to lack of
|
|
||||||
# permissons, despite script running in elevated mode.
|
|
||||||
# There are some clues about this setup that suggest this might not work properly:
|
|
||||||
# https://superuser.com/questions/181581/how-can-i-run-something-as-administrator-via-cygwins-ssh
|
|
||||||
# https://cygwin.com/ml/cygwin/2004-09/msg00087.html
|
|
||||||
# But they apply to rather old Windows distributions.
|
|
||||||
# Potentially using Windows Server 2016 and newer may solve the issue
|
|
||||||
# due to OpenSSH being available directly from Windows Store.
|
|
||||||
function vm_sshpass() {
|
|
||||||
vm_num_is_valid $1 || return 1
|
|
||||||
|
|
||||||
local ssh_cmd
|
|
||||||
ssh_cmd="sshpass -p $2 ssh \
|
|
||||||
-o UserKnownHostsFile=/dev/null \
|
|
||||||
-o StrictHostKeyChecking=no \
|
|
||||||
-o User=root \
|
|
||||||
-p $(vm_ssh_socket $1) $VM_SSH_OPTIONS 127.0.0.1"
|
|
||||||
|
|
||||||
shift 2
|
|
||||||
$ssh_cmd "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ -z "$ssh_pass" ]]; then
|
|
||||||
error "Please specify --vm-ssh-pass parameter"
|
|
||||||
fi
|
|
||||||
|
|
||||||
trap 'error_exit "${FUNCNAME}" "${LINENO}"; rm -f $aio_file' SIGTERM SIGABRT ERR
|
|
||||||
|
|
||||||
vm_kill_all
|
|
||||||
|
|
||||||
# Run vhost without debug!
|
|
||||||
# Windows Virtio drivers use indirect descriptors without negotiating
|
|
||||||
# their feature flag, which is explicitly forbidden by the Virtio 1.0 spec.
|
|
||||||
# "(2.4.5.3.1 Driver Requirements: Indirect Descriptors)
|
|
||||||
# The driver MUST NOT set the VIRTQ_DESC_F_INDIRECT flag unless the
|
|
||||||
# VIRTIO_F_INDIRECT_DESC feature was negotiated.".
|
|
||||||
# Violating this rule doesn't cause any issues for SPDK vhost,
|
|
||||||
# but triggers an assert, so we can only run Windows VMs with non-debug SPDK builds.
|
|
||||||
notice "running SPDK vhost"
|
|
||||||
vhost_run 0
|
|
||||||
notice "..."
|
|
||||||
|
|
||||||
# Prepare bdevs for later vhost controllers use
|
|
||||||
# Nvme bdev is automatically constructed during vhost_run
|
|
||||||
# by using scripts/gen_nvme.sh. No need to add it manually.
|
|
||||||
# Using various sizes to better identify bdevs if no name in BLK
|
|
||||||
# is available
|
|
||||||
# TODO: use a param for blocksize for AIO and Malloc bdevs
|
|
||||||
aio_file="$SPDK_TEST_STORAGE/aio_disk"
|
|
||||||
dd if=/dev/zero of=$aio_file bs=1M count=512
|
|
||||||
$rpc_py bdev_aio_create $aio_file Aio0 512
|
|
||||||
$rpc_py bdev_malloc_create -b Malloc0 256 512
|
|
||||||
$rpc_py bdev_get_bdevs
|
|
||||||
|
|
||||||
# Create vhost controllers
|
|
||||||
# Prepare VM setup command
|
|
||||||
setup_cmd="vm_setup --force=0 --memory=8192"
|
|
||||||
setup_cmd+=" --os=$vm_image"
|
|
||||||
|
|
||||||
if [[ "$ctrl_type" == "spdk_vhost_scsi" ]]; then
|
|
||||||
$rpc_py vhost_create_scsi_controller naa.0.0
|
|
||||||
$rpc_py vhost_scsi_controller_add_target naa.0.0 0 Nvme0n1
|
|
||||||
$rpc_py vhost_scsi_controller_add_target naa.0.0 1 Malloc0
|
|
||||||
$rpc_py vhost_scsi_controller_add_target naa.0.0 2 Aio0
|
|
||||||
setup_cmd+=" --disk-type=spdk_vhost_scsi --disks=0"
|
|
||||||
elif [[ "$ctrl_type" == "spdk_vhost_blk" ]]; then
|
|
||||||
$rpc_py vhost_create_blk_controller naa.0.0 Nvme0n1
|
|
||||||
$rpc_py vhost_create_blk_controller naa.1.0 Malloc0
|
|
||||||
$rpc_py vhost_create_blk_controller naa.2.0 Aio0
|
|
||||||
setup_cmd+=" --disk-type=spdk_vhost_blk --disks=0:1:2"
|
|
||||||
fi
|
|
||||||
$rpc_py vhost_get_controllers
|
|
||||||
$setup_cmd
|
|
||||||
|
|
||||||
# Spin up VM
|
|
||||||
vm_run "$vm_num"
|
|
||||||
vm_wait_for_boot "300" "$vm_num"
|
|
||||||
|
|
||||||
vm_sshpass "$vm_num" "$ssh_pass" "mkdir /cygdrive/c/fs_test"
|
|
||||||
vm_scp "$vm_num" "$testdir/windows_fs_test.ps1" "127.0.0.1:/cygdrive/c/fs_test"
|
|
||||||
vm_sshpass "$vm_num" "$ssh_pass" "cd /cygdrive/c/fs_test; powershell.exe -file windows_fs_test.ps1"
|
|
||||||
|
|
||||||
notice "Shutting down Windows VM..."
|
|
||||||
# Killing, actually. #TODO: implement vm_windwows_shutdown() function
|
|
||||||
vm_kill $vm_num
|
|
||||||
|
|
||||||
notice "Shutting down SPDK vhost app..."
|
|
||||||
vhost_kill 0
|
|
||||||
|
|
||||||
rm -f $aio_file
|
|
@ -1,78 +0,0 @@
|
|||||||
# Get the ID and security principal of the current user account
|
|
||||||
$myWindowsID=[System.Security.Principal.WindowsIdentity]::GetCurrent()
|
|
||||||
$myWindowsPrincipal=new-object System.Security.Principal.WindowsPrincipal($myWindowsID)
|
|
||||||
|
|
||||||
# Get the security principal for the Administrator role
|
|
||||||
$adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator
|
|
||||||
|
|
||||||
# Check to see if we are currently running "as Administrator"
|
|
||||||
if ($myWindowsPrincipal.IsInRole($adminRole)) {
|
|
||||||
# We are running "as Administrator" - so change the title and background color to indicate this
|
|
||||||
$Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Elevated)"
|
|
||||||
$Host.UI.RawUI.BackgroundColor = "DarkBlue"
|
|
||||||
clear-host
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
# We are not running "as Administrator" - so relaunch as administrator
|
|
||||||
|
|
||||||
# Create a new process object that starts PowerShell
|
|
||||||
$newProcess = new-object System.Diagnostics.ProcessStartInfo "PowerShell";
|
|
||||||
|
|
||||||
# Specify the current script path and name as a parameter
|
|
||||||
$newProcess.Arguments = $myInvocation.MyCommand.Definition;
|
|
||||||
|
|
||||||
# Indicate that the process should be elevated
|
|
||||||
$newProcess.Verb = "runas";
|
|
||||||
|
|
||||||
# Start the new process
|
|
||||||
[System.Diagnostics.Process]::Start($newProcess);
|
|
||||||
|
|
||||||
# Exit from the current, unelevated, process
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
|
|
||||||
# Set bash -e equivalent
|
|
||||||
$ErrorActionPreference = "Stop"
|
|
||||||
|
|
||||||
$filesystems=@("NTFS", "FAT32", "FAT")
|
|
||||||
$disks = get-disk | Where-Object FriendlyName -NotMatch "QEMU"
|
|
||||||
Start-Sleep 2
|
|
||||||
foreach($disk in $disks)
|
|
||||||
{
|
|
||||||
$size = $disk.Size
|
|
||||||
$number = $disk.Number
|
|
||||||
$serial = $disk.SerialNumber
|
|
||||||
$model = $disk.model.Trim()
|
|
||||||
$size = $size -replace " ", "_"
|
|
||||||
$model = $model -replace " ", "_"
|
|
||||||
|
|
||||||
$label = "${number}_${model}_${serial}_${size}"
|
|
||||||
echo "Running tests for disk $label"
|
|
||||||
start-sleep 2
|
|
||||||
|
|
||||||
Try {
|
|
||||||
Initialize-Disk -Number $disk.Number -PartitionStyle MBR
|
|
||||||
} Catch {
|
|
||||||
Clear-Disk -Number $disk.Number -RemoveData -Confirm:$false
|
|
||||||
Initialize-Disk -Number $disk.Number -PartitionStyle MBR
|
|
||||||
}
|
|
||||||
echo "`tDisk initialized"
|
|
||||||
start-sleep 2
|
|
||||||
|
|
||||||
$part = New-Partition -DiskNumber $disk.Number -UseMaximumSize -AssignDriveLetter
|
|
||||||
echo "`tCreated partition $($part.DriveLetter)"
|
|
||||||
start-sleep 2
|
|
||||||
|
|
||||||
foreach($fs in $filesystems) {
|
|
||||||
echo "`tTrying to format $($part.DriveLetter) with $fs"
|
|
||||||
Try {
|
|
||||||
$vol = Format-Volume -DriveLetter $part.DriveLetter -FileSystem $fs -Confirm:$false
|
|
||||||
} Catch [Exception] {
|
|
||||||
echo $_.Exception.GetType().FullName, $_.Exception.Message
|
|
||||||
echo $_.Exception | format-list -force
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
echo "`tPartition $($part.DriveLetter) formatted with $fs filesystem"
|
|
||||||
start-sleep 2
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user