Skip to content

Commit 52d34ce

Browse files
committed
install: add a "firmware" parameter
1 parent d99f8dc commit 52d34ce

File tree

1 file changed

+52
-39
lines changed

1 file changed

+52
-39
lines changed

tests/install/test.py

Lines changed: 52 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -17,32 +17,40 @@
1717
@pytest.mark.dependency()
1818
class TestNested:
1919
@pytest.mark.parametrize("iso_version", ("821.1", "83b2"))
20+
@pytest.mark.parametrize("firmware", ("uefi", "bios"))
2021
@pytest.mark.installer_iso(lambda version: {"821.1": "xcpng-8.2.1-2023",
2122
"83b2": "xcpng-8.3-beta2"}[version],
2223
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):
4654
assert len(create_vms) == 1
4755
host_vm = create_vms[0]
4856
# FIXME should be part of vm def
@@ -126,20 +134,22 @@ def test_install_uefi(self, request, iso_version, iso_remaster, create_vms):
126134

127135

128136
@pytest.mark.usefixtures("xcpng_chained")
137+
# FIXME take "uefi" outa here and allow "bios"
129138
@pytest.mark.parametrize("mode", [
130139
"821.1",
131140
"821.1-821.1",
132141
"83b2",
133142
"821.1-83b2",
134143
#"83b2-83b2", # 8.3b2 disabled the upgrade from 8.3
135144
])
145+
@pytest.mark.parametrize("firmware", ("uefi", "bios"))
136146
@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):
143153
host_vm = create_vms[0]
144154
vif = host_vm.vifs()[0]
145155
mac_address = vif.param_get('MAC')
@@ -249,21 +259,24 @@ def test_firstboot_uefi(self, request, create_vms, mode):
249259
("821.1", "83b2"),
250260
#("83b2", "83b2"), # 8.3b2 disabled the upgrade from 8.3
251261
])
262+
@pytest.mark.parametrize("firmware", ("uefi", "bios"))
252263
@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"},
256267
)
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"})
263276
@pytest.mark.installer_iso(lambda version: {"821.1": "xcpng-8.2.1-2023",
264277
"83b2": "xcpng-8.3-beta2"}[version],
265278
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):
267280
host_vm = create_vms[0]
268281
vif = host_vm.vifs()[0]
269282
mac_address = vif.param_get('MAC')

0 commit comments

Comments
 (0)