summaryrefslogtreecommitdiffstats
path: root/test/TEST-64-UDEV-STORAGE/nvme_subsystem.configure
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-12 03:50:42 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-12 03:50:42 +0000
commit78e9bb837c258ac0ec7712b3d612cc2f407e731e (patch)
treef515d16b6efd858a9aeb5b0ef5d6f90bf288283d /test/TEST-64-UDEV-STORAGE/nvme_subsystem.configure
parentAdding debian version 255.5-1. (diff)
downloadsystemd-78e9bb837c258ac0ec7712b3d612cc2f407e731e.tar.xz
systemd-78e9bb837c258ac0ec7712b3d612cc2f407e731e.zip
Merging upstream version 256.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/TEST-64-UDEV-STORAGE/nvme_subsystem.configure')
-rwxr-xr-xtest/TEST-64-UDEV-STORAGE/nvme_subsystem.configure39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/TEST-64-UDEV-STORAGE/nvme_subsystem.configure b/test/TEST-64-UDEV-STORAGE/nvme_subsystem.configure
new file mode 100755
index 0000000..eb601a6
--- /dev/null
+++ b/test/TEST-64-UDEV-STORAGE/nvme_subsystem.configure
@@ -0,0 +1,39 @@
+#!/usr/bin/python3
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+import json
+import os
+import subprocess
+import sys
+
+
+config = json.load(sys.stdin)
+
+qemu = f"qemu-system-{os.environ["QEMU_ARCHITECTURE"]}"
+result = subprocess.run([qemu, '-device', 'help'], check=True, text=True, stdout=subprocess.PIPE)
+if 'name "nvme"' not in result.stdout:
+ print("nvme device driver is not available, skipping test...", file=sys.stderr)
+ exit(77)
+
+for id in ("nvme0", "nvme1"):
+ config["QemuDrives"] += [
+ {
+ "Id": id,
+ "Size": "1M",
+ "Options": "cache=unsafe",
+ }
+
+ ]
+
+config["QemuArgs"] += [
+ # Create an NVM Subsystem Device
+ "-device", "nvme-subsys,id=nvme-subsys-64,nqn=subsys64",
+ # Attach two NVM controllers to it
+ "-device", "nvme,subsys=nvme-subsys-64,serial=deadbeef",
+ "-device", "nvme,subsys=nvme-subsys-64,serial=deadbeef",
+ # And create two shared namespaces attached to both controllers
+ "-device", "nvme-ns,drive=nvme0,nsid=16,shared=on",
+ "-device", "nvme-ns,drive=nvme1,nsid=17,shared=on",
+]
+
+json.dump(config, sys.stdout)