Upstream: https://gitlab.com/qemu-project/qemu.git Upstream-Commit: d2e570cc0f97b936902a5b1b86b73c0f5998b475
49 lines
1.5 KiB
Python
Executable File
49 lines
1.5 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# Check for vm-launch-update device.
|
|
#
|
|
# Copyright (c) 2026 Red Hat, Inc.
|
|
#
|
|
# Author:
|
|
# Ani Sinha <[email protected]>
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
from qemu_test import QemuSystemTest
|
|
import time
|
|
|
|
class VmLaunchUpdateDeviceCheck(QemuSystemTest):
|
|
DELAY_BOOT_SEQUENCE = 1
|
|
|
|
def vm_launch_update_pass(self):
|
|
"""
|
|
Basic test to make sure vm-launch-update device can be instantiated.
|
|
"""
|
|
self.vm.add_args('-device', 'vm-launch-update,id=fwupd1')
|
|
self.vm.set_qmp_monitor(enabled=False)
|
|
self.vm.launch()
|
|
time.sleep(self.DELAY_BOOT_SEQUENCE)
|
|
self.vm.shutdown()
|
|
self.assertEqual(self.vm.exitcode(), 0, "QEMU exit code should be 0")
|
|
|
|
def multiple_device_fail(self):
|
|
"""
|
|
Only one vm-launch-update device can be instantiated. Ensure failure if
|
|
user tries to create more than one device.
|
|
"""
|
|
self.vm.add_args('-device', 'vm-launch-update,id=fw1',
|
|
'-device', 'vm-launch-update,id=fw2')
|
|
self.vm.set_qmp_monitor(enabled=False)
|
|
self.vm.launch()
|
|
self.vm.wait()
|
|
self.assertEqual(self.vm.exitcode(), 1, "QEMU exit code should be 1")
|
|
self.assertRegex(self.vm.get_log(),
|
|
r'at most one vm-launch-update device is permitted')
|
|
|
|
def test_vm_launch_update(self):
|
|
self.vm_launch_update_pass()
|
|
self.multiple_device_fail()
|
|
|
|
if __name__ == '__main__':
|
|
QemuSystemTest.main()
|