1
0
mirror of https://github.com/systemd/systemd synced 2024-07-09 12:36:12 +00:00
systemd/test/TEST-64-UDEV-STORAGE/nvme_subsystem.configure
Daan De Meyer 5692f87160 test: Run TEST-64-UDEV-STORAGE with mkosi
We add a configure script for each subtest to add the required
qemu arguments.

Co-authored-by: Richard Maw <richard.maw@codethink.co.uk>
2024-05-14 12:43:28 +02:00

40 lines
1.1 KiB
Python
Executable File

#!/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)