blob: aac7ef915f4e1bd1b02f65c42e29e122fff16649 [file]
#!/usr/bin/env python3
#
# Check for vm-launch-update device.
#
# Copyright (c) 2026 Red Hat, Inc.
#
# Author:
# Ani Sinha <anisinha@redhat.com>
#
# 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()