]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa: add windows run-tests.ps1 48848/head
authorLucian Petrut <lpetrut@cloudbasesolutions.com>
Fri, 6 Jan 2023 12:29:02 +0000 (14:29 +0200)
committerLucian Petrut <lpetrut@cloudbasesolutions.com>
Wed, 18 Jan 2023 13:32:50 +0000 (15:32 +0200)
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 <lpetrut@cloudbasesolutions.com>
Co-Authored-By: Ionut Balutoiu <ibalutoiu@cloudbasesolutions.com>
qa/suites/windows/basic/tasks/rbd_wnbd.yaml [deleted file]
qa/suites/windows/basic/tasks/windows_tests.yaml [new file with mode: 0644]
qa/workunits/windows/run-rbd-wnbd-tests.sh [deleted file]
qa/workunits/windows/run-tests.ps1 [new file with mode: 0644]
qa/workunits/windows/run-tests.sh [new file with mode: 0644]

diff --git a/qa/suites/windows/basic/tasks/rbd_wnbd.yaml b/qa/suites/windows/basic/tasks/rbd_wnbd.yaml
deleted file mode 100644 (file)
index fb24385..0000000
+++ /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 (file)
index 0000000..42469bf
--- /dev/null
@@ -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 (executable)
index 981e44e..0000000
+++ /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 (file)
index 0000000..6d818f4
--- /dev/null
@@ -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 (file)
index 0000000..b582491
--- /dev/null
@@ -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