summaryrefslogtreecommitdiffstats
path: root/test/TEST-64-UDEV-STORAGE/long_sysfs_path.configure
blob: 6e8e3124ba9b84abd96eb583be4a43bf463095a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/python3
# SPDX-License-Identifier: LGPL-2.1-or-later

import json
import sys


config = json.load(sys.stdin)

config["QemuDrives"] += [
    {
        "Id": "drive0",
        "Size": "64M",
        "Options": "cache=unsafe",
    }
]
config["QemuArgs"] += ["-device", "pci-bridge,id=pci_bridge0,chassis_nr=64"]

# Create 25 additional PCI bridges, each one connected to the previous one
# (basically a really long extension cable), and attach a virtio drive to
# the last one. This should force udev into attempting to create a device
# unit with a _really_ long name.
for bridge in range(1, 26):
    config["QemuArgs"] += [
        "-device",
        f"pci-bridge,id=pci_bridge{bridge},bus=pci_bridge{bridge - 1},chassis_nr={64 + bridge},addr=1",
    ]

config["QemuArgs"] += ["-device", f"virtio-blk-pci,drive=drive0,scsi=off,bus=pci_bridge25,addr=1"]

json.dump(config, sys.stdout)