From: Lucian Petrut Date: Fri, 6 Jan 2023 12:29:02 +0000 (+0200) Subject: qa: add windows run-tests.ps1 X-Git-Tag: v18.1.0~500^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F48848%2Fhead;p=ceph.git qa: add windows run-tests.ps1 We have a few Python rbd-wnbd tests that are invoked explicitly by the ceph-build scripts [1]. There are a few issues with that: * it's a separate repo that has to be updated whenever we add new tests * new tests that reside in the ceph repo will not be executed by the PR check * some tests may be missing in case of older branches For this reason, we're adding a new script as part of the Ceph repo that will take care of invoking the Windows rbd-wnbd tests. The ceph-build script has already been updated accordingly [2]. [1] https://github.com/ceph/ceph-build/blob/main/scripts/ceph-windows/run_tests#L73-L80 [2] https://github.com/ceph/ceph-build/pull/2094 Signed-off-by: Lucian Petrut Co-Authored-By: Ionut Balutoiu --- diff --git a/qa/suites/windows/basic/tasks/rbd_wnbd.yaml b/qa/suites/windows/basic/tasks/rbd_wnbd.yaml deleted file mode 100644 index fb243857c89..00000000000 --- a/qa/suites/windows/basic/tasks/rbd_wnbd.yaml +++ /dev/null @@ -1,6 +0,0 @@ -tasks: -- workunit: - clients: - client.0: - - windows/libvirt_vm/setup.sh - - windows/run-rbd-wnbd-tests.sh diff --git a/qa/suites/windows/basic/tasks/windows_tests.yaml b/qa/suites/windows/basic/tasks/windows_tests.yaml new file mode 100644 index 00000000000..42469bf3bac --- /dev/null +++ b/qa/suites/windows/basic/tasks/windows_tests.yaml @@ -0,0 +1,6 @@ +tasks: +- workunit: + clients: + client.0: + - windows/libvirt_vm/setup.sh + - windows/run-tests.sh diff --git a/qa/workunits/windows/run-rbd-wnbd-tests.sh b/qa/workunits/windows/run-rbd-wnbd-tests.sh deleted file mode 100755 index 981e44e18b5..00000000000 --- a/qa/workunits/windows/run-rbd-wnbd-tests.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -set -ex - -DIR="$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)" - -source ${DIR}/libvirt_vm/build_utils.sh -source ${DIR}/libvirt_vm/connection_info.sh - -# Run the rbd-wnbd tests -scp_upload ${DIR}/test_rbd_wnbd.py /test_rbd_wnbd.py -ssh_exec python.exe /test_rbd_wnbd.py --test-name RbdTest -ssh_exec python.exe /test_rbd_wnbd.py --test-name RbdFioTest -ssh_exec python.exe /test_rbd_wnbd.py --test-name RbdStampTest diff --git a/qa/workunits/windows/run-tests.ps1 b/qa/workunits/windows/run-tests.ps1 new file mode 100644 index 00000000000..6d818f4267e --- /dev/null +++ b/qa/workunits/windows/run-tests.ps1 @@ -0,0 +1,29 @@ +$ProgressPreference = "SilentlyContinue" +$ErrorActionPreference = "Stop" + +$scriptLocation = [System.IO.Path]::GetDirectoryName( + $myInvocation.MyCommand.Definition) + +$testRbdWnbd = "$scriptLocation/test_rbd_wnbd.py" + +function safe_exec() { + # Powershell doesn't check the command exit code, we'll need to + # do it ourselves. Also, in case of native commands, it treats stderr + # output as an exception, which is why we'll have to capture it. + cmd /c "$args 2>&1" + if ($LASTEXITCODE) { + throw "Command failed: $args" + } +} + +safe_exec python.exe $testRbdWnbd --test-name RbdTest --iterations 100 +safe_exec python.exe $testRbdWnbd --test-name RbdFioTest --iterations 100 +safe_exec python.exe $testRbdWnbd --test-name RbdStampTest --iterations 100 + +# It can take a while to setup the partition (~10s), we'll use fewer iterations. +safe_exec python.exe $testRbdWnbd --test-name RbdFsTest --iterations 4 +safe_exec python.exe $testRbdWnbd --test-name RbdFsFioTest --iterations 4 +safe_exec python.exe $testRbdWnbd --test-name RbdFsStampTest --iterations 4 + +safe_exec python.exe $testRbdWnbd ` + --test-name RbdResizeFioTest --image-size-mb 64 diff --git a/qa/workunits/windows/run-tests.sh b/qa/workunits/windows/run-tests.sh new file mode 100644 index 00000000000..b582491c562 --- /dev/null +++ b/qa/workunits/windows/run-tests.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -ex + +DIR="$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)" + +source ${DIR}/libvirt_vm/build_utils.sh +source ${DIR}/libvirt_vm/connection_info.sh + +# Run the Windows tests +scp_upload ${DIR} /windows-workunits +SSH_TIMEOUT=30m ssh_exec powershell.exe -File /windows-workunits/run-tests.ps1