|
17 | 17 | @pytest.mark.dependency()
|
18 | 18 | class TestNested:
|
19 | 19 | @pytest.mark.parametrize("iso_version", ("821.1", "83b2"))
|
| 20 | + @pytest.mark.parametrize("firmware", ("uefi", "bios")) |
20 | 21 | @pytest.mark.installer_iso(lambda version: {"821.1": "xcpng-8.2.1-2023",
|
21 | 22 | "83b2": "xcpng-8.3-beta2"}[version],
|
22 | 23 | param_mapping={"version": "iso_version"})
|
23 |
| - @pytest.mark.vm_definitions( |
24 |
| - dict(name="vm 1", |
25 |
| - template="Other install media", |
26 |
| - params=( |
27 |
| - # dict(param_name="", value=""), |
28 |
| - dict(param_name="memory-static-max", value="4GiB"), |
29 |
| - dict(param_name="memory-dynamic-max", value="4GiB"), |
30 |
| - dict(param_name="memory-dynamic-min", value="4GiB"), |
31 |
| - dict(param_name="platform", key="exp-nested-hvm", value="true"), # FIXME < 8.3 host? |
32 |
| - dict(param_name="HVM-boot-params", key="firmware", value="uefi"), |
33 |
| - dict(param_name="HVM-boot-params", key="order", value="dc"), |
34 |
| - dict(param_name="platform", key="device-model", value="qemu-upstream-uefi"), |
35 |
| - ), |
36 |
| - vdis=[dict(name="vm 1 system disk", size="100GiB", device="xvda", userdevice="0")], |
37 |
| - vifs=[dict(index=0, network_uuid="eabc1038-e40f-2ae5-0781-a3adbec1cae8")], # FIXME |
38 |
| - )) |
39 |
| - @pytest.mark.answerfile( |
40 |
| - { |
41 |
| - "base": "INSTALL", |
42 |
| - "source": {"type": "local"}, |
43 |
| - "primary-disk": {"text": "nvme0n1"}, |
44 |
| - }) |
45 |
| - def test_install_uefi(self, request, iso_version, iso_remaster, create_vms): |
| 24 | + @pytest.mark.vm_definitions(lambda firmware: dict( |
| 25 | + name="vm 1", |
| 26 | + template="Other install media", |
| 27 | + params=( |
| 28 | + # dict(param_name="", value=""), |
| 29 | + dict(param_name="memory-static-max", value="4GiB"), |
| 30 | + dict(param_name="memory-dynamic-max", value="4GiB"), |
| 31 | + dict(param_name="memory-dynamic-min", value="4GiB"), |
| 32 | + dict(param_name="platform", key="exp-nested-hvm", value="true"), # FIXME < 8.3 host? |
| 33 | + dict(param_name="HVM-boot-params", key="order", value="dc"), |
| 34 | + ) + { |
| 35 | + "uefi": ( |
| 36 | + dict(param_name="HVM-boot-params", key="firmware", value="uefi"), |
| 37 | + dict(param_name="platform", key="device-model", value="qemu-upstream-uefi"), |
| 38 | + ), |
| 39 | + "bios": (), |
| 40 | + }[firmware], |
| 41 | + vdis=[dict(name="vm 1 system disk", size="100GiB", device="xvda", userdevice="0")], |
| 42 | + vifs=[dict(index=0, network_uuid="eabc1038-e40f-2ae5-0781-a3adbec1cae8")], # FIXME |
| 43 | + ), |
| 44 | + param_mapping={"firmware": "firmware"}) |
| 45 | + @pytest.mark.answerfile(lambda firmware: { |
| 46 | + "base": "INSTALL", |
| 47 | + "source": {"type": "local"}, |
| 48 | + "primary-disk": {"text": {"uefi": "nvme0n1", |
| 49 | + "bios": "sda"}[firmware] |
| 50 | + }, |
| 51 | + }, |
| 52 | + param_mapping={"firmware": "firmware"}) |
| 53 | + def test_install(self, request, firmware, iso_version, iso_remaster, create_vms): |
46 | 54 | assert len(create_vms) == 1
|
47 | 55 | host_vm = create_vms[0]
|
48 | 56 | # FIXME should be part of vm def
|
@@ -126,20 +134,22 @@ def test_install_uefi(self, request, iso_version, iso_remaster, create_vms):
|
126 | 134 |
|
127 | 135 |
|
128 | 136 | @pytest.mark.usefixtures("xcpng_chained")
|
| 137 | + # FIXME take "uefi" outa here and allow "bios" |
129 | 138 | @pytest.mark.parametrize("mode", [
|
130 | 139 | "821.1",
|
131 | 140 | "821.1-821.1",
|
132 | 141 | "83b2",
|
133 | 142 | "821.1-83b2",
|
134 | 143 | #"83b2-83b2", # 8.3b2 disabled the upgrade from 8.3
|
135 | 144 | ])
|
| 145 | + @pytest.mark.parametrize("firmware", ("uefi", "bios")) |
136 | 146 | @pytest.mark.continuation_of(
|
137 |
| - lambda params: [dict(vm="vm 1", |
138 |
| - test=(f"TestNested::test_upgrade_uefi[{params}]" |
139 |
| - if "-" in params else |
140 |
| - f"TestNested::test_install_uefi[{params}]"))], |
141 |
| - param_mapping={"params": "mode"}) |
142 |
| - def test_firstboot_uefi(self, request, create_vms, mode): |
| 147 | + lambda params, firmware: [dict(vm="vm 1", |
| 148 | + test=(f"TestNested::test_upgrade[{firmware}-{params}]" |
| 149 | + if "-" in params else |
| 150 | + f"TestNested::test_install[{firmware}-{params}]"))], |
| 151 | + param_mapping={"params": "mode", "firmware": "firmware"}) |
| 152 | + def test_firstboot(self, firmware, request, create_vms, mode): |
143 | 153 | host_vm = create_vms[0]
|
144 | 154 | vif = host_vm.vifs()[0]
|
145 | 155 | mac_address = vif.param_get('MAC')
|
@@ -249,21 +259,24 @@ def test_firstboot_uefi(self, request, create_vms, mode):
|
249 | 259 | ("821.1", "83b2"),
|
250 | 260 | #("83b2", "83b2"), # 8.3b2 disabled the upgrade from 8.3
|
251 | 261 | ])
|
| 262 | + @pytest.mark.parametrize("firmware", ("uefi", "bios")) |
252 | 263 | @pytest.mark.continuation_of(
|
253 |
| - lambda params: [dict(vm="vm 1", |
254 |
| - test=f"TestNested::test_firstboot_uefi[{params}]")], |
255 |
| - param_mapping={"params": "orig_version"}, |
| 264 | + lambda firmware, params: [dict(vm="vm 1", |
| 265 | + test=f"TestNested::test_firstboot[{firmware}-{params}]")], |
| 266 | + param_mapping={"params": "orig_version", "firmware": "firmware"}, |
256 | 267 | )
|
257 |
| - @pytest.mark.answerfile( |
258 |
| - { |
259 |
| - "base": "UPGRADE", |
260 |
| - "source": {"type": "local"}, |
261 |
| - "existing-installation": {"text": "nvme0n1"}, |
262 |
| - }) |
| 268 | + @pytest.mark.answerfile(lambda firmware: { |
| 269 | + "base": "UPGRADE", |
| 270 | + "source": {"type": "local"}, |
| 271 | + "existing-installation": {"text": {"uefi": "nvme0n1", |
| 272 | + "bios": "sda"}[firmware] |
| 273 | + }, |
| 274 | + }, |
| 275 | + param_mapping={"firmware": "firmware"}) |
263 | 276 | @pytest.mark.installer_iso(lambda version: {"821.1": "xcpng-8.2.1-2023",
|
264 | 277 | "83b2": "xcpng-8.3-beta2"}[version],
|
265 | 278 | param_mapping={"version": "iso_version"})
|
266 |
| - def test_upgrade_uefi(self, request, orig_version, iso_version, iso_remaster, create_vms): |
| 279 | + def test_upgrade(self, request, firmware, orig_version, iso_version, iso_remaster, create_vms): |
267 | 280 | host_vm = create_vms[0]
|
268 | 281 | vif = host_vm.vifs()[0]
|
269 | 282 | mac_address = vif.param_get('MAC')
|
|
0 commit comments