From 27544da15a5f6e63d7cbd529fb242d5da833b2f0 Mon Sep 17 00:00:00 2001 From: Tomasz Zawadzki Date: Fri, 6 Nov 2020 06:34:58 -0500 Subject: [PATCH] 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 Change-Id: I637bc56374fd5943cc11ccccb3a0c0690ddfe673 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5036 Tested-by: SPDK CI Jenkins Community-CI: Mellanox Build Bot Reviewed-by: Paul Luse Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto --- test/vhost/windows/windows.sh | 141 ------------------------- test/vhost/windows/windows_fs_test.ps1 | 78 -------------- 2 files changed, 219 deletions(-) delete mode 100755 test/vhost/windows/windows.sh delete mode 100644 test/vhost/windows/windows_fs_test.ps1 diff --git a/test/vhost/windows/windows.sh b/test/vhost/windows/windows.sh deleted file mode 100755 index 6bf8573f7..000000000 --- a/test/vhost/windows/windows.sh +++ /dev/null @@ -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 diff --git a/test/vhost/windows/windows_fs_test.ps1 b/test/vhost/windows/windows_fs_test.ps1 deleted file mode 100644 index cda1b53f2..000000000 --- a/test/vhost/windows/windows_fs_test.ps1 +++ /dev/null @@ -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 - } -}