master
py 48 lines 1.49 KB
Raw
1 #!/usr/bin/env python3
2 #
3 # Check for vm-launch-update device.
4 #
5 # Copyright (c) 2026 Red Hat, Inc.
6 #
7 # Author:
8 # Ani Sinha <anisinha@redhat.com>
9 #
10 # SPDX-License-Identifier: GPL-2.0-or-later
11
12 from qemu_test import QemuSystemTest
13 import time
14
15 class VmLaunchUpdateDeviceCheck(QemuSystemTest):
16 DELAY_BOOT_SEQUENCE = 1
17
18 def vm_launch_update_pass(self):
19 """
20 Basic test to make sure vm-launch-update device can be instantiated.
21 """
22 self.vm.add_args('-device', 'vm-launch-update,id=fwupd1')
23 self.vm.set_qmp_monitor(enabled=False)
24 self.vm.launch()
25 time.sleep(self.DELAY_BOOT_SEQUENCE)
26 self.vm.shutdown()
27 self.assertEqual(self.vm.exitcode(), 0, "QEMU exit code should be 0")
28
29 def multiple_device_fail(self):
30 """
31 Only one vm-launch-update device can be instantiated. Ensure failure if
32 user tries to create more than one device.
33 """
34 self.vm.add_args('-device', 'vm-launch-update,id=fw1',
35 '-device', 'vm-launch-update,id=fw2')
36 self.vm.set_qmp_monitor(enabled=False)
37 self.vm.launch()
38 self.vm.wait()
39 self.assertEqual(self.vm.exitcode(), 1, "QEMU exit code should be 1")
40 self.assertRegex(self.vm.get_log(),
41 r'at most one vm-launch-update device is permitted')
42
43 def test_vm_launch_update(self):
44 self.vm_launch_update_pass()
45 self.multiple_device_fail()
46
47 if __name__ == '__main__':
48 QemuSystemTest.main()